crud-page-react 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/classnames/index.js","../node_modules/@ant-design/fast-color/es/FastColor.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/presets.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/rc-util/es/warning.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/CodeOutlined.js","../node_modules/@ant-design/icons/es/icons/CodeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","../node_modules/@ant-design/icons/es/icons/CopyOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DeleteOutlined.js","../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","../node_modules/@ant-design/icons/es/icons/EditOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FormOutlined.js","../node_modules/@ant-design/icons/es/icons/FormOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ReloadOutlined.js","../node_modules/@ant-design/icons/es/icons/ReloadOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../src/types/schema.ts","../src/components/DynamicFilter.tsx","../src/components/DynamicTable.tsx","../src/types/validationRules.ts","../src/components/DynamicForm.tsx","../src/components/CrudPage.tsx"],"sourcesContent":["import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nexport class FastColor {\n constructor(input) {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n _defineProperty(this, \"isValid\", true);\n /**\n * Red, R in RGB\n */\n _defineProperty(this, \"r\", 0);\n /**\n * Green, G in RGB\n */\n _defineProperty(this, \"g\", 0);\n /**\n * Blue, B in RGB\n */\n _defineProperty(this, \"b\", 0);\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n _defineProperty(this, \"a\", 1);\n // HSV privates\n _defineProperty(this, \"_h\", void 0);\n _defineProperty(this, \"_s\", void 0);\n _defineProperty(this, \"_l\", void 0);\n _defineProperty(this, \"_v\", void 0);\n // intermediate variables to calculate HSL/HSV\n _defineProperty(this, \"_max\", void 0);\n _defineProperty(this, \"_min\", void 0);\n _defineProperty(this, \"_brightness\", void 0);\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._s = input._s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n getSaturation() {\n if (typeof this._s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._s = 0;\n } else {\n this._s = delta / this.getMax();\n }\n }\n return this._s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h,\n s,\n l,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h,\n s,\n v,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}","import { FastColor } from '@ant-design/fast-color';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n index: 7,\n amount: 15\n}, {\n index: 6,\n amount: 25\n}, {\n index: 5,\n amount: 30\n}, {\n index: 5,\n amount: 45\n}, {\n index: 5,\n amount: 65\n}, {\n index: 5,\n amount: 85\n}, {\n index: 4,\n amount: 90\n}, {\n index: 3,\n amount: 95\n}, {\n index: 2,\n amount: 97\n}, {\n index: 1,\n amount: 98\n}];\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n var value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n // Clamp value between 0 and 1\n value = Math.max(0, Math.min(1, value));\n return Math.round(value * 100) / 100;\n}\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = new FastColor(color);\n var hsv = pColor.toHsv();\n for (var i = lightColorCount; i > 0; i -= 1) {\n var c = new FastColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n });\n patterns.push(c);\n }\n patterns.push(pColor);\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _c = new FastColor({\n h: getHue(hsv, _i),\n s: getSaturation(hsv, _i),\n v: getValue(hsv, _i)\n });\n patterns.push(_c);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref) {\n var index = _ref.index,\n amount = _ref.amount;\n return new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString();\n });\n }\n return patterns.map(function (c) {\n return c.toHexString();\n });\n}","// Generated by script. Do NOT modify!\n\nexport var presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nexport var red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport var volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport var orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport var gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport var yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport var lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport var green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport var cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport var blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport var geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport var purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport var magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport var grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport var gray = grey;\nexport var presetPalettes = {\n red: red,\n volcano: volcano,\n orange: orange,\n gold: gold,\n yellow: yellow,\n lime: lime,\n green: green,\n cyan: cyan,\n blue: blue,\n geekblue: geekblue,\n purple: purple,\n magenta: magenta,\n grey: grey\n};\nexport var redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport var volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport var orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport var goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport var yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport var limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport var greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport var cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport var blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport var geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport var purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport var magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport var greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport var presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return (option.styles || findStyles(container)).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(originOption);\n var styles = findStyles(container);\n var option = _objectSpread(_objectSpread({}, originOption), {}, {\n styles: styles\n });\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","function getRoot(ele) {\n var _ele$getRootNode;\n return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport warn from \"rc-util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, function (match, g) {\n return g.toUpperCase();\n });\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-flex;\\n align-items: center;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles(eleRef) {\n var _useContext = useContext(IconContext),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls,\n layer = _useContext.layer;\n var mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n if (layer) {\n mergedStyleStr = \"@layer \".concat(layer, \" {\\n\").concat(mergedStyleStr, \"\\n}\");\n }\n useEffect(function () {\n var ele = eleRef.current;\n var shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: !layer,\n csp: csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var svgRef = React.useRef();\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread(_objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps), {}, {\n ref: svgRef\n }));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar CodeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"code\", \"theme\": \"outlined\" };\nexport default CodeOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CodeOutlinedSvg from \"@ant-design/icons-svg/es/asn/CodeOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CodeOutlined = function CodeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CodeOutlinedSvg\n }));\n};\n\n/**![code](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxNiA2NzNjMCA0LjQgMy40IDggNy41IDhoMTg1YzQuMSAwIDcuNS0zLjYgNy41LTh2LTQ4YzAtNC40LTMuNC04LTcuNS04aC0xODVjLTQuMSAwLTcuNSAzLjYtNy41IDh2NDh6bS0xOTQuOSA2LjFsMTkyLTE2MWMzLjgtMy4yIDMuOC05LjEgMC0xMi4zbC0xOTItMTYwLjlBNy45NSA3Ljk1IDAgMDAzMDggMzUxdjYyLjdjMCAyLjQgMSA0LjYgMi45IDYuMUw0MjAuNyA1MTJsLTEwOS44IDkyLjJhOC4xIDguMSAwIDAwLTIuOSA2LjFWNjczYzAgNi44IDcuOSAxMC41IDEzLjEgNi4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CodeOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CodeOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar CopyOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\" } }] }, \"name\": \"copy\", \"theme\": \"outlined\" };\nexport default CopyOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CopyOutlinedSvg from \"@ant-design/icons-svg/es/asn/CopyOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CopyOutlinedSvg\n }));\n};\n\n/**![copy](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CopyOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CopyOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar DeleteOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z\" } }] }, \"name\": \"delete\", \"theme\": \"outlined\" };\nexport default DeleteOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DeleteOutlinedSvg from \"@ant-design/icons-svg/es/asn/DeleteOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DeleteOutlined = function DeleteOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DeleteOutlinedSvg\n }));\n};\n\n/**![delete](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM2MCAxODRoLThjNC40IDAgOC0zLjYgOC04djhoMzA0di04YzAgNC40IDMuNiA4IDggOGgtOHY3Mmg3MnYtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUyYy0zNS4zIDAtNjQgMjguNy02NCA2NHY4MGg3MnYtNzJ6bTUwNCA3MkgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGg2MC40bDI0LjcgNTIzYzEuNiAzNC4xIDI5LjggNjEgNjMuOSA2MWg0NTRjMzQuMiAwIDYyLjMtMjYuOCA2My45LTYxbDI0LjctNTIzSDg4OGM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MzEuMyA4NDBIMjkyLjdsLTI0LjItNTEyaDQ4N2wtMjQuMiA1MTJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DeleteOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DeleteOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar EditOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"edit\", \"theme\": \"outlined\" };\nexport default EditOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EditOutlinedSvg from \"@ant-design/icons-svg/es/asn/EditOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EditOutlinedSvg\n }));\n};\n\n/**![edit](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI1Ny43IDc1MmMyIDAgNC0uMiA2LS41TDQzMS45IDcyMmMyLS40IDMuOS0xLjMgNS4zLTIuOGw0MjMuOS00MjMuOWE5Ljk2IDkuOTYgMCAwMDAtMTQuMUw2OTQuOSAxMTQuOWMtMS45LTEuOS00LjQtMi45LTcuMS0yLjlzLTUuMiAxLTcuMSAyLjlMMjU2LjggNTM4LjhjLTEuNSAxLjUtMi40IDMuMy0yLjggNS4zbC0yOS41IDE2OC4yYTMzLjUgMzMuNSAwIDAwOS40IDI5LjhjNi42IDYuNCAxNC45IDkuOSAyMy44IDkuOXptNjcuNC0xNzQuNEw2ODcuOCAyMTVsNzMuMyA3My4zLTM2Mi43IDM2Mi42LTg4LjkgMTUuNyAxNS42LTg5ek04ODAgODM2SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTM2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EditOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'EditOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar EyeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" } }] }, \"name\": \"eye\", \"theme\": \"outlined\" };\nexport default EyeOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EyeOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EyeOutlined = function EyeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EyeOutlinedSvg\n }));\n};\n\n/**![eye](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAwMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTEyIDc2NmMtMTYxLjMgMC0yNzkuNC04MS44LTM2Mi43LTI1NEMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGMxNjEuMyAwIDI3OS40IDgxLjggMzYyLjcgMjU0Qzc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2em0tNC00MzBjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em0wIDI4OGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJzNTAuMS0xMTIgMTEyLTExMiAxMTIgNTAuMSAxMTIgMTEyLTUwLjEgMTEyLTExMiAxMTJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EyeOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'EyeOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar 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\" };\nexport default FormOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FormOutlinedSvg from \"@ant-design/icons-svg/es/asn/FormOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FormOutlined = function FormOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FormOutlinedSvg\n }));\n};\n\n/**![form](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwNCA1MTJoLTU2Yy00LjQgMC04IDMuNi04IDh2MzIwSDE4NFYxODRoMzIwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlY1MjBjMC00LjQtMy42LTgtOC04eiIgLz48cGF0aCBkPSJNMzU1LjkgNTM0LjlMMzU0IDY1My44Yy0uMSA4LjkgNy4xIDE2LjIgMTYgMTYuMmguNGwxMTgtMi45YzItLjEgNC0uOSA1LjQtMi4zbDQxNS45LTQxNWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDc4NS40IDExNC4zYy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNDE1LjggNDE1YTguMyA4LjMgMCAwMC0yLjMgNS42em02My41IDIzLjZMNzc5LjcgMTk5bDQ1LjIgNDUuMS0zNjAuNSAzNTkuNy00NS43IDEuMS43LTQ2LjR6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FormOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'FormOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\n\n/**![plus](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ4MiAxNTJoNjBxOCAwIDggOHY3MDRxMCA4LTggOGgtNjBxLTggMC04LThWMTYwcTAtOCA4LTh6IiAvPjxwYXRoIGQ9Ik0xOTIgNDc0aDY3MnE4IDAgOCA4djYwcTAgOC04IDhIMTYwcS04IDAtOC04di02MHEwLTggOC04eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(PlusOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'PlusOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar 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\" };\nexport default ReloadOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ReloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/ReloadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ReloadOutlined = function ReloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ReloadOutlinedSvg\n }));\n};\n\n/**![reload](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwOS4xIDIwOS4zbC01Ni40IDQ0LjFDNzc1LjggMTU1LjEgNjU2LjIgOTIgNTIxLjkgOTIgMjkwIDkyIDEwMi4zIDI3OS41IDEwMiA1MTEuNSAxMDEuNyA3NDMuNyAyODkuOCA5MzIgNTIxLjkgOTMyYzE4MS4zIDAgMzM1LjgtMTE1IDM5NC42LTI3Ni4xIDEuNS00LjItLjctOC45LTQuOS0xMC4zbC01Ni43LTE5LjVhOCA4IDAgMDAtMTAuMSA0LjhjLTEuOCA1LTMuOCAxMC01LjkgMTQuOS0xNy4zIDQxLTQyLjEgNzcuOC03My43IDEwOS40QTM0NC43NyAzNDQuNzcgMCAwMTY1NS45IDgyOWMtNDIuMyAxNy45LTg3LjQgMjctMTMzLjggMjctNDYuNSAwLTkxLjUtOS4xLTEzMy44LTI3QTM0MS41IDM0MS41IDAgMDEyNzkgNzU1LjJhMzQyLjE2IDM0Mi4xNiAwIDAxLTczLjctMTA5LjRjLTE3LjktNDIuNC0yNy04Ny40LTI3LTEzMy45czkuMS05MS41IDI3LTEzMy45YzE3LjMtNDEgNDIuMS03Ny44IDczLjctMTA5LjQgMzEuNi0zMS42IDY4LjQtNTYuNCAxMDkuMy03My44IDQyLjMtMTcuOSA4Ny40LTI3IDEzMy44LTI3IDQ2LjUgMCA5MS41IDkuMSAxMzMuOCAyN2EzNDEuNSAzNDEuNSAwIDAxMTA5LjMgNzMuOGM5LjkgOS45IDE5LjIgMjAuNCAyNy44IDMxLjRsLTYwLjIgNDdhOCA4IDAgMDAzIDE0LjFsMTc1LjYgNDNjNSAxLjIgOS45LTIuNiA5LjktNy43bC44LTE4MC45Yy0uMS02LjYtNy44LTEwLjMtMTMtNi4yeiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ReloadOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ReloadOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar SearchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\" } }] }, \"name\": \"search\", \"theme\": \"outlined\" };\nexport default SearchOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SearchOutlined = function SearchOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SearchOutlinedSvg\n }));\n};\n\n/**![search](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwOS42IDg1NC41TDY0OS45IDU5NC44QzY5MC4yIDU0Mi43IDcxMiA0NzkgNzEyIDQxMmMwLTgwLjItMzEuMy0xNTUuNC04Ny45LTIxMi4xLTU2LjYtNTYuNy0xMzItODcuOS0yMTIuMS04Ny45cy0xNTUuNSAzMS4zLTIxMi4xIDg3LjlDMTQzLjIgMjU2LjUgMTEyIDMzMS44IDExMiA0MTJjMCA4MC4xIDMxLjMgMTU1LjUgODcuOSAyMTIuMUMyNTYuNSA2ODAuOCAzMzEuOCA3MTIgNDEyIDcxMmM2NyAwIDEzMC42LTIxLjggMTgyLjctNjJsMjU5LjcgMjU5LjZhOC4yIDguMiAwIDAwMTEuNiAwbDQzLjYtNDMuNWE4LjIgOC4yIDAgMDAwLTExLjZ6TTU3MC40IDU3MC40QzUyOCA2MTIuNyA0NzEuOCA2MzYgNDEyIDYzNnMtMTE2LTIzLjMtMTU4LjQtNjUuNkMyMTEuMyA1MjggMTg4IDQ3MS44IDE4OCA0MTJzMjMuMy0xMTYuMSA2NS42LTE1OC40QzI5NiAyMTEuMyAzNTIuMiAxODggNDEyIDE4OHMxMTYuMSAyMy4yIDE1OC40IDY1LjZTNjM2IDM1Mi4yIDYzNiA0MTJzLTIzLjMgMTE2LjEtNjUuNiAxNTguNHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(SearchOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'SearchOutlined';\n}\nexport default RefIcon;","/** API 请求函数类型 */\nexport interface ApiRequest {\n <T = unknown>(url: string, options?: RequestInit): Promise<T>;\n}\n\n/**\n * 数据类型:描述字段存储的值类型。\n *\n * 嵌套对象不再作为独立类型,而是通过 key 的点分路径(dot-path)表达,\n * 例如 `emergencyContact.name`、`emergencyContact.phone`。\n * 框架会自动将 Form 数据写入/读出对应的嵌套路径。\n */\nexport type DataType =\n | 'string' // 字符串\n | 'number' // 数字\n | 'boolean' // 布尔\n | 'datetime' // 日期时间\n | 'date' // 仅日期\n | 'array' // 基本类型数组(string[] / number[]),配合 multiselect / checkbox\n | 'objectArray'; // 对象数组(object[]),配合 editableTable,需配置 itemFields\n\n/** UI 组件类型:描述字段渲染使用的组件 */\nexport type WidgetType =\n // ── 基础输入 ──────────────────────────────\n | 'input' // 单行输入框(string 默认)\n | 'textarea' // 多行文本域\n | 'inputNumber' // 数字输入框(number 默认)\n // ── 选择类 ────────────────────────────────\n | 'select' // 单选下拉\n | 'multiselect' // 多选下拉(array 默认)\n | 'radio' // 单选按钮组\n | 'checkbox' // 多选复选框\n | 'switch' // 开关(boolean 默认)\n // ── 日期时间 ──────────────────────────────\n | 'datePicker' // 日期/时间选择(date/datetime 默认)\n | 'rangePicker' // 日期范围选择\n | 'timePicker' // 时间点选择\n // ── 对象数组 ──────────────────────────────\n | 'editableTable' // 行内可编辑表格(objectArray 默认)\n // ── JSON 原始编辑 ─────────────────────────\n | 'jsonInput'; // 原始 JSON 文本域(fallback)\n\n/** 兼容旧版 —— 不再推荐直接使用 */\nexport type FieldType = DataType;\n\nexport interface SelectOption {\n label: string;\n value: string | number | boolean;\n color?: string;\n}\n\n/**\n * 筛选项配置 —— 仅放筛选独有配置。\n * options / placeholder / dateFormat 统一在 FieldSchema.config 里配置。\n */\nexport interface FilterConfig {\n /** 覆盖字段级 widget,指定筛选组件类型 */\n widget?: WidgetType;\n /** inputNumber 时可开启数字范围(min/max 两个输入框) */\n range?: boolean;\n defaultValue?: unknown;\n}\n\n/** 表格列配置 */\nexport interface TableColumnConfig {\n width?: number;\n fixed?: 'left' | 'right';\n sortable?: boolean;\n ellipsis?: boolean;\n}\n\n/**\n * 表单字段配置 —— 仅放表单独有配置。\n * options / placeholder / dateFormat / rows 统一在 FieldSchema.config 里配置。\n */\nexport interface FormFieldConfig {\n /** 覆盖字段级 widget,指定表单组件类型 */\n widget?: WidgetType;\n required?: boolean;\n min?: number;\n max?: number;\n step?: number;\n}\n\n/**\n * 字段级共用组件配置。\n * filter 和 form 均可读取,无需在两处重复填写。\n */\nexport interface FieldConfig {\n /** 下拉/多选/单选等组件的选项列表 */\n options?: SelectOption[];\n /** 输入框、选择框等的占位提示文字 */\n placeholder?: string;\n /** 日期/时间组件的显示格式,如 'YYYY-MM-DD' */\n dateFormat?: string;\n /** textarea / jsonInput 的行数 */\n rows?: number;\n}\n\n/**\n * 对象数组(objectArray)中每个 item 的字段定义。\n * 故意保持简单:不支持嵌套 objectArray,不支持 dot-path key。\n */\nexport interface ArrayItemField {\n /** item 对象的属性名,不使用点分路径 */\n key: string;\n label: string;\n /** 不允许嵌套数组 */\n type: Exclude<DataType, 'array' | 'objectArray'>;\n /** 不允许嵌套 editableTable */\n widget?: Exclude<WidgetType, 'editableTable'>;\n config?: Pick<FieldConfig, 'options' | 'placeholder' | 'dateFormat'>;\n required?: boolean;\n /** 列宽(px) */\n width?: number;\n}\n\n/**\n * 字段定义。\n *\n * ### 点分路径(dot-path)规则\n * `key` 支持点分路径表达嵌套结构,例如:\n * - `emergencyContact.name`\n * - `emergencyContact.phone`\n *\n * Form 层会自动将值写入 / 读取对应的嵌套对象属性;\n * 具有相同前缀的字段在表单中会被归为同一视觉分组,并显示分组标题。\n */\nexport interface FieldSchema {\n key: string;\n label: string;\n /** 数据类型(值的类型) */\n type: DataType;\n /**\n * 默认 UI 组件类型;可被 filter / form 级别的 widget 覆盖。\n * 不填时由 defaultWidgetForType 推导。\n */\n widget?: WidgetType;\n filter?: boolean | FilterConfig;\n table?: boolean | TableColumnConfig;\n form?: boolean | FormFieldConfig;\n /**\n * 字段级共用组件配置(options、placeholder、dateFormat 等)。\n * filter 和 form 均从这里读取,不再重复配置。\n */\n config?: FieldConfig;\n render?: string;\n /**\n * 对象数组子字段定义,仅 type='objectArray' 时生效。\n * 配置后 widget 默认推导为 'editableTable'。\n */\n itemFields?: ArrayItemField[];\n /**\n * 校验规则 key 数组,引用 validationRules.ts 中内置或自定义规则的 key。\n * 例如 `rules: ['phone_cn', 'max_len_50']`\n * 注意:required 规则通过 form.required 单独控制,无需在此重复。\n */\n rules?: string[];\n}\n\nexport type ActionType = 'edit' | 'delete' | 'view' | 'custom';\n\nexport interface ActionPermission {\n role?: string[];\n condition?: string;\n}\n\nexport interface ActionSchema {\n key: string;\n label: string;\n type: ActionType;\n icon?: string;\n danger?: boolean;\n permission?: ActionPermission;\n confirm?: {\n title: string;\n content?: string;\n };\n}\n\nexport interface PaginationConfig {\n pageSize?: number;\n pageSizeOptions?: number[];\n showTotal?: boolean;\n}\n\nexport interface CrudPageSchema {\n id: string;\n title: string;\n api: {\n list: string;\n create?: string;\n update?: string;\n delete?: string;\n detail?: string;\n };\n fields: FieldSchema[];\n actions?: ActionSchema[];\n pagination?: PaginationConfig;\n rowKey?: string;\n createButtonLabel?: string;\n}\n\n/* ─── 工具函数 ──────────────────────────────────────── */\n\n/**\n * 根据数据类型推导默认 UI 组件\n *\n * string → input\n * number → inputNumber\n * boolean → switch\n * date → datePicker\n * datetime → datePicker\n * array → multiselect\n * objectArray → editableTable\n */\nexport function defaultWidgetForType(type: DataType): WidgetType {\n switch (type) {\n case 'number': return 'inputNumber';\n case 'boolean': return 'switch';\n case 'date':\n case 'datetime': return 'datePicker';\n case 'array': return 'multiselect';\n case 'objectArray': return 'editableTable';\n default: return 'input'; // string\n }\n}\n\n/** 获取实际生效的组件类型(context.widget > field.widget > type 推导) */\nexport function getEffectiveWidget(\n field: FieldSchema,\n config?: FilterConfig | FormFieldConfig,\n): WidgetType {\n if (config?.widget) return config.widget;\n if (field.widget) return field.widget;\n return defaultWidgetForType(field.type);\n}\n\n/**\n * 从嵌套对象按点分路径取值\n *\n * getNestedValue({ a: { b: 1 } }, 'a.b') → 1\n * getNestedValue({ x: [1, 2] }, 'x') → [1, 2]\n */\nexport function getNestedValue(obj: Record<string, unknown>, path: string): unknown {\n return path.split('.').reduce((acc: unknown, key) => {\n if (acc != null && typeof acc === 'object' && !Array.isArray(acc)) {\n return (acc as Record<string, unknown>)[key];\n }\n return undefined;\n }, obj);\n}\n\n/**\n * 从点分路径 key 中提取分组前缀(第一个 segment)。\n * 无前缀的顶层字段返回 null。\n *\n * 'emergencyContact.name' → 'emergencyContact'\n * 'name' → null\n */\nexport function getFieldGroupPrefix(key: string): string | null {\n const idx = key.indexOf('.');\n return idx >= 0 ? key.slice(0, idx) : null;\n}","import { useState } from 'react';\nimport { Form, Input, InputNumber, Select, Switch, DatePicker, Button, Row, Col, Space, Radio } from 'antd';\nimport { SearchOutlined, ReloadOutlined } from '@ant-design/icons';\nimport type { CrudPageSchema, FieldSchema, FilterConfig, SelectOption } from '../types/schema';\nimport { getEffectiveWidget } from '../types/schema';\n\nconst { RangePicker } = DatePicker;\n\ninterface DynamicFilterProps {\n schema: CrudPageSchema;\n onSearch: (values: Record<string, unknown>) => void;\n onReset: () => void;\n}\n\n/** 解析 FilterConfig */\nfunction getFilterConfig(field: FieldSchema): FilterConfig | undefined {\n if (!field.filter || typeof field.filter === 'boolean') return undefined;\n return field.filter as FilterConfig;\n}\n\n/** 获取选项列表(从 field.config 读取) */\nfunction getOptions(field: FieldSchema): SelectOption[] {\n return field.config?.options ?? [];\n}\n\n/** 渲染单个筛选组件 */\nfunction renderFilterInput(field: FieldSchema, cfg?: FilterConfig): React.ReactNode {\n const widget = getEffectiveWidget(field, cfg);\n const placeholder = field.config?.placeholder;\n const dateFormat = field.config?.dateFormat;\n const options = getOptions(field);\n const style = { width: '100%' };\n\n switch (widget) {\n case 'input':\n return <Input placeholder={placeholder ?? `请输入 ${field.label}`} style={style} />;\n\n case 'textarea':\n return <Input.TextArea placeholder={placeholder ?? `请输入 ${field.label}`} style={style} />;\n\n case 'inputNumber': {\n if (cfg?.range) {\n return (\n <Space>\n <Form.Item name={`${field.key}_min`} noStyle>\n <InputNumber placeholder=\"最小值\" />\n </Form.Item>\n <span>~</span>\n <Form.Item name={`${field.key}_max`} noStyle>\n <InputNumber placeholder=\"最大值\" />\n </Form.Item>\n </Space>\n );\n }\n return <InputNumber placeholder={placeholder ?? `请输入 ${field.label}`} style={style} />;\n }\n\n case 'select':\n return (\n <Select allowClear placeholder={placeholder ?? `请选择 ${field.label}`} style={style}>\n {options.map((o) => (\n <Select.Option key={String(o.value)} value={o.value}>\n {o.label}\n </Select.Option>\n ))}\n </Select>\n );\n\n case 'multiselect':\n return (\n <Select mode=\"multiple\" allowClear placeholder={placeholder ?? `请选择 ${field.label}`} style={style}>\n {options.map((o) => (\n <Select.Option key={String(o.value)} value={o.value}>\n {o.label}\n </Select.Option>\n ))}\n </Select>\n );\n\n case 'radio':\n return (\n <Radio.Group style={style}>\n {options.map((o) => (\n <Radio key={String(o.value)} value={o.value}>{o.label}</Radio>\n ))}\n </Radio.Group>\n );\n\n case 'switch':\n return <Switch />;\n\n case 'datePicker': {\n const showTime = field.type === 'datetime';\n return <DatePicker showTime={showTime} format={dateFormat} style={style} />;\n }\n\n case 'rangePicker': {\n const showTime = field.type === 'datetime';\n return <RangePicker showTime={showTime} format={dateFormat} style={style} />;\n }\n\n case 'timePicker':\n return <DatePicker picker=\"time\" format={dateFormat ?? 'HH:mm:ss'} style={style} />;\n\n case 'jsonInput':\n return <Input placeholder={placeholder ?? `搜索 ${field.label}`} style={style} />;\n\n default:\n return <Input placeholder={placeholder ?? `请输入 ${field.label}`} style={style} />;\n }\n}\n\nexport default function DynamicFilter({ schema, onSearch, onReset }: DynamicFilterProps) {\n const [form] = Form.useForm();\n const [expanded, setExpanded] = useState(false);\n\n const filterFields = schema.fields.filter(\n (f) => f.filter !== false && f.filter !== undefined && f.type !== 'objectArray',\n );\n\n const handleFinish = (values: Record<string, unknown>) => {\n onSearch(values);\n };\n\n const handleReset = () => {\n form.resetFields();\n onReset();\n };\n\n const colSpan = { xs: 24, sm: 12, md: 12, lg: 8, xl: 6, xxl: 6 };\n\n const visibleFields = expanded ? filterFields : filterFields.slice(0, 4);\n\n return (\n <Form form={form} onFinish={handleFinish} layout=\"vertical\">\n <Row gutter={[16, 0]}>\n {visibleFields.map((field) => {\n const cfg = getFilterConfig(field);\n const widget = getEffectiveWidget(field, cfg);\n\n // inputNumber 数字范围:name 不放在 Form.Item 上,由内部子 Form.Item 承载\n const isNumberRange = widget === 'inputNumber' && cfg?.range;\n\n return (\n <Col key={field.key} {...colSpan}>\n <Form.Item\n label={field.label}\n name={isNumberRange ? undefined : field.key}\n valuePropName={widget === 'switch' ? 'checked' : 'value'}\n >\n {renderFilterInput(field, cfg)}\n </Form.Item>\n </Col>\n );\n })}\n\n {/* 操作按钮 */}\n <Col {...colSpan}>\n <Form.Item label=\" \">\n <Space>\n <Button type=\"primary\" htmlType=\"submit\" icon={<SearchOutlined />}>\n 搜索\n </Button>\n <Button onClick={handleReset} icon={<ReloadOutlined />}>\n 重置\n </Button>\n {filterFields.length > 4 && (\n <Button type=\"link\" onClick={() => setExpanded(!expanded)}>\n {expanded ? '收起' : '展开'}\n </Button>\n )}\n </Space>\n </Form.Item>\n </Col>\n </Row>\n </Form>\n );\n}\n","import { Table, Tag, Switch, Space, Button, Popconfirm, Tooltip, message } from 'antd';\nimport { EyeOutlined, EditOutlined, DeleteOutlined, CopyOutlined } from '@ant-design/icons';\nimport type { ColumnsType } from 'antd/es/table';\nimport dayjs from 'dayjs';\nimport type { CrudPageSchema, FieldSchema, TableColumnConfig, SelectOption } from '../types/schema';\nimport { getEffectiveWidget, getNestedValue } from '../types/schema';\n\ninterface DynamicTableProps {\n schema: CrudPageSchema;\n data: Record<string, unknown>[];\n loading: boolean;\n pagination: {\n current: number;\n pageSize: number;\n total: number;\n onChange: (page: number, pageSize: number) => void;\n };\n onView: (record: Record<string, unknown>) => void;\n onEdit: (record: Record<string, unknown>) => void;\n onDelete: (record: Record<string, unknown>) => void;\n onCustomAction?: (actionKey: string, record: Record<string, unknown>) => void;\n}\n\nfunction getTableConfig(field: FieldSchema): TableColumnConfig | undefined {\n if (!field.table || typeof field.table === 'boolean') return undefined;\n return field.table as TableColumnConfig;\n}\n\nfunction getOptions(field: FieldSchema): SelectOption[] {\n return field.config?.options ?? [];\n}\n\n/** 格式化单元格显示值 */\nfunction renderCell(field: FieldSchema, value: unknown): React.ReactNode {\n if (value == null || value === '') return <span style={{ color: '#ccc' }}>-</span>;\n\n const widget = getEffectiveWidget(field);\n\n // ── 布尔类 ──────────────────────────────────────────────\n if (field.type === 'boolean' || widget === 'switch') {\n return <Switch checked={Boolean(value)} disabled size=\"small\" />;\n }\n\n // ── 下拉/单选(有 options) ──────────────────────────────\n if (widget === 'select' || widget === 'radio') {\n const options = getOptions(field);\n const opt = options.find((o) => o.value === value);\n if (opt) {\n return opt.color ? <Tag color={opt.color}>{opt.label}</Tag> : <span>{opt.label}</span>;\n }\n return <span>{String(value)}</span>;\n }\n\n // ── 多选(multiselect / checkbox,值为数组) ─────────────\n if (widget === 'multiselect' || widget === 'checkbox') {\n const arr = Array.isArray(value) ? value : [value];\n const options = getOptions(field);\n return (\n <Space size={4} wrap>\n {arr.map((v) => {\n const opt = options.find((o) => o.value === v);\n return opt ? (\n <Tag key={String(v)} color={opt.color}>{opt.label}</Tag>\n ) : (\n <Tag key={String(v)}>{String(v)}</Tag>\n );\n })}\n </Space>\n );\n }\n\n // ── 日期/时间 ────────────────────────────────────────────\n if (widget === 'datePicker') {\n const fmt = field.config?.dateFormat ?? (field.type === 'datetime' ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD');\n const d = dayjs(value as string);\n return d.isValid() ? <span>{d.format(fmt)}</span> : <span>{String(value)}</span>;\n }\n\n if (widget === 'rangePicker') {\n if (Array.isArray(value)) {\n const fmt = field.config?.dateFormat ?? 'YYYY-MM-DD';\n return <span>{value.map((v) => (v ? dayjs(v as string).format(fmt) : '-')).join(' ~ ')}</span>;\n }\n }\n\n if (widget === 'timePicker') {\n const fmt = field.config?.dateFormat ?? 'HH:mm:ss';\n const d = dayjs(value as string);\n return d.isValid() ? <span>{d.format(fmt)}</span> : <span>{String(value)}</span>;\n }\n\n // ── 普通数组(array 基本类型) ───────────────────────────\n if (field.type === 'array' && Array.isArray(value)) {\n return (\n <Space size={4} wrap>\n {(value as unknown[]).map((v, i) => (\n <Tag key={i}>{String(v)}</Tag>\n ))}\n </Space>\n );\n }\n\n // ── objectArray / editableTable:显示 N 条记录 ──────────\n if (field.type === 'objectArray' || widget === 'editableTable') {\n const arr = Array.isArray(value) ? value : [];\n return <span style={{ color: '#888' }}>{arr.length} 条记录</span>;\n }\n\n // ── jsonInput(对象序列化为字符串) ──────────────────────\n if (widget === 'jsonInput') {\n if (typeof value === 'object') {\n const str = JSON.stringify(value);\n return (\n <Tooltip title={<pre style={{ margin: 0, fontSize: 11 }}>{JSON.stringify(value, null, 2)}</pre>}>\n <span style={{ cursor: 'help', fontFamily: 'monospace', fontSize: 12 }}>\n {str.length > 40 ? str.slice(0, 40) + '…' : str}\n </span>\n </Tooltip>\n );\n }\n return <span>{String(value)}</span>;\n }\n\n return <span>{String(value)}</span>;\n}\n\nexport default function DynamicTable({\n schema,\n data,\n loading,\n pagination,\n onView,\n onEdit,\n onDelete,\n onCustomAction,\n}: DynamicTableProps) {\n const tableFields = schema.fields.filter((f) => f.table !== false && f.table !== undefined);\n\n const columns: ColumnsType<Record<string, unknown>> = tableFields.map((field) => {\n const cfg = getTableConfig(field);\n const isNested = field.key.includes('.');\n\n return {\n title: field.label,\n // 点分路径使用数组形式,Ant Design Table 支持嵌套取值\n dataIndex: isNested ? field.key.split('.') : field.key,\n key: field.key,\n width: cfg?.width,\n fixed: cfg?.fixed,\n ellipsis: cfg?.ellipsis,\n sorter: cfg?.sortable,\n render: (_value: unknown, record: Record<string, unknown>) => {\n // 统一使用 getNestedValue 以支持多层点分路径\n const actualValue = isNested ? getNestedValue(record, field.key) : _value;\n return renderCell(field, actualValue);\n },\n };\n });\n\n const copyJson = (record: Record<string, unknown>) => {\n navigator.clipboard.writeText(JSON.stringify(record, null, 2))\n .then(() => void message.success('已复制 JSON'))\n .catch(() => void message.error('复制失败'));\n };\n\n // 操作列(有 schema.actions 或始终存在,以便展示复制按钮)\n columns.push({\n title: '操作',\n key: '__actions',\n fixed: 'right',\n width: (schema.actions?.length ?? 0) * 60 + 60,\n render: (_: unknown, record: Record<string, unknown>) => (\n <Space size={4}>\n {(schema.actions ?? []).map((action) => {\n if (action.type === 'view') {\n return (\n <Tooltip key={action.key} title={action.label}>\n <Button\n type=\"link\"\n size=\"small\"\n icon={<EyeOutlined />}\n onClick={() => onView(record)}\n />\n </Tooltip>\n );\n }\n if (action.type === 'edit') {\n return (\n <Tooltip key={action.key} title={action.label}>\n <Button\n type=\"link\"\n size=\"small\"\n icon={<EditOutlined />}\n onClick={() => onEdit(record)}\n />\n </Tooltip>\n );\n }\n if (action.type === 'delete') {\n return (\n <Popconfirm\n key={action.key}\n title={action.confirm?.title ?? '确定删除?'}\n description={action.confirm?.content}\n onConfirm={() => onDelete(record)}\n okText=\"确定\"\n cancelText=\"取消\"\n okButtonProps={{ danger: true }}\n >\n <Tooltip title={action.label}>\n <Button\n type=\"link\"\n size=\"small\"\n danger\n icon={<DeleteOutlined />}\n />\n </Tooltip>\n </Popconfirm>\n );\n }\n return (\n <Tooltip key={action.key} title={action.label}>\n <Button\n type=\"link\"\n size=\"small\"\n onClick={() => onCustomAction?.(action.key, record)}\n >\n {action.label}\n </Button>\n </Tooltip>\n );\n })}\n <Tooltip title=\"复制 JSON\">\n <Button\n type=\"link\"\n size=\"small\"\n icon={<CopyOutlined />}\n onClick={() => copyJson(record)}\n />\n </Tooltip>\n </Space>\n ),\n });\n\n return (\n <Table\n rowKey={schema.rowKey ?? 'id'}\n columns={columns}\n dataSource={data}\n loading={loading}\n scroll={{ x: 'max-content' }}\n pagination={{\n current: pagination.current,\n pageSize: pagination.pageSize,\n total: pagination.total,\n showSizeChanger: true,\n showTotal: schema.pagination?.showTotal\n ? (total) => `共 ${total} 条`\n : undefined,\n onChange: pagination.onChange,\n pageSizeOptions: schema.pagination?.pageSizeOptions ?? [10, 20, 50],\n }}\n />\n );\n}\n","import type { Rule } from 'antd/es/form';\n\n/** 校验规则配置(内置 + 自定义均使用此结构) */\nexport interface ValidationRuleConfig {\n key: string;\n label: string;\n description?: string;\n message: string;\n /** 正则字符串(将转为 RegExp) */\n pattern?: string;\n /** 最小值(number)或最小长度(string) */\n min?: number;\n /** 最大值(number)或最大长度(string) */\n max?: number;\n /** antd 内置类型校验 */\n type?: 'string' | 'number' | 'email' | 'url' | 'integer';\n /** 是否不允许纯空白字符 */\n whitespace?: boolean;\n /** 是否内置(内置规则不可删除) */\n builtin?: boolean;\n}\n\n/** 内置规则集 */\nexport const BUILTIN_RULES: ValidationRuleConfig[] = [\n {\n key: 'phone_cn',\n label: '手机号(中国大陆)',\n description: '1 开头的 11 位数字',\n message: '请输入正确的手机号',\n pattern: '^1[3-9]\\\\d{9}$',\n builtin: true,\n },\n {\n key: 'email',\n label: '邮箱地址',\n description: '标准电子邮箱格式',\n message: '请输入正确的邮箱地址',\n type: 'email',\n builtin: true,\n },\n {\n key: 'url',\n label: 'URL 链接',\n description: '以 http/https 开头的合法 URL',\n message: '请输入正确的 URL 地址',\n type: 'url',\n builtin: true,\n },\n {\n key: 'id_card_cn',\n label: '居民身份证(中国)',\n description: '18 位二代身份证号码',\n message: '请输入正确的身份证号',\n pattern: '^[1-9]\\\\d{5}(18|19|20)\\\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\\\d|3[01])\\\\d{3}[\\\\dXx]$',\n builtin: true,\n },\n {\n key: 'positive_integer',\n label: '正整数',\n description: '大于 0 的整数',\n message: '请输入正整数',\n pattern: '^[1-9]\\\\d*$',\n builtin: true,\n },\n {\n key: 'non_negative_integer',\n label: '非负整数',\n description: '0 或大于 0 的整数',\n message: '请输入非负整数',\n pattern: '^\\\\d+$',\n builtin: true,\n },\n {\n key: 'chinese',\n label: '纯中文',\n description: '只能包含中文字符',\n message: '只能输入中文字符',\n pattern: '^[\\\\u4e00-\\\\u9fa5]+$',\n builtin: true,\n },\n {\n key: 'alphanumeric',\n label: '字母和数字',\n description: '只能包含英文字母和数字',\n message: '只能输入字母和数字',\n pattern: '^[a-zA-Z0-9]+$',\n builtin: true,\n },\n {\n key: 'no_special_chars',\n label: '无特殊字符',\n description: '只允许中文、字母、数字、下划线、短横线',\n message: '不能包含特殊字符',\n pattern: '^[a-zA-Z0-9\\\\u4e00-\\\\u9fa5_-]+$',\n builtin: true,\n },\n {\n key: 'ip_address',\n label: 'IPv4 地址',\n description: '标准 IPv4 地址格式',\n message: '请输入正确的 IP 地址',\n pattern: '^((25[0-5]|2[0-4]\\\\d|[01]?\\\\d\\\\d?)\\\\.){3}(25[0-5]|2[0-4]\\\\d|[01]?\\\\d\\\\d?)$',\n builtin: true,\n },\n {\n key: 'date_format',\n label: '日期格式 (YYYY-MM-DD)',\n description: '格式如 2024-01-01',\n message: '请输入正确的日期格式,如 2024-01-01',\n pattern: '^\\\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01])$',\n builtin: true,\n },\n {\n key: 'no_whitespace',\n label: '不含空格',\n description: '不允许包含任何空白字符',\n message: '不能包含空格',\n pattern: '^\\\\S+$',\n builtin: true,\n },\n {\n key: 'min_len_2',\n label: '最少 2 个字符',\n description: '字符串长度不少于 2',\n message: '长度不能少于 2 个字符',\n min: 2,\n builtin: true,\n },\n {\n key: 'max_len_50',\n label: '最多 50 个字符',\n description: '字符串长度不超过 50',\n message: '长度不能超过 50 个字符',\n max: 50,\n builtin: true,\n },\n {\n key: 'max_len_200',\n label: '最多 200 个字符',\n description: '字符串长度不超过 200',\n message: '长度不能超过 200 个字符',\n max: 200,\n builtin: true,\n },\n {\n key: 'bank_card',\n label: '银行卡号',\n description: '16-19 位纯数字',\n message: '请输入正确的银行卡号',\n pattern: '^\\\\d{16,19}$',\n builtin: true,\n },\n {\n key: 'plate_cn',\n label: '车牌号(中国)',\n description: '含新能源车牌在内的中国大陆车牌',\n message: '请输入正确的车牌号',\n pattern: '^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤川青藏琼宁夏][A-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$',\n builtin: true,\n },\n {\n key: 'postal_code_cn',\n label: '邮政编码(中国)',\n description: '6 位数字邮编',\n message: '请输入正确的邮政编码',\n pattern: '^\\\\d{6}$',\n builtin: true,\n },\n];\n\nconst CUSTOM_RULES_STORAGE_KEY = 'dynamic_crud_custom_rules';\n\nexport function loadCustomRules(): ValidationRuleConfig[] {\n try {\n const raw = localStorage.getItem(CUSTOM_RULES_STORAGE_KEY);\n return raw ? (JSON.parse(raw) as ValidationRuleConfig[]) : [];\n } catch {\n return [];\n }\n}\n\nexport function saveCustomRules(rules: ValidationRuleConfig[]): void {\n try {\n localStorage.setItem(CUSTOM_RULES_STORAGE_KEY, JSON.stringify(rules));\n } catch { /* ignore */ }\n}\n\n/** 获取所有规则(内置 + 自定义) */\nexport function getAllRules(): ValidationRuleConfig[] {\n return [...BUILTIN_RULES, ...loadCustomRules()];\n}\n\n/** 根据 key 查找规则 */\nexport function getRuleByKey(key: string): ValidationRuleConfig | undefined {\n return getAllRules().find(r => r.key === key);\n}\n\n/** 将规则配置转为 Ant Design Form Rule */\nexport function ruleConfigToAntdRule(config: ValidationRuleConfig): Rule {\n const rule: Record<string, unknown> = { message: config.message };\n if (config.pattern) {\n rule.pattern = new RegExp(config.pattern);\n }\n if (config.type) {\n rule.type = config.type;\n }\n if (config.min !== undefined) {\n rule.min = config.min;\n }\n if (config.max !== undefined) {\n rule.max = config.max;\n }\n if (config.whitespace !== undefined) {\n rule.whitespace = config.whitespace;\n }\n return rule as Rule;\n}\n\n/** 将一组规则 key 转为 Ant Design Form Rules 数组 */\nexport function keysToAntdRules(keys: string[]): Rule[] {\n return keys\n .map(k => getRuleByKey(k))\n .filter((c): c is ValidationRuleConfig => c !== undefined)\n .map(ruleConfigToAntdRule);\n}","import { useEffect, useState } from 'react';\nimport {\n Modal, Form, Input, InputNumber, Select, Switch,\n DatePicker, Radio, Checkbox, Space, Card, Divider,\n Button, Table, message,\n} from 'antd';\nimport { PlusOutlined, DeleteOutlined, CodeOutlined, FormOutlined } from '@ant-design/icons';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\nimport type { CrudPageSchema, FieldSchema, FormFieldConfig, SelectOption, ArrayItemField } from '../types/schema';\nimport { getEffectiveWidget, getFieldGroupPrefix, getNestedValue } from '../types/schema';\nimport { keysToAntdRules } from '../types/validationRules';\n\ntype FormMode = 'create' | 'edit' | 'view';\n\ninterface DynamicFormProps {\n schema: CrudPageSchema;\n mode: FormMode;\n visible: boolean;\n initialValues?: Record<string, unknown>;\n onSubmit: (values: Record<string, unknown>) => void;\n onCancel: () => void;\n}\n\nfunction getFormConfig(field: FieldSchema): FormFieldConfig | undefined {\n if (!field.form || typeof field.form === 'boolean') return undefined;\n return field.form as FormFieldConfig;\n}\n\nfunction getOptions(field: FieldSchema): SelectOption[] {\n return field.config?.options ?? [];\n}\n\n/** 将 camelCase 前缀转为可读标签(仅首字母大写) */\nfunction prefixToLabel(prefix: string): string {\n return prefix.replace(/([A-Z])/g, ' $1').replace(/^./, (s) => s.toUpperCase()).trim();\n}\n\n/** 设置嵌套对象指定路径的值(修改原对象) */\nfunction setNestedValue(\n obj: Record<string, unknown>,\n path: string[],\n value: unknown,\n): void {\n let cur = obj;\n for (let i = 0; i < path.length - 1; i++) {\n const k = path[i];\n if (cur[k] == null || typeof cur[k] !== 'object' || Array.isArray(cur[k])) {\n cur[k] = {};\n }\n cur = cur[k] as Record<string, unknown>;\n }\n cur[path[path.length - 1]] = value;\n}\n\n/** 行内可编辑表格 cell 组件 */\nfunction EditableCellInput({\n itemField,\n disabled,\n value,\n onChange,\n}: {\n itemField: ArrayItemField;\n disabled: boolean;\n value?: unknown; // Form.Item 注入\n onChange?: (val: unknown) => void; // Form.Item 注入\n}) {\n const ph = itemField.config?.placeholder ?? `请输入${itemField.label}`;\n switch (itemField.type) {\n case 'number':\n return (\n <InputNumber\n disabled={disabled}\n placeholder={ph}\n value={value as number | null | undefined}\n onChange={(v) => onChange?.(v)}\n style={{ width: '100%' }}\n />\n );\n case 'boolean':\n // Form.Item 默认 valuePropName=\"value\",这里手动映射到 checked\n return (\n <Switch\n disabled={disabled}\n checked={value as boolean}\n onChange={(checked) => onChange?.(checked)}\n />\n );\n case 'date':\n case 'datetime': {\n const fmt = itemField.config?.dateFormat ?? (itemField.type === 'datetime' ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD');\n // value 可能是字符串(来自 initialValues)或 dayjs 对象(用户选择后)\n const pickerValue = value != null\n ? (dayjs.isDayjs(value) ? value : dayjs(value as string))\n : null;\n return (\n <DatePicker\n disabled={disabled}\n format={fmt}\n value={pickerValue}\n onChange={(v) => onChange?.(v)}\n style={{ width: '100%' }}\n />\n );\n }\n case 'string': {\n if (itemField.widget === 'select' && itemField.config?.options?.length) {\n return (\n <Select\n disabled={disabled}\n allowClear\n placeholder={ph}\n value={value as string | undefined}\n onChange={(v) => onChange?.(v)}\n style={{ width: '100%' }}\n >\n {itemField.config.options.map((o) => (\n <Select.Option key={String(o.value)} value={o.value}>{o.label}</Select.Option>\n ))}\n </Select>\n );\n }\n return (\n <Input\n disabled={disabled}\n placeholder={ph}\n value={value as string | undefined}\n onChange={(e) => onChange?.(e.target.value)}\n />\n );\n }\n default:\n return (\n <Input\n disabled={disabled}\n placeholder={ph}\n value={value as string | undefined}\n onChange={(e) => onChange?.(e.target.value)}\n />\n );\n }\n}\n\nfunction renderFormInput(\n field: FieldSchema,\n cfg: FormFieldConfig | undefined,\n disabled: boolean,\n): React.ReactNode {\n const widget = getEffectiveWidget(field, cfg);\n const options = getOptions(field);\n const placeholder = field.config?.placeholder;\n const rows = field.config?.rows;\n const style = { width: '100%' };\n\n switch (widget) {\n case 'input':\n return <Input disabled={disabled} placeholder={placeholder ?? `请输入 ${field.label}`} style={style} />;\n\n case 'textarea':\n return (\n <Input.TextArea\n disabled={disabled}\n rows={rows ?? 4}\n placeholder={placeholder ?? `请输入 ${field.label}`}\n style={style}\n />\n );\n\n case 'jsonInput':\n return (\n <Input.TextArea\n disabled={disabled}\n rows={rows ?? 5}\n placeholder={placeholder ?? '请输入 JSON'}\n style={{ ...style, fontFamily: 'monospace', fontSize: 12 }}\n />\n );\n\n case 'inputNumber':\n return (\n <InputNumber\n disabled={disabled}\n min={cfg?.min}\n max={cfg?.max}\n step={cfg?.step ?? 1}\n placeholder={placeholder ?? `请输入 ${field.label}`}\n style={style}\n />\n );\n\n case 'select':\n return (\n <Select disabled={disabled} allowClear placeholder={placeholder ?? `请选择 ${field.label}`} style={style}>\n {options.map((o) => (\n <Select.Option key={String(o.value)} value={o.value}>\n {o.label}\n </Select.Option>\n ))}\n </Select>\n );\n\n case 'multiselect':\n return (\n <Select\n mode=\"multiple\"\n disabled={disabled}\n allowClear\n placeholder={placeholder ?? `请选择 ${field.label}`}\n style={style}\n >\n {options.map((o) => (\n <Select.Option key={String(o.value)} value={o.value}>\n {o.label}\n </Select.Option>\n ))}\n </Select>\n );\n\n case 'radio':\n return (\n <Radio.Group disabled={disabled}>\n {options.map((o) => (\n <Radio key={String(o.value)} value={o.value}>{o.label}</Radio>\n ))}\n </Radio.Group>\n );\n\n case 'checkbox':\n return (\n <Checkbox.Group disabled={disabled}>\n <Space wrap>\n {options.map((o) => (\n <Checkbox key={String(o.value)} value={o.value}>{o.label}</Checkbox>\n ))}\n </Space>\n </Checkbox.Group>\n );\n\n case 'switch':\n return <Switch disabled={disabled} />;\n\n case 'datePicker': {\n const showTime = field.type === 'datetime';\n const format = field.config?.dateFormat ?? (showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD');\n return <DatePicker disabled={disabled} showTime={showTime} format={format} style={style} />;\n }\n\n case 'rangePicker': {\n const showTime = field.type === 'datetime';\n const format = field.config?.dateFormat ?? (showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD');\n return <DatePicker.RangePicker disabled={disabled} showTime={showTime} format={format} style={style} />;\n }\n\n case 'timePicker':\n return (\n <DatePicker\n picker=\"time\"\n disabled={disabled}\n format={field.config?.dateFormat ?? 'HH:mm:ss'}\n style={style}\n />\n );\n\n case 'editableTable': {\n const itemFields = field.itemFields ?? [];\n return (\n <Form.List name={field.key}>\n {(listFields, { add, remove }) => {\n const columns = [\n ...itemFields.map((itemField) => ({\n title: itemField.label,\n dataIndex: itemField.key,\n width: itemField.width,\n render: (_: unknown, record: { name: number }) => (\n <Form.Item\n name={[record.name, itemField.key]}\n rules={itemField.required ? [{ required: true, message: `${itemField.label}必填` }] : undefined}\n style={{ margin: 0 }}\n >\n <EditableCellInput itemField={itemField} disabled={disabled} />\n </Form.Item>\n ),\n })),\n ...(!disabled\n ? [{\n title: '',\n width: 50,\n render: (_: unknown, record: { name: number }) => (\n <Button\n type=\"text\"\n danger\n icon={<DeleteOutlined />}\n onClick={() => remove(record.name)}\n />\n ),\n }]\n : []),\n ];\n return (\n <div>\n <Table\n size=\"small\"\n dataSource={listFields.map((f) => ({ ...f, _key: f.key }))}\n rowKey=\"_key\"\n columns={columns}\n pagination={false}\n style={{ marginBottom: 8 }}\n />\n {!disabled && (\n <Button\n type=\"dashed\"\n icon={<PlusOutlined />}\n onClick={() => add({})}\n block\n >\n 添加一行\n </Button>\n )}\n </div>\n );\n }}\n </Form.List>\n );\n }\n\n default:\n return <Input disabled={disabled} placeholder={placeholder ?? `请输入 ${field.label}`} style={style} />;\n }\n}\n\n/**\n * 将接口数据转为 Form 使用的初始值。\n *\n * - 顶层字段:直接展开(与原来相同)\n * - dot-path 字段(如 `emergencyContact.name`):\n * API 返回的数据已是嵌套结构,form.setFieldsValue 可直接识别\n * - 日期字段:将字符串转为 dayjs 对象\n */\nfunction normalizeInitialValues(\n fields: FieldSchema[],\n values?: Record<string, unknown>,\n): Record<string, unknown> {\n if (!values) return {};\n // 深拷贝,避免修改原对象\n const result: Record<string, unknown> = JSON.parse(JSON.stringify(values)) as Record<string, unknown>;\n\n fields.forEach((field) => {\n const cfg = getFormConfig(field);\n const widget = getEffectiveWidget(field, cfg);\n if (widget !== 'datePicker' && widget !== 'rangePicker' && widget !== 'timePicker') return;\n\n const path = field.key.split('.');\n const val = path.length > 1 ? getNestedValue(result, field.key) : result[field.key];\n if (val == null) return;\n\n if (widget === 'rangePicker' && Array.isArray(val)) {\n setNestedValue(result, path, (val as (string | dayjs.Dayjs)[]).map((v) => {\n if (!v) return null;\n return dayjs.isDayjs(v) ? v : dayjs(v as string);\n }));\n } else if (val) {\n // 检查是否已经是 dayjs 对象,避免重复转换\n if (dayjs.isDayjs(val)) {\n setNestedValue(result, path, val);\n } else {\n // timePicker 存储的是纯时间字符串(如 \"09:30:00\"),需要带 format 解析\n const fmt = widget === 'timePicker'\n ? (field.config?.dateFormat ?? 'HH:mm:ss')\n : undefined;\n setNestedValue(result, path, fmt ? dayjs(val as string, fmt) : dayjs(val as string));\n }\n }\n });\n\n return result;\n}\n\n/** 将 Form 值序列化为提交数据(dayjs → ISO string) */\nfunction serializeValues(\n fields: FieldSchema[],\n values: Record<string, unknown>,\n): Record<string, unknown> {\n const result: Record<string, unknown> = JSON.parse(JSON.stringify(values)) as Record<string, unknown>;\n\n fields.forEach((field) => {\n const cfg = getFormConfig(field);\n const widget = getEffectiveWidget(field, cfg);\n if (widget !== 'datePicker' && widget !== 'rangePicker' && widget !== 'timePicker') return;\n\n const path = field.key.split('.');\n // 必须从原始 values 读(dayjs 对象仍存在),\n // 不能从 result 读——JSON.parse(JSON.stringify) 已把 dayjs 序列化为 ISO 字符串,\n // 导致 dayjs.isDayjs() 全部失败(rangePicker 变成 [null, null])。\n const val = path.length > 1 ? getNestedValue(values, field.key) : values[field.key];\n if (val == null) return;\n\n if (widget === 'timePicker' && dayjs.isDayjs(val)) {\n const fmt = field.config?.dateFormat ?? 'HH:mm:ss';\n setNestedValue(result, path, (val as ReturnType<typeof dayjs>).format(fmt));\n } else if (widget === 'datePicker' && dayjs.isDayjs(val)) {\n setNestedValue(result, path, (val as ReturnType<typeof dayjs>).toISOString());\n } else if (widget === 'rangePicker' && Array.isArray(val)) {\n setNestedValue(\n result,\n path,\n (val as ReturnType<typeof dayjs>[]).map((v) => (v && dayjs.isDayjs(v) ? v.toISOString() : null)),\n );\n }\n });\n\n return result;\n}\n\n/** 渲染单个 Form.Item */\nfunction renderField(field: FieldSchema, disabled: boolean): React.ReactNode {\n const cfg = getFormConfig(field);\n const widget = getEffectiveWidget(field, cfg);\n const required = !disabled && (cfg?.required ?? false);\n\n // editableTable 使用 Form.List,不能再套 Form.Item name\n if (widget === 'editableTable') {\n return (\n <Form.Item key={field.key} label={field.label} style={{ marginBottom: 14 }}>\n {renderFormInput(field, cfg, disabled)}\n </Form.Item>\n );\n }\n\n const namePath = field.key.includes('.') ? field.key.split('.') : field.key;\n const extraRules = field.rules && !disabled ? keysToAntdRules(field.rules) : [];\n const validationRules = [\n ...(required ? [{ required: true, message: `请输入 ${field.label}` }] : []),\n ...extraRules,\n ];\n\n return (\n <Form.Item\n key={field.key}\n label={field.label}\n name={namePath}\n valuePropName={widget === 'switch' ? 'checked' : 'value'}\n rules={validationRules}\n style={{ marginBottom: 14 }}\n >\n {renderFormInput(field, cfg, disabled)}\n </Form.Item>\n );\n}\n\nexport default function DynamicForm({\n schema,\n mode,\n visible,\n initialValues,\n onSubmit,\n onCancel,\n}: DynamicFormProps) {\n const [form] = Form.useForm();\n const [rawJsonMode, setRawJsonMode] = useState(false);\n const [rawJsonText, setRawJsonText] = useState('');\n const [rawJsonError, setRawJsonError] = useState('');\n const disabled = mode === 'view';\n const entityName = schema.title.replace(/管理$/, '');\n\n const titleMap: Record<FormMode, string> = {\n create: `新增${entityName}`,\n edit: `编辑${entityName}`,\n view: `查看${entityName}`,\n };\n\n const formFields = schema.fields.filter((f) => {\n if (mode === 'view') return f.table !== false && f.table !== undefined;\n return f.form !== false && f.form !== undefined;\n });\n\n useEffect(() => {\n if (!visible) {\n form.resetFields();\n setRawJsonMode(false);\n setRawJsonText('');\n setRawJsonError('');\n } else {\n // 模态框打开时,根据模式设置表单值\n if (mode === 'create') {\n // 新增模式:清空表单并确保没有残留数据\n form.resetFields();\n form.setFieldsValue({});\n } else {\n // 编辑/查看模式设置初始值\n const normalized = normalizeInitialValues(formFields, initialValues);\n form.setFieldsValue(normalized);\n }\n }\n }, [visible, mode, initialValues]);\n\n const switchToRaw = () => {\n // getFieldsValue(true) 返回 store 全量数据(含 id 等非 Form.Item 字段)\n const rawValues = disabled\n ? (initialValues ?? {})\n : (form.getFieldsValue(true) as Record<string, unknown>);\n const serialized = disabled ? rawValues : serializeValues(formFields, rawValues);\n setRawJsonText(JSON.stringify(serialized, null, 2));\n setRawJsonError('');\n setRawJsonMode(true);\n };\n\n const switchToForm = () => {\n if (!disabled) {\n try {\n const parsed = JSON.parse(rawJsonText) as Record<string, unknown>;\n form.setFieldsValue(normalizeInitialValues(formFields, parsed));\n setRawJsonError('');\n } catch {\n setRawJsonError('JSON 格式错误,请修正后再切换');\n return;\n }\n }\n setRawJsonMode(false);\n };\n\n const handleOk = async () => {\n if (disabled) { onCancel(); return; }\n if (rawJsonMode) {\n try {\n const parsed = JSON.parse(rawJsonText) as Record<string, unknown>;\n onSubmit(parsed);\n } catch {\n setRawJsonError('JSON 格式错误,无法提交');\n }\n return;\n }\n const values = await form.validateFields();\n onSubmit(serializeValues(formFields, values as Record<string, unknown>));\n };\n\n /**\n * 将字段列表按 dot-path 前缀分组渲染:\n * - 无前缀字段:直接渲染\n * - 有前缀的字段:相同前缀聚合到一个带标题的 Card 中\n */\n const renderFieldGroups = () => {\n const nodes: React.ReactNode[] = [];\n let i = 0;\n while (i < formFields.length) {\n const field = formFields[i];\n const prefix = getFieldGroupPrefix(field.key);\n\n if (!prefix) {\n nodes.push(renderField(field, disabled));\n i++;\n } else {\n // 收集相同前缀的连续字段\n const groupFields: FieldSchema[] = [];\n while (i < formFields.length && getFieldGroupPrefix(formFields[i].key) === prefix) {\n groupFields.push(formFields[i]);\n i++;\n }\n nodes.push(\n <div key={prefix} style={{ marginBottom: 16 }}>\n <Divider style={{ fontSize: 13, color: '#666', margin: '8px 0 12px' }}>\n {prefixToLabel(prefix)}\n </Divider>\n <Card\n size=\"small\"\n style={{ background: '#fafafa', borderRadius: 6 }}\n styles={{ body: { paddingBottom: 4 } }}\n >\n {groupFields.map((gf) => renderField(gf, disabled))}\n </Card>\n </div>,\n );\n }\n }\n return nodes;\n };\n\n const copyRawJson = () => {\n const json = rawJsonMode\n ? rawJsonText\n : JSON.stringify(\n disabled\n ? (initialValues ?? {})\n : serializeValues(formFields, form.getFieldsValue(true) as Record<string, unknown>),\n null, 2,\n );\n navigator.clipboard.writeText(json)\n .then(() => void message.success('已复制 JSON'))\n .catch(() => void message.error('复制失败'));\n };\n\n const modalTitle = (\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', paddingRight: 32 }}>\n <span>{titleMap[mode]}</span>\n <Space size={8}>\n <Button\n size=\"small\"\n type=\"text\"\n icon={rawJsonMode ? <FormOutlined /> : <CodeOutlined />}\n onClick={rawJsonMode ? switchToForm : switchToRaw}\n >\n {rawJsonMode ? '表单视图' : 'Raw JSON'}\n </Button>\n </Space>\n </div>\n );\n\n return (\n <Modal\n title={modalTitle}\n open={visible}\n onOk={handleOk}\n onCancel={onCancel}\n okText={disabled ? '关闭' : '确认'}\n cancelText=\"取消\"\n cancelButtonProps={disabled ? { style: { display: 'none' } } : {}}\n width={720}\n destroyOnClose\n >\n {/* Form 始终挂载,切换模式时仅用 display 隐藏,防止卸载导致 store 重置 */}\n <div style={{ display: rawJsonMode ? 'none' : undefined }}>\n <Form\n form={form}\n layout=\"vertical\"\n initialValues={mode === 'create' ? {} : normalizeInitialValues(formFields, initialValues)}\n >\n {renderFieldGroups()}\n </Form>\n </div>\n\n {rawJsonMode && (\n <div>\n <Input.TextArea\n value={rawJsonText}\n onChange={disabled ? undefined : (e) => { setRawJsonText(e.target.value); setRawJsonError(''); }}\n readOnly={disabled}\n rows={20}\n style={{ fontFamily: 'monospace', fontSize: 12, resize: 'vertical' }}\n status={rawJsonError ? 'error' : undefined}\n />\n {rawJsonError && (\n <div style={{ color: '#ff4d4f', fontSize: 12, marginTop: 4 }}>{rawJsonError}</div>\n )}\n {!disabled && (\n <div style={{ marginTop: 8, textAlign: 'right' }}>\n <Button size=\"small\" icon={<CodeOutlined />} onClick={copyRawJson}>复制 JSON</Button>\n </div>\n )}\n </div>\n )}\n </Modal>\n );\n}\n","import React, { useState, useCallback, useEffect, useRef } from 'react';\nimport { Button, message, Typography } from 'antd';\nimport { PlusOutlined } from '@ant-design/icons';\nimport type { CrudPageSchema, ActionSchema, ApiRequest } from '../types/schema';\nimport DynamicFilter from './DynamicFilter';\nimport DynamicTable from './DynamicTable';\nimport DynamicForm from './DynamicForm';\n\nconst { Title } = Typography;\n\ninterface CrudPageProps {\n schema: CrudPageSchema;\n initialData?: Record<string, unknown>[];\n apiRequest?: ApiRequest;\n}\n\n/** 替换 URL 模板中的 :id */\nfunction buildUrl(template: string, id: unknown): string {\n return template.replace(/:id/, String(id));\n}\n\n/** 通用请求封装 */\nasync function apiRequest<T = unknown>(\n url: string,\n options?: RequestInit,\n): Promise<T> {\n const res = await fetch(url, {\n headers: { 'Content-Type': 'application/json' },\n ...options,\n });\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n return res.json() as Promise<T>;\n}\n\n/** 从接口响应中提取列表和总数(兼容常见结构) */\nfunction extractListResponse(json: unknown): { list: Record<string, unknown>[]; total: number } {\n if (!json || typeof json !== 'object') return { list: [], total: 0 };\n const obj = json as Record<string, unknown>;\n const data = obj.data ?? obj.result ?? obj;\n if (Array.isArray(data)) return { list: data as Record<string, unknown>[], total: data.length };\n if (data && typeof data === 'object') {\n const inner = data as Record<string, unknown>;\n const list = (inner.list ?? inner.records ?? inner.data ?? []) as Record<string, unknown>[];\n const total = Number(inner.total ?? inner.count ?? list.length);\n return { list, total };\n }\n return { list: [], total: 0 };\n}\n\nconst CrudPage: React.FC<CrudPageProps> = ({ schema, initialData = [], apiRequest: customApiRequest }) => {\n const rowKey = schema.rowKey || 'id';\n\n // 使用传入的apiRequest或默认的\n const request = customApiRequest || apiRequest;\n\n // 本地兜底数据(API 失败时使用)\n const localDataRef = useRef<Record<string, unknown>[]>(initialData);\n\n const [data, setData] = useState<Record<string, unknown>[]>([]);\n const [loading, setLoading] = useState(false);\n const [total, setTotal] = useState(0);\n const [filterParams, setFilterParams] = useState<Record<string, unknown>>({});\n const [page, setPage] = useState(1);\n const [pageSize, setPageSize] = useState(schema.pagination?.pageSize || 10);\n const [modalState, setModalState] = useState<{\n open: boolean;\n mode: 'create' | 'edit' | 'view';\n record?: Record<string, unknown>;\n }>({ open: false, mode: 'create' });\n\n const [messageApi, contextHolder] = message.useMessage();\n\n // ---------- 本地过滤(API 失败时兜底) ----------\n const localFilter = useCallback(\n (params: Record<string, unknown>, p: number, ps: number) => {\n const filtered = localDataRef.current.filter(row => {\n return Object.entries(params).every(([key, val]) => {\n if (val === undefined || val === null || val === '') return true;\n if (key.endsWith('_min')) return Number(row[key.slice(0, -4)]) >= Number(val);\n if (key.endsWith('_max')) return Number(row[key.slice(0, -4)]) <= Number(val);\n if (key.endsWith('_start') || key.endsWith('_end')) return true;\n const rowVal = row[key];\n if (Array.isArray(rowVal)) {\n return Array.isArray(val) ? val.some(v => rowVal.includes(v)) : rowVal.includes(val);\n }\n if (typeof val === 'string') return String(rowVal).toLowerCase().includes(val.toLowerCase());\n return rowVal === val;\n });\n });\n const start = (p - 1) * ps;\n setData(filtered.slice(start, start + ps));\n setTotal(filtered.length);\n },\n [],\n );\n\n // ---------- 获取列表 ----------\n const fetchList = useCallback(async (\n params: Record<string, unknown> = filterParams,\n p: number = page,\n ps: number = pageSize,\n ) => {\n setLoading(true);\n try {\n const query = new URLSearchParams({ page: String(p), pageSize: String(ps) });\n Object.entries(params).forEach(([k, v]) => {\n if (v !== undefined && v !== null && v !== '') query.set(k, String(v));\n });\n const json = await request(`${schema.api.list}?${query}`);\n const { list, total: tot } = extractListResponse(json);\n setData(list);\n setTotal(tot);\n } catch {\n // API 不可用 → 本地演示模式\n localFilter(params, p, ps);\n } finally {\n setLoading(false);\n }\n }, [request, schema.api.list, filterParams, page, pageSize, localFilter]);\n\n // 初始加载 & 参数变化时重新请求\n useEffect(() => {\n fetchList(filterParams, page, pageSize);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filterParams, page, pageSize]);\n\n // ---------- 搜索 ----------\n const handleSearch = useCallback((params: Record<string, unknown>) => {\n setFilterParams(params);\n setPage(1);\n }, []);\n\n // ---------- 翻页 ----------\n const handlePageChange = useCallback((p: number, ps: number) => {\n setPage(p);\n setPageSize(ps);\n }, []);\n\n // ---------- 删除 ----------\n const handleDelete = useCallback(async (record: Record<string, unknown>) => {\n const id = record[rowKey];\n if (schema.api.delete) {\n try {\n await request(buildUrl(schema.api.delete, id), { method: 'DELETE' });\n messageApi.success('删除成功');\n fetchList();\n return;\n } catch {\n // 降级本地\n }\n }\n localDataRef.current = localDataRef.current.filter(r => r[rowKey] !== id);\n localFilter(filterParams, page, pageSize);\n messageApi.success('删除成功(演示模式)');\n }, [request, schema.api.delete, rowKey, fetchList, localFilter, filterParams, page, pageSize, messageApi]);\n\n // ---------- 操作列点击 ----------\n const handleAction = useCallback((action: ActionSchema, record: Record<string, unknown>) => {\n if (action.type === 'view') {\n setModalState({ open: true, mode: 'view', record });\n } else if (action.type === 'edit') {\n setModalState({ open: true, mode: 'edit', record });\n } else if (action.type === 'delete') {\n handleDelete(record);\n }\n }, [handleDelete]);\n\n // ---------- 新增 / 编辑提交 ----------\n const handleFormOk = useCallback(async (values: Record<string, unknown>) => {\n const isCreate = modalState.mode === 'create';\n\n if (isCreate) {\n if (schema.api.create) {\n try {\n await request(schema.api.create, {\n method: 'POST',\n body: JSON.stringify(values),\n });\n messageApi.success('新增成功');\n setModalState({ open: false, mode: 'create' });\n fetchList();\n return;\n } catch {\n // 降级本地\n }\n }\n const newRecord = { [rowKey]: `local-${Date.now()}`, ...values };\n localDataRef.current = [newRecord, ...localDataRef.current];\n localFilter(filterParams, 1, pageSize);\n setPage(1);\n messageApi.success('新增成功(演示模式)');\n } else {\n const id = values[rowKey];\n if (schema.api.update) {\n try {\n await request(buildUrl(schema.api.update, id), {\n method: 'PUT',\n body: JSON.stringify(values),\n });\n messageApi.success('编辑成功');\n setModalState({ open: false, mode: 'create' });\n fetchList();\n return;\n } catch {\n // 降级本地\n }\n }\n localDataRef.current = localDataRef.current.map(r =>\n r[rowKey] === id ? { ...r, ...values } : r,\n );\n localFilter(filterParams, page, pageSize);\n messageApi.success('编辑成功(演示模式)');\n }\n\n setModalState({ open: false, mode: 'create' });\n }, [\n request, modalState.mode, schema.api, rowKey,\n fetchList, localFilter, filterParams, page, pageSize, messageApi,\n ]);\n\n return (\n <div style={{ padding: 24, background: '#f5f6fa', minHeight: '100vh' }}>\n {contextHolder}\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: 16 }}>\n <Title level={4} style={{ margin: 0 }}>{schema.title}</Title>\n {schema.api.create && (\n <Button\n type=\"primary\"\n icon={<PlusOutlined />}\n onClick={() => setModalState({ open: true, mode: 'create', record: undefined })}\n >\n {schema.createButtonLabel || '新增'}\n </Button>\n )}\n </div>\n\n <DynamicFilter schema={schema} onSearch={handleSearch} onReset={() => handleSearch({})} />\n\n <DynamicTable\n schema={schema}\n data={data}\n loading={loading}\n pagination={{\n current: page,\n pageSize,\n total,\n onChange: handlePageChange,\n }}\n onView={(record) => handleAction({ key: 'view', label: '查看', type: 'view' }, record)}\n onEdit={(record) => handleAction({ key: 'edit', label: '编辑', type: 'edit' }, record)}\n onDelete={(record) => handleDelete(record)}\n onCustomAction={(actionKey, record) => {\n const action = schema.actions?.find(a => a.key === actionKey);\n if (action) handleAction(action, record);\n }}\n />\n\n <DynamicForm\n schema={schema}\n visible={modalState.open}\n mode={modalState.mode}\n initialValues={modalState.record}\n onSubmit={handleFormOk}\n onCancel={() => setModalState({ open: false, mode: 'create' })}\n />\n </div>\n );\n};\n\nexport default CrudPage;\n"],"names":["createContext","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","objectWithoutPropertiesLoose","generate","defineProperty","_objectSpread","warning","warn","generateColor","useContext","useEffect","_excluded","React","ReactIcon","Context","CodeOutlined","AntdIcon","CodeOutlinedSvg","RefIcon","CopyOutlined","CopyOutlinedSvg","DeleteOutlined","DeleteOutlinedSvg","EditOutlined","EditOutlinedSvg","EyeOutlined","EyeOutlinedSvg","FormOutlined","FormOutlinedSvg","PlusOutlined","PlusOutlinedSvg","ReloadOutlined","ReloadOutlinedSvg","SearchOutlined","SearchOutlinedSvg","DatePicker","getOptions","_jsx","Input","_jsxs","Space","Form","InputNumber","Select","Radio","Switch","useState","Row","Col","Button","Tag","Tooltip","message","Popconfirm","Table","Checkbox","Divider","Card","Modal","Typography","useRef","useCallback"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45]}