@yibozhang/pro-table 11.0.2 → 12.0.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"yibozhang-pro-table.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.mjs","../../../pro-table/src/lib/constants.ts","../../../pro-table/src/lib/tokens.ts","../../../pro-table/src/lib/pro-table.component.ts","../../../pro-table/src/lib/page-container/page-container.component.ts","../../../pro-table/src/lib/page-container/page-container.module.ts","../../../pro-table/src/lib/plate-input/plate-input.component.ts","../../../pro-table/src/lib/directives/trim-input.directive.ts","../../../pro-table/src/lib/directives/trim-input.module.ts","../../../pro-table/src/lib/plate-input/plate-input.module.ts","../../../pro-table/src/lib/table-search-bar/table-search-bar.component.ts","../../../pro-table/src/lib/table-search-bar/table-search-bar-module.ts","../../../pro-table/src/lib/components/colmuns-setting/colmuns-setting.component.ts","../../../pro-table/src/lib/components/dynamic-search-field/dynamic-search-field.component.ts","../../../pro-table/src/lib/pro-table.module.ts","../../../pro-table/src/lib/plate-input/plate-prefix-load.service.ts","../../../pro-table/src/lib/page-public/antd-form.ts","../../../pro-table/src/lib/page-public/array-form.ts","../../../pro-table/src/lib/utils/modal-width-detector.ts","../../../pro-table/src/public-api.ts","../../../pro-table/src/yibozhang-pro-table.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import {\r\n InputFieldProps,\r\n InputPlateFieldProps,\r\n SelectFieldProps,\r\n SelectMultipleFieldProps,\r\n DateFieldProps,\r\n CheckboxFieldProps,\r\n AutoCompleteFieldProps,\r\n CustomFieldProps,\r\n InputNumberFieldProps,\r\n} from \"./type\";\r\n\r\nexport const PRO_TABLE_DEFAULT_PROPS: {\r\n input: InputFieldProps;\r\n inputPlate: InputPlateFieldProps;\r\n select: SelectFieldProps;\r\n selectMultiple: SelectMultipleFieldProps;\r\n date: DateFieldProps;\r\n checkbox: CheckboxFieldProps;\r\n autoComplete: AutoCompleteFieldProps;\r\n custom: CustomFieldProps;\r\n inputNumber: InputNumberFieldProps;\r\n} = {\r\n input: {\r\n name: \"\",\r\n placeHolder: \"\",\r\n disabled: false,\r\n label: \"\",\r\n value: \"\",\r\n },\r\n select: {\r\n name: \"\",\r\n options: [],\r\n disabled: false,\r\n label: \"\",\r\n value: \"\",\r\n allowClear: true,\r\n placeHolder: \"\",\r\n },\r\n selectMultiple: {\r\n name: \"\",\r\n options: [],\r\n disabled: false,\r\n label: \"\",\r\n value: [],\r\n allowClear: true,\r\n placeHolder: \"请选择\",\r\n },\r\n inputPlate: {\r\n name: \"\",\r\n label: \"\",\r\n value: \"\",\r\n },\r\n checkbox: {\r\n name: \"\",\r\n options: [],\r\n disabled: false,\r\n label: \"\",\r\n value: [],\r\n noStyle: false,\r\n },\r\n date: {\r\n name: \"\",\r\n disabled: false,\r\n label: \"\",\r\n value: \"\",\r\n allowClear: true,\r\n placeHolder: \"请选择\",\r\n showTime: false,\r\n format: \"yyyy-MM-dd\",\r\n mode: \"date\",\r\n },\r\n autoComplete: {\r\n name: \"\",\r\n disabled: false,\r\n placeHolder: \"请输入\",\r\n label: \"\",\r\n value: \"\",\r\n dataSource: () => [],\r\n backFill: false,\r\n defaultActiveFirstOption: false,\r\n returnFullData: false,\r\n },\r\n inputNumber: {\r\n name: \"\",\r\n disabled: false,\r\n label: \"\",\r\n value: \"\",\r\n placeHolder: \"请输入\",\r\n min: 0,\r\n max: 100,\r\n precision: 0,\r\n formatterPercent: (value: number) => `${value}`,\r\n parserPercent: (value: string) => value,\r\n },\r\n custom: {\r\n name: \"\",\r\n value: null,\r\n label: \"\",\r\n },\r\n};\r\n\r\nexport const PRO_TABLE_DEFAULT_COLUMN = {\r\n width: \"\",\r\n align: \"left\",\r\n fixedLeft: false,\r\n fixedRight: false,\r\n auxiliaryColumn: false,\r\n ellipsis:false\r\n};\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport interface ProTableRemoteColumnService {\r\n /**\r\n * 查询当前表的列配置\r\n */\r\n getCol: (tableName: string, multiRow?: boolean) => Promise<any>;\r\n /**\r\n * 写入列配置\r\n */\r\n setCol?: (\r\n tableName: string,\r\n columns: Array<{\r\n field: string;\r\n isShow: boolean;\r\n header: string;\r\n sortName?: string | null;\r\n }>,\r\n multiRow?: boolean\r\n ) => Promise<any> | Observable<any>;\r\n}\r\n\r\nexport const PRO_TABLE_COLUMN_REMOTE = new InjectionToken<ProTableRemoteColumnService | null>(\r\n \"PRO_TABLE_COLUMN_REMOTE\"\r\n);\r\n\r\n/**\r\n * 车牌前缀选项接口\r\n */\r\nexport interface PlatePrefixOption {\r\n label: string;\r\n value: string;\r\n}\r\n\r\n/**\r\n * 车牌前缀加载服务接口\r\n */\r\nexport interface PlatePrefixLoadService {\r\n /**\r\n * 加载车牌前缀选项列表\r\n */\r\n loadPrefixOptions(): Promise<PlatePrefixOption[]>;\r\n}\r\n\r\nexport const PLATE_PREFIX_LOAD_SERVICE = new InjectionToken<PlatePrefixLoadService>(\r\n \"PLATE_PREFIX_LOAD_SERVICE\"\r\n);\r\n\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\nimport { cloneDeep, hasIn, isNil, debounce, isEqual } from \"lodash-es\";\r\nimport { PRO_TABLE_DEFAULT_COLUMN, PRO_TABLE_DEFAULT_PROPS } from \"./constants\";\r\nimport {\r\n AutoCompleteFieldProps,\r\n CheckboxFieldProps,\r\n OptionsType,\r\n ProTableColumn,\r\n ProTablePageInfo,\r\n ProTableRequestResult,\r\n ProTableValuesChange,\r\n SelectFieldProps,\r\n} from \"./type\";\r\nimport { PRO_TABLE_COLUMN_REMOTE, ProTableRemoteColumnService } from \"./tokens\";\r\nimport { isObservable } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"app-pro-table\",\r\n templateUrl: \"./pro-table.component.html\",\r\n styleUrls: [\"./pro-table.component.less\"],\r\n})\r\nexport class ProTableComponent implements OnInit, AfterContentInit {\r\n @Input() showSearchBtn: boolean = true;\r\n\r\n @Input() showClearBtn: boolean = true;\r\n\r\n @Input() title: string | null = null;\r\n\r\n @Input() tableName: string = \"\";\r\n\r\n @Input() multiRow: boolean = false;\r\n\r\n @Input() columns: ProTableColumn[] = [];\r\n\r\n @Input() showSearchBar: boolean = true;\r\n\r\n @Input() showActionBar: boolean = true;\r\n\r\n @Input() confirmBtnText: string = \"查询\";\r\n\r\n @Input() clearBtnText: string = \"清空\";\r\n\r\n @Input() labelWidth: string = \"90px\";\r\n\r\n @Input() labelAlign: string = \"right\";\r\n\r\n @Input() formItemWidth: string = \"270px\";\r\n\r\n @Input() dataSource: any[] = [];\r\n\r\n @Input() bordered: boolean = true;\r\n\r\n @Input() outerBordered: boolean = true;\r\n\r\n @Input() showPagination: boolean = true;\r\n\r\n @Input() frontPagination: boolean = false;\r\n\r\n @Input() scroll: { x?: string | number; y?: string | number } | null = null;\r\n\r\n @Input() request: (params: any) => Promise<ProTableRequestResult>;\r\n\r\n @Input() summaryData: Record<string, any> | null = null;\r\n\r\n // 排序模式:local 本地排序;server 在线排序(提交给接口)\r\n @Input() sortMode: \"local\" | \"server\" = \"local\";\r\n\r\n @Input() showColumnSetting: boolean = false;\r\n\r\n // 是否开启多列排序(默认单列)\r\n @Input() multipleSort: boolean = false;\r\n\r\n @Input() showCheckbox: boolean = false;\r\n\r\n // 判断行是否禁用的函数\r\n @Input() rowDisabled: (data: any) => boolean = () => false;\r\n\r\n // 是否自动触发请求\r\n @Input() autoTriggerRequest: boolean = true;\r\n\r\n @Input() customTableRender?: TemplateRef<any>;\r\n\r\n @Output() onRowClick = new EventEmitter<any>();\r\n\r\n @Output() onRowDbClick = new EventEmitter<any>();\r\n\r\n @Output() onValuesChange = new EventEmitter<ProTableValuesChange>();\r\n\r\n @Output() onResetFormBeforeReload = new EventEmitter<any>();\r\n\r\n @ContentChild(\"actionBar\") actionBarTpl!: TemplateRef<any>;\r\n\r\n @ContentChild(\"ImgActionBar\") imgActionBarTpl!: TemplateRef<any>;\r\n\r\n @ContentChildren(TemplateRef) allTemplates!: QueryList<TemplateRef<any>>;\r\n\r\n private _savedSearchParams: any = {};\r\n\r\n // 存储所有自定义模板的引用\r\n private customTemplates = new Map<string, TemplateRef<any>>();\r\n\r\n // 记录各列排序状态:'ascend' | 'descend' | null\r\n\r\n private _sortMap: Record<string, \"ascend\" | \"descend\" | null> = {};\r\n\r\n // 记录多列排序的优先级(后设置的优先)\r\n private _sortPriority: string[] = [];\r\n\r\n // 存储每个 autoComplete 字段的防抖函数\r\n private _autoCompleteDebounceMap: Map<string, (event: Event) => void> =\r\n new Map();\r\n\r\n // 仅在初始化时运行列配置预检查,避免后续调用重复触发\r\n private _preCheckDone: boolean = false;\r\n\r\n _columns: ProTableColumn[] = [];\r\n\r\n // 筛选表单数据存储\r\n _searchParams: any = {};\r\n\r\n // 筛选表单list渲染数据\r\n _searchFiledColumns: ProTableColumn[] = [];\r\n\r\n _pageInfo: ProTablePageInfo = {\r\n pageIndex: 1,\r\n pageSize: 15,\r\n total: 100,\r\n pageSizeOptions: [10, 15, 20, 50, 100, 500, 1000],\r\n };\r\n\r\n _loading: boolean = false;\r\n\r\n _selectedTableRow: any = null;\r\n\r\n // 选中的行数据(用于复选框选择)- 保留用于兼容性\r\n _selectedRows: any[] = [];\r\n\r\n // 使用 Set 存储选中项的 ID,支持跨页选中\r\n private _selectedRowIds = new Set<string | number>();\r\n\r\n // 全选状态\r\n _checkedAll: boolean = false;\r\n\r\n // 半选状态(部分选中)\r\n _indeterminate: boolean = false;\r\n\r\n // 远程columns\r\n _serverColumns: ProTableColumn[] = [];\r\n\r\n // 存储 autoComplete 字段的数据源\r\n _autoCompleteDataSources: Record<string, any[]> = {};\r\n\r\n constructor(\r\n @Optional()\r\n @Inject(PRO_TABLE_COLUMN_REMOTE)\r\n private columnRemote: ProTableRemoteColumnService | null\r\n ) {}\r\n\r\n private async fetchRemoteColumns() {\r\n if (!this.columnRemote?.getCol || !this.tableName) {\r\n return null;\r\n }\r\n try {\r\n const res = await this.columnRemote.getCol(this.tableName, this.multiRow);\r\n return res;\r\n } catch (error) {\r\n return null;\r\n }\r\n }\r\n\r\n private async persistRemoteColumns(columns: any[]) {\r\n if (!this.columnRemote?.setCol || !this.tableName) {\r\n return null;\r\n }\r\n try {\r\n const result = this.columnRemote.setCol(\r\n this.tableName,\r\n columns,\r\n this.multiRow\r\n );\r\n if (result && isObservable(result)) {\r\n return await result.toPromise();\r\n }\r\n return result;\r\n } catch (error) {\r\n return null;\r\n }\r\n }\r\n\r\n async ngOnInit(): Promise<void> {\r\n this._searchParams = {};\r\n this.formateInnerColumns(this.columns);\r\n await this.setSearchParams(this.columns);\r\n\r\n // 使用 Proxy 包装 _searchParams,拦截表单项值变化并向外发出事件\r\n this._searchParams = this.createSearchParamsProxy(this._searchParams);\r\n if (this.autoTriggerRequest) {\r\n this.handleQuery();\r\n }\r\n this.queryDynamicColumns();\r\n }\r\n\r\n ngAfterContentInit() {\r\n // 自动注册所有自定义模板\r\n // 注意:此时所有 ContentChild 和 ContentChildren 都已初始化完成\r\n this.autoRegisterTemplates();\r\n }\r\n\r\n private async preCheckServerColumns(): Promise<boolean> {\r\n const res = await this.fetchRemoteColumns();\r\n if (!res) return false;\r\n const initColumns = this.columns\r\n .filter((col) => !col.auxiliaryColumn)\r\n .map((column) => {\r\n return {\r\n field: column.prop,\r\n isShow: !column.hideInTable, // 默认全部显示\r\n header: column.title,\r\n sortName: column.sortName || null,\r\n };\r\n });\r\n if (res.code === 0) {\r\n if (!isEqual(res.data.tabColumn, initColumns)) {\r\n const initRes = await this.persistRemoteColumns(initColumns);\r\n if (initRes) {\r\n this.queryDynamicColumns();\r\n }\r\n\r\n return false;\r\n } else {\r\n console.log(\"一致\");\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private async queryDynamicColumns() {\r\n if (!this.tableName || !this.columnRemote) return;\r\n if (!this._preCheckDone) {\r\n const checkResult = await this.preCheckServerColumns();\r\n this._preCheckDone = true;\r\n if (!checkResult) return;\r\n }\r\n const res = await this.fetchRemoteColumns();\r\n if (!res) return;\r\n if (res.code === 0) {\r\n const _tabColumn = res.data.tabColumn.map((item) => {\r\n return {\r\n title: item.header,\r\n prop: item.field,\r\n sortName: item.sortName,\r\n hideInTable: !item.isShow,\r\n };\r\n });\r\n this._serverColumns = _tabColumn;\r\n this.updateTableColumns(_tabColumn);\r\n } else if (res.code === 10) {\r\n // 如果未设置接口返回,需要默认调用一次修改函数初始化数据\r\n const initColumns = this.columns\r\n .filter((col) => !col.auxiliaryColumn)\r\n .map((column) => {\r\n return {\r\n field: column.prop,\r\n isShow: true, // 默认全部显示\r\n header: column.title,\r\n sortName: column.sortName || null,\r\n };\r\n });\r\n\r\n // 调用修改接口初始化数据\r\n const initRes = await this.persistRemoteColumns(initColumns);\r\n if (initRes) {\r\n this.queryDynamicColumns();\r\n }\r\n }\r\n }\r\n\r\n private formateInnerColumns(columns: ProTableColumn[]) {\r\n this._columns = columns\r\n .filter((item) => !item.hideInTable)\r\n .map((item) => {\r\n return { ...PRO_TABLE_DEFAULT_COLUMN, ...item } as ProTableColumn;\r\n });\r\n }\r\n\r\n // 自动注册模板的方法\r\n private autoRegisterTemplates() {\r\n // 获取所有模板\r\n const allTemplatesArray = this.allTemplates.toArray();\r\n\r\n // 获取所有需要自定义模板的列\r\n const columnsWithCustomRender = this._columns.filter(\r\n (col) => col.customRender\r\n );\r\n\r\n // 获取所有需要自定义label模板的列(使用原始columns,确保顺序正确)\r\n const columnsWithCustomLabel = this.columns.filter(\r\n (col) => col.customLabelRender\r\n );\r\n\r\n // 计算需要的模板总数\r\n const customRenderCount = columnsWithCustomRender.length;\r\n const totalNeededTemplates = customRenderCount + columnsWithCustomLabel.length;\r\n\r\n // 识别并排除特殊模板(actionBar 和 imgActionBar)\r\n const specialTemplateIndices = new Set<number>();\r\n \r\n // 尝试找到 actionBarTpl 在 allTemplatesArray 中的位置\r\n if (this.actionBarTpl) {\r\n const actionBarIndex = this.findTemplateIndex(allTemplatesArray, this.actionBarTpl);\r\n if (actionBarIndex !== -1) {\r\n specialTemplateIndices.add(actionBarIndex);\r\n }\r\n }\r\n \r\n // 尝试找到 imgActionBarTpl 在 allTemplatesArray 中的位置\r\n if (this.imgActionBarTpl) {\r\n const imgActionBarIndex = this.findTemplateIndex(allTemplatesArray, this.imgActionBarTpl);\r\n if (imgActionBarIndex !== -1) {\r\n specialTemplateIndices.add(imgActionBarIndex);\r\n }\r\n }\r\n\r\n // 如果无法通过引用找到特殊模板,使用备用策略\r\n // 备用策略:假设最后的模板是特殊模板\r\n const specialTemplateCount = (this.actionBarTpl ? 1 : 0) + (this.imgActionBarTpl ? 1 : 0);\r\n if (specialTemplateIndices.size === 0 && specialTemplateCount > 0) {\r\n for (let i = allTemplatesArray.length - specialTemplateCount; i < allTemplatesArray.length; i++) {\r\n specialTemplateIndices.add(i);\r\n }\r\n }\r\n\r\n // 提取列模板(排除特殊模板)\r\n const columnTemplates: TemplateRef<any>[] = [];\r\n allTemplatesArray.forEach((tpl, index) => {\r\n if (!specialTemplateIndices.has(index)) {\r\n columnTemplates.push(tpl);\r\n }\r\n });\r\n\r\n // 验证模板数量\r\n if (columnTemplates.length !== totalNeededTemplates) {\r\n console.warn(\r\n `ProTable: 模板数量不匹配!需要 ${totalNeededTemplates} 个列模板,实际有 ${columnTemplates.length} 个。请检查 customRender 和 customLabelRender 配置。`\r\n );\r\n }\r\n\r\n // 注册自定义渲染模板\r\n columnsWithCustomRender.forEach((column, index) => {\r\n const templateName = column.customRender!;\r\n if (index < columnTemplates.length) {\r\n this.customTemplates.set(templateName, columnTemplates[index]);\r\n } else {\r\n console.error(`ProTable: 未找到模板 \"${templateName}\",索引 ${index} 超出范围`);\r\n }\r\n });\r\n\r\n // 注册自定义label模板(从 customRenderCount 之后开始)\r\n columnsWithCustomLabel.forEach((column, index) => {\r\n const templateName = column.customLabelRender!;\r\n const templateIndex = customRenderCount + index;\r\n if (templateIndex < columnTemplates.length) {\r\n this.customTemplates.set(templateName, columnTemplates[templateIndex]);\r\n } else {\r\n console.error(`ProTable: 未找到label模板 \"${templateName}\",索引 ${templateIndex} 超出范围`);\r\n }\r\n });\r\n }\r\n\r\n // 尝试在数组中找到模板的索引(使用多种比较方式)\r\n private findTemplateIndex(templates: TemplateRef<any>[], target: TemplateRef<any>): number {\r\n // 方法1:引用相等性\r\n let index = templates.indexOf(target);\r\n if (index !== -1) return index;\r\n\r\n // 方法2:通过 elementRef 比较\r\n try {\r\n const targetElementRef = (target as any).elementRef;\r\n if (targetElementRef) {\r\n for (let i = 0; i < templates.length; i++) {\r\n const tplElementRef = (templates[i] as any).elementRef;\r\n if (tplElementRef === targetElementRef) {\r\n return i;\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n // 忽略错误\r\n }\r\n\r\n // 方法3:通过 Angular 内部属性比较\r\n try {\r\n const targetContainer = (target as any)._declarationTContainer;\r\n if (targetContainer) {\r\n for (let i = 0; i < templates.length; i++) {\r\n const tplContainer = (templates[i] as any)._declarationTContainer;\r\n if (tplContainer === targetContainer) {\r\n return i;\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n // 忽略错误\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n // 设置筛选表单默认属性\r\n private setSearchFormDefaultProp(columns: ProTableColumn[]) {\r\n columns.forEach((item) => {\r\n if (item.valueType) {\r\n if (item.fieldProps) {\r\n item.fieldProps = {\r\n ...PRO_TABLE_DEFAULT_PROPS[item.valueType],\r\n ...item.fieldProps,\r\n };\r\n } else {\r\n item.fieldProps = { ...PRO_TABLE_DEFAULT_PROPS[item.valueType] };\r\n }\r\n }\r\n });\r\n }\r\n\r\n // 动态设置Options\r\n private setSelectRequest(columns: ProTableColumn[]) {\r\n columns.map(async (item) => {\r\n if (item.fieldProps && hasIn(item.fieldProps, \"request\")) {\r\n try {\r\n const options = await (\r\n item.fieldProps as SelectFieldProps\r\n ).request?.();\r\n (item.fieldProps as SelectFieldProps).options = options;\r\n } catch (error) {\r\n (item.fieldProps as SelectFieldProps).options = [];\r\n }\r\n }\r\n });\r\n }\r\n\r\n private async setSearchParams(columns: ProTableColumn[]) {\r\n this._searchFiledColumns = [];\r\n columns\r\n .filter((item) => {\r\n const flag = !item.hideInSearch && item.valueType;\r\n if (flag) {\r\n this._searchFiledColumns.push(cloneDeep(item));\r\n }\r\n return flag;\r\n })\r\n .forEach((column) => {\r\n const key = column.fieldProps?.name || column.prop;\r\n let defaultValue = PRO_TABLE_DEFAULT_PROPS[column.valueType].value;\r\n\r\n // 对于checkbox类型,从options中找出checked为true的项作为默认值\r\n if (column.valueType === \"checkbox\") {\r\n const checkedValues = (column.fieldProps?.options || [])\r\n .filter((opt: OptionsType) => opt.checked)\r\n .map((opt: OptionsType) => opt.value);\r\n this._searchParams[key] =\r\n checkedValues.length > 0 ? checkedValues : defaultValue;\r\n } else {\r\n this._searchParams[key] = column.fieldProps?.value || defaultValue;\r\n }\r\n\r\n // 初始化 autoComplete 数据源\r\n if (column.valueType === \"autoComplete\") {\r\n this._autoCompleteDataSources[key] = [];\r\n }\r\n });\r\n\r\n // 根据列的 order 字段进行排序,未设置 order 的放在最后\r\n this._searchFiledColumns.sort((a: any, b: any) => {\r\n const aOrder = isNil(a?.order) ? Number.MAX_SAFE_INTEGER : a.order;\r\n const bOrder = isNil(b?.order) ? Number.MAX_SAFE_INTEGER : b.order;\r\n if (aOrder === bOrder) return 0;\r\n return aOrder - bOrder;\r\n });\r\n\r\n this.setSearchFormDefaultProp(this._searchFiledColumns);\r\n\r\n // 并发加载所有需要异步获取的选项\r\n this.setSelectRequest(this._searchFiledColumns);\r\n }\r\n\r\n private updateTableColumns(injectColumns: ProTableColumn[]) {\r\n // 1. 使用最原始的columns作为数据源,确保辅助列完全不受影响\r\n const originalColumns = cloneDeep(this.columns);\r\n\r\n // 2. 处理字段映射(如果提供了fields参数)\r\n let processedInjectColumns = injectColumns;\r\n\r\n // 3. 分离辅助列和非辅助列(使用原始数据)\r\n const nonAuxiliaryColumns = originalColumns.filter(\r\n (col) => !col.auxiliaryColumn\r\n );\r\n\r\n // 4. 按照injectColumns的顺序重新排列非辅助列\r\n const reorderedNonAuxiliaryColumns: ProTableColumn[] = [];\r\n const remainingNonAuxiliaryColumns = [...nonAuxiliaryColumns]; // 复制一份用于查找和移除\r\n\r\n processedInjectColumns.forEach((injectCol) => {\r\n // 查找非辅助列中对应的下标\r\n const existingColIndex = remainingNonAuxiliaryColumns.findIndex(\r\n (col) => col.prop === injectCol.prop\r\n );\r\n if (existingColIndex !== -1) {\r\n // 如果找到相同列,用injectColumns中的属性覆盖原始columns中的属性\r\n const existingCol = remainingNonAuxiliaryColumns[existingColIndex];\r\n\r\n const updatedCol = { ...existingCol, ...injectCol };\r\n reorderedNonAuxiliaryColumns.push(updatedCol);\r\n // 从剩余数组中移除,避免重复\r\n remainingNonAuxiliaryColumns.splice(existingColIndex, 1);\r\n } else {\r\n // 如果没找到对应的列,直接添加injectColumns中的列\r\n reorderedNonAuxiliaryColumns.push(injectCol);\r\n }\r\n });\r\n\r\n // 5. 处理剩余的原始columns中的非辅助列(在injectColumns中未出现的列)\r\n // 这些列应该被隐藏(设置hideInTable为true)\r\n remainingNonAuxiliaryColumns.forEach((remainingCol) => {\r\n const hiddenCol = { ...remainingCol, hideInTable: true };\r\n reorderedNonAuxiliaryColumns.push(hiddenCol);\r\n });\r\n\r\n // 6. 按照原始columns的顺序重新组合:保持辅助列的原始位置和属性\r\n const finalColumns: ProTableColumn[] = [];\r\n let nonAuxiliaryIndex = 0;\r\n let auxiliaryIndex = 0;\r\n\r\n originalColumns.forEach((originalCol) => {\r\n if (originalCol.auxiliaryColumn) {\r\n // 如果是辅助列,使用原始列数据,完全不进行任何修改\r\n finalColumns.push(originalCol);\r\n auxiliaryIndex++;\r\n } else {\r\n // 如果是非辅助列,使用重新排序后的列,但保留原始列的所有属性\r\n const reorderedCol = reorderedNonAuxiliaryColumns[nonAuxiliaryIndex];\r\n if (reorderedCol) {\r\n // 合并原始列和重新排序后的列,确保保留所有原始属性\r\n const mergedCol = { ...originalCol, ...reorderedCol };\r\n finalColumns.push(mergedCol);\r\n } else {\r\n // 如果重新排序后的列不存在,使用原始列\r\n finalColumns.push(originalCol);\r\n }\r\n nonAuxiliaryIndex++;\r\n }\r\n });\r\n this.formateInnerColumns(finalColumns);\r\n }\r\n\r\n // 通过 Proxy 监听 _searchParams 的属性变更\r\n private createSearchParamsProxy(target: any) {\r\n const self = this;\r\n const handler: ProxyHandler<any> = {\r\n set(obj: any, prop: string | symbol, value: any) {\r\n const key = String(prop);\r\n const oldVal = obj[key];\r\n if (oldVal === value) {\r\n obj[key] = value;\r\n return true;\r\n }\r\n obj[key] = value;\r\n try {\r\n self.onValuesChange.emit({\r\n key,\r\n value,\r\n params: self.getSearchParams(),\r\n });\r\n } catch (e) {}\r\n return true;\r\n },\r\n };\r\n return new Proxy(target, handler);\r\n }\r\n\r\n private clearEmptySearchParams() {\r\n const cloneSearchParams = cloneDeep(this._searchParams);\r\n return cloneSearchParams;\r\n }\r\n\r\n private buildServerSortPayload() {\r\n // 构建激活排序集合(按优先级从低到高,末尾优先)\r\n const activeKeys = this._sortPriority.filter((k) => !!this._sortMap[k]);\r\n if (activeKeys.length === 0) return null;\r\n const sorts = activeKeys.map((field) => {\r\n // 查找对应的列配置,优先使用sortName字段\r\n const column = this._columns.find((col) => col.prop === field);\r\n const sortField = column?.sortName || field;\r\n return {\r\n field: sortField,\r\n order: this._sortMap[field]!,\r\n };\r\n });\r\n if (this.multipleSort) {\r\n return sorts; // 以数组形式提交多列排序\r\n }\r\n const [first] = sorts;\r\n return first; // 兼容单列结构 { field, order }\r\n }\r\n\r\n private sortDataSourceInPlace() {\r\n if (!Array.isArray(this.dataSource) || this.dataSource.length === 0) return;\r\n const activeKeys = this._sortPriority.filter((k) => !!this._sortMap[k]);\r\n if (activeKeys.length === 0) return;\r\n\r\n // 复制一份优先级,从前到后优先级从低到高(最后设置的字段优先)\r\n const keysInPriority = [...activeKeys];\r\n this.dataSource.sort((a: any, b: any) => {\r\n for (let i = keysInPriority.length - 1; i >= 0; i--) {\r\n const field = keysInPriority[i];\r\n const order = this._sortMap[field]!;\r\n const av = a?.[field];\r\n const bv = b?.[field];\r\n const cmp = this.compareValues(av, bv);\r\n if (cmp !== 0) return order === \"ascend\" ? cmp : -cmp;\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n private compareValues(aVal: any, bVal: any): number {\r\n if (aVal == null && bVal == null) return 0;\r\n if (aVal == null) return -1;\r\n if (bVal == null) return 1;\r\n if (aVal instanceof Date && bVal instanceof Date) {\r\n return aVal.getTime() - bVal.getTime();\r\n }\r\n if (typeof aVal === \"boolean\" && typeof bVal === \"boolean\") {\r\n return aVal === bVal ? 0 : aVal ? 1 : -1;\r\n }\r\n if (typeof aVal === \"number\" && typeof bVal === \"number\") {\r\n return aVal - bVal;\r\n }\r\n if (typeof aVal === \"string\" && typeof bVal === \"string\") {\r\n return aVal.localeCompare(bVal);\r\n }\r\n const aNum = Number(aVal);\r\n const bNum = Number(bVal);\r\n if (!isNaN(aNum) && !isNaN(bNum)) return aNum - bNum;\r\n return String(aVal).localeCompare(String(bVal));\r\n }\r\n\r\n // 执行 autoComplete 数据源查询(实际执行逻辑)\r\n private executeAutoCompleteDataSource(event: Event, column: ProTableColumn) {\r\n const fieldKey = column.fieldProps?.name || column.prop;\r\n\r\n if (\r\n (column.fieldProps as AutoCompleteFieldProps).dataSource &&\r\n typeof (column.fieldProps as AutoCompleteFieldProps).dataSource ===\r\n \"function\"\r\n ) {\r\n try {\r\n const result = (column.fieldProps as AutoCompleteFieldProps).dataSource(\r\n event\r\n );\r\n // 如果返回的是 Promise,处理异步结果\r\n if (result instanceof Promise) {\r\n result\r\n .then((data) => {\r\n this._autoCompleteDataSources[fieldKey] = data || [];\r\n })\r\n .catch((error) => {\r\n console.error(\"AutoComplete dataSource error:\", error);\r\n this._autoCompleteDataSources[fieldKey] = [];\r\n });\r\n } else {\r\n // 同步返回结果\r\n this._autoCompleteDataSources[fieldKey] = result || [];\r\n }\r\n } catch (error) {\r\n console.error(\"AutoComplete dataSource error:\", error);\r\n this._autoCompleteDataSources[fieldKey] = [];\r\n }\r\n }\r\n }\r\n\r\n public getSearchParams(options?: {\r\n useSaved?: boolean; // 使用最近一次查询提交的参数,默认为 false;false 为当前表单值\r\n }): any {\r\n const { useSaved = false } = options || {};\r\n const rawParams = useSaved ? this._savedSearchParams : this._searchParams;\r\n const params = cloneDeep(rawParams || {});\r\n\r\n return {\r\n params,\r\n pageInfo: {\r\n pageIndex: this._pageInfo.pageIndex,\r\n pageSize: this._pageInfo.pageSize,\r\n },\r\n // 在线排序模式:把排序对象提交给接口\r\n ...(this.sortMode === \"server\"\r\n ? { sort: this.buildServerSortPayload() }\r\n : {}),\r\n };\r\n }\r\n\r\n public reload(afterDelete?: boolean) {\r\n this.handleQuery(afterDelete);\r\n }\r\n\r\n public setFieldsValue(fields: Record<string, any>) {\r\n Object.keys(fields).forEach((k) => {\r\n this._searchParams[k] = fields[k]; // 保留 Proxy,逐项赋值触发拦截\r\n });\r\n }\r\n\r\n public setFieldValue(key: string, value: any) {\r\n this._searchParams[key] = value;\r\n }\r\n\r\n public clearSelectedRow() {\r\n this._selectedTableRow = null;\r\n }\r\n\r\n public async setColumns(\r\n columns: ProTableColumn[],\r\n options?: {\r\n reload?: boolean; // 是否重新加载数据,默认为 false\r\n }\r\n ): Promise<void> {\r\n // 更新 columns 输入属性\r\n this.columns = cloneDeep(columns);\r\n\r\n // 重新格式化内部列\r\n this.formateInnerColumns(this.columns);\r\n\r\n // 重新设置搜索参数(异步操作)\r\n // 先清空旧的搜索参数,避免旧数据残留\r\n this._searchParams = {};\r\n await this.setSearchParams(this.columns);\r\n\r\n // 重新创建 Proxy,确保表单项值变化能正常触发事件\r\n this._searchParams = this.createSearchParamsProxy(this._searchParams);\r\n\r\n // 重新注册模板(如果组件已经初始化完成)\r\n if (this.allTemplates) {\r\n this.autoRegisterTemplates();\r\n }\r\n\r\n // 如果设置了 reload 选项为 true,则重新查询数据\r\n if (options?.reload === true) {\r\n this.handleQuery();\r\n }\r\n }\r\n\r\n public getSelectedRowData<T = any>(): T {\r\n return this._selectedTableRow;\r\n }\r\n\r\n public getCheckedRows<T = any>(): T[] {\r\n if (!this.showCheckbox) {\r\n return [];\r\n }\r\n // 返回当前数据源中所有 checked 为 true 的项\r\n // 注意:如果需要获取所有页的选中项,需要遍历所有数据源或使用 _selectedRowIds\r\n return this.dataSource.filter((row) => row.checked === true) as T[];\r\n }\r\n\r\n // 获取指定名称的模板\r\n getTemplate(name: string | undefined): TemplateRef<any> | null {\r\n if (!name) return null;\r\n return this.customTemplates.get(name) || null;\r\n }\r\n\r\n getToolTipTextValue(column: ProTableColumn, data: any): string {\r\n const key =\r\n column.customRender && this.getTemplate(column.customRender)\r\n ? \"\"\r\n : column.ellipsis\r\n ? column.prop\r\n : \"\";\r\n return !key ? \"\" : data[key];\r\n }\r\n\r\n getTableRowChecked(data: any) {\r\n // 启用复选框时:行高亮应与复选框选中状态一致(支持多选)\r\n if (this.showCheckbox) {\r\n return this.isRowChecked(data);\r\n }\r\n // 未启用复选框时:仍然使用单选行高亮\r\n if (!this._selectedTableRow) return false;\r\n return JSON.stringify(this._selectedTableRow) === JSON.stringify(data);\r\n }\r\n\r\n // 检查行是否被禁用\r\n isRowDisabled(data: any): boolean {\r\n if (!this.showCheckbox) return false;\r\n return this.rowDisabled ? this.rowDisabled(data) : false;\r\n }\r\n\r\n // 检查行是否被复选框选中(数据驱动模式)\r\n isRowChecked(data: any): boolean {\r\n if (!this.showCheckbox) return false;\r\n // 直接读取数据对象的 checked 属性\r\n return data.checked === true;\r\n }\r\n\r\n // 切换行的选中状态(数据驱动模式,保留用于兼容)\r\n toggleRowChecked(data: any, checked: boolean, event?: Event) {\r\n if (event) {\r\n event.stopPropagation(); // 阻止事件冒泡,避免触发行点击\r\n }\r\n // 如果行被禁用,不允许切换选中状态\r\n if (this.isRowDisabled(data)) {\r\n return;\r\n }\r\n\r\n // 直接设置数据对象的 checked 属性\r\n data.checked = checked;\r\n\r\n // 同步更新 _selectedRowIds(用于跨页选中)\r\n const id = this.getRowId(data);\r\n if (id !== undefined) {\r\n if (checked) {\r\n this._selectedRowIds.add(id);\r\n } else {\r\n this._selectedRowIds.delete(id);\r\n }\r\n }\r\n\r\n // 同步更新 _selectedRows(用于兼容性)\r\n const index = this._selectedRows.findIndex((row) =>\r\n this.isSameRow(row, data)\r\n );\r\n if (checked) {\r\n if (index === -1) {\r\n this._selectedRows.push(data);\r\n }\r\n // 勾选复选框时同步设置高亮选中行\r\n this._selectedTableRow = data;\r\n } else {\r\n if (index > -1) {\r\n this._selectedRows.splice(index, 1);\r\n }\r\n // 若当前高亮行为该行,则取消高亮\r\n if (\r\n this._selectedTableRow &&\r\n this.isSameRow(this._selectedTableRow, data)\r\n ) {\r\n this._selectedTableRow = null;\r\n }\r\n }\r\n\r\n this.updateCheckAllStatus();\r\n }\r\n\r\n // 更新全选状态(数据驱动模式)\r\n updateCheckAllStatus() {\r\n if (!this.showCheckbox || !Array.isArray(this.dataSource)) {\r\n this._checkedAll = false;\r\n this._indeterminate = false;\r\n return;\r\n }\r\n // 只计算可用的行(未禁用的行)\r\n const availableRows = this.dataSource.filter(\r\n (row) => !this.isRowDisabled(row)\r\n );\r\n // 基于数据对象的 checked 属性计算\r\n const checkedCount = availableRows.filter(\r\n (row) => row.checked === true\r\n ).length;\r\n const totalCount = availableRows.length;\r\n this._checkedAll =\r\n totalCount > 0 && checkedCount > 0 && checkedCount === totalCount;\r\n this._indeterminate = checkedCount > 0 && checkedCount < totalCount;\r\n }\r\n\r\n // 全选/取消全选(数据驱动模式)\r\n toggleCheckAll(checked: boolean, event?: Event) {\r\n if (event) {\r\n event.stopPropagation();\r\n }\r\n\r\n // 只处理可用的行(未禁用的行)\r\n const availableRows = this.dataSource.filter(\r\n (row) => !this.isRowDisabled(row)\r\n );\r\n\r\n // 批量设置 checked 属性\r\n availableRows.forEach((row) => {\r\n row.checked = checked;\r\n\r\n // 同步更新 _selectedRowIds(用于跨页选中)\r\n const id = this.getRowId(row);\r\n if (id !== undefined) {\r\n if (checked) {\r\n this._selectedRowIds.add(id);\r\n } else {\r\n this._selectedRowIds.delete(id);\r\n }\r\n }\r\n });\r\n\r\n // 同步更新 _selectedRows(用于兼容性)\r\n if (checked) {\r\n this._selectedRows = [...availableRows];\r\n // 同步设置高亮选中行为第一条可选数据\r\n this._selectedTableRow =\r\n availableRows.length > 0 ? availableRows[0] : null;\r\n } else {\r\n this._selectedRows = [];\r\n // 取消高亮\r\n this._selectedTableRow = null;\r\n }\r\n\r\n this.updateCheckAllStatus();\r\n }\r\n\r\n // 获取选中的行数据(保留用于兼容性)\r\n getSelectedRows(): any[] {\r\n return this.getCheckedRows();\r\n }\r\n\r\n // 处理行 checkbox 变化事件(数据驱动模式)\r\n handleRowCheckedChange(data: any, checked: boolean): void {\r\n if (this.isRowDisabled(data)) {\r\n return;\r\n }\r\n\r\n // 数据对象的 checked 属性已经通过双向绑定自动更新\r\n // 这里只需要同步更新 _selectedRowIds 和 _selectedRows\r\n\r\n // 同步更新 _selectedRowIds(用于跨页选中)\r\n const id = this.getRowId(data);\r\n if (id !== undefined) {\r\n if (checked) {\r\n this._selectedRowIds.add(id);\r\n } else {\r\n this._selectedRowIds.delete(id);\r\n }\r\n }\r\n\r\n // 同步更新 _selectedRows(用于兼容性)\r\n const index = this._selectedRows.findIndex((row) =>\r\n this.isSameRow(row, data)\r\n );\r\n if (checked) {\r\n if (index === -1) {\r\n this._selectedRows.push(data);\r\n }\r\n // 勾选复选框时同步设置高亮选中行\r\n this._selectedTableRow = data;\r\n } else {\r\n if (index > -1) {\r\n this._selectedRows.splice(index, 1);\r\n }\r\n // 若当前高亮行为该行,则取消高亮\r\n if (\r\n this._selectedTableRow &&\r\n this.isSameRow(this._selectedTableRow, data)\r\n ) {\r\n this._selectedTableRow = null;\r\n }\r\n }\r\n\r\n // 更新全选状态\r\n this.updateCheckAllStatus();\r\n }\r\n\r\n // 刷新全选状态(用于其他场景)\r\n refreshCheckAllStatus(): void {\r\n this.updateCheckAllStatus();\r\n }\r\n\r\n // 获取行的唯一标识(用于跨页选中)\r\n private getRowId(data: any): string | number | undefined {\r\n return data.id ?? data.key ?? undefined;\r\n }\r\n\r\n // 判断两行是否为同一行\r\n private isSameRow(row1: any, row2: any): boolean {\r\n const id1 = this.getRowId(row1);\r\n const id2 = this.getRowId(row2);\r\n\r\n if (id1 !== undefined && id2 !== undefined) {\r\n return id1 === id2;\r\n }\r\n\r\n // fallback 到 JSON 比较\r\n return JSON.stringify(row1) === JSON.stringify(row2);\r\n }\r\n\r\n // 清空选中的行(数据驱动模式)\r\n clearSelectedRows() {\r\n // 清空当前数据源中所有项的 checked 状态\r\n if (Array.isArray(this.dataSource)) {\r\n this.dataSource.forEach((row) => {\r\n row.checked = false;\r\n });\r\n }\r\n\r\n // 清空选中集合\r\n this._selectedRowIds.clear();\r\n this._selectedRows = [];\r\n this._checkedAll = false;\r\n this._indeterminate = false;\r\n this._selectedTableRow = null;\r\n }\r\n\r\n handleFieldCheckBoxChange(checkBoxOptions: OptionsType[], key: string) {\r\n this.setFieldsValue({\r\n [key]: checkBoxOptions\r\n .filter((item) => item.checked)\r\n .map((item) => item.value),\r\n });\r\n }\r\n\r\n handleSearch() {\r\n this._savedSearchParams = this.clearEmptySearchParams();\r\n this._pageInfo.pageIndex = 1;\r\n this.handleQuery();\r\n }\r\n\r\n handleResetForm() {\r\n Object.keys(this._searchParams).forEach((key) => {\r\n const targetColumn = this._searchFiledColumns.find((item) => {\r\n return (item.fieldProps?.name || item.prop) === key;\r\n });\r\n\r\n // 对于checkbox类型,需要特殊处理默认值\r\n if (targetColumn?.valueType === \"checkbox\") {\r\n // 从原始columns配置中获取初始配置,以确保使用正确的默认值\r\n const originalColumn = this.columns.find((item) => {\r\n return (item.fieldProps?.name || item.prop) === key;\r\n });\r\n\r\n // 从原始options中找出checked为true的项作为默认值\r\n const originalFieldProps = originalColumn?.fieldProps as\r\n | CheckboxFieldProps\r\n | undefined;\r\n const checkedValues = (originalFieldProps?.options || [])\r\n .filter((opt: OptionsType) => opt.checked)\r\n .map((opt: OptionsType) => opt.value);\r\n const defaultValue =\r\n checkedValues.length > 0\r\n ? checkedValues\r\n : PRO_TABLE_DEFAULT_PROPS[targetColumn.valueType].value;\r\n\r\n this._searchParams[key] = defaultValue;\r\n\r\n // 根据默认值恢复options的checked状态,使用原始options的结构\r\n const defaultValues = Array.isArray(defaultValue) ? defaultValue : [];\r\n const originalOptions = originalFieldProps?.options || [];\r\n const targetFieldProps = targetColumn.fieldProps as CheckboxFieldProps;\r\n targetFieldProps.options = originalOptions.map((item: OptionsType) => {\r\n return {\r\n ...item,\r\n checked: defaultValues.includes(item.value),\r\n };\r\n });\r\n } else {\r\n this._searchParams[key] = targetColumn?.fieldProps\r\n ? targetColumn?.fieldProps.value ||\r\n PRO_TABLE_DEFAULT_PROPS[targetColumn.valueType].value\r\n : PRO_TABLE_DEFAULT_PROPS[targetColumn.valueType].value;\r\n }\r\n });\r\n\r\n this._savedSearchParams = {};\r\n this._pageInfo.pageIndex = 1;\r\n this.onResetFormBeforeReload.emit();\r\n this.handleQuery();\r\n }\r\n\r\n handlePageIndexChange(pageIndex: number) {\r\n this._pageInfo.pageIndex = pageIndex;\r\n this.handleQuery();\r\n }\r\n\r\n handlePageSizeChange(pageSize: any) {\r\n this._pageInfo.pageSize = pageSize;\r\n this._pageInfo.pageIndex = 1;\r\n this.handleQuery();\r\n }\r\n\r\n async handleQuery(afterDelete?: boolean) {\r\n // 删除后刷新且当前页仅剩一条记录时,若不在第一页则先回退一页\r\n if (\r\n afterDelete &&\r\n Array.isArray(this.dataSource) &&\r\n this.dataSource.length === 1 &&\r\n this._pageInfo.pageIndex > 1\r\n ) {\r\n this._pageInfo.pageIndex = this._pageInfo.pageIndex - 1;\r\n }\r\n\r\n // 保存删除前的数据源(用于删除后查询时移除被删除项的选中状态)\r\n const previousDataSource =\r\n afterDelete && this.showCheckbox ? [...this.dataSource] : [];\r\n\r\n this._loading = true;\r\n if (this.request) {\r\n try {\r\n const result = await this.request({\r\n params: this.clearEmptySearchParams(),\r\n pageInfo: {\r\n pageIndex: this._pageInfo.pageIndex,\r\n pageSize: this._pageInfo.pageSize,\r\n },\r\n // 在线排序模式:把排序对象提交给接口\r\n ...(this.sortMode === \"server\"\r\n ? { sort: this.buildServerSortPayload() }\r\n : {}),\r\n });\r\n\r\n // 自动注入 checked 字段,支持跨页选中\r\n if (this.showCheckbox) {\r\n this.dataSource = (result.data || []).map((item) => {\r\n const id = this.getRowId(item);\r\n // 如果数据已有 checked 属性,保留;否则根据 _selectedRowIds 判断\r\n const checked =\r\n item.checked !== undefined\r\n ? item.checked\r\n : id !== undefined\r\n ? this._selectedRowIds.has(id)\r\n : false;\r\n return {\r\n ...item,\r\n checked: checked,\r\n };\r\n });\r\n\r\n // 删除后查询:移除被删除项的选中状态\r\n if (afterDelete && previousDataSource.length > 0) {\r\n const newDataIds = new Set(\r\n this.dataSource.map((item) => this.getRowId(item))\r\n );\r\n\r\n // 遍历之前的数据源,如果不在新数据源中,说明被删除了,需要清除其选中状态\r\n previousDataSource.forEach((oldItem) => {\r\n const oldId = this.getRowId(oldItem);\r\n if (oldId !== undefined && !newDataIds.has(oldId)) {\r\n // 被删除的项,从选中集合中移除\r\n this._selectedRowIds.delete(oldId);\r\n // 如果数据对象还在其他地方引用,清除其选中状态\r\n if (oldItem.checked !== undefined) {\r\n oldItem.checked = false;\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n this.dataSource = result.data || [];\r\n }\r\n\r\n this.summaryData = result.summaryData || null;\r\n // 本地排序模式:拿到数据后在前端排序\r\n if (this.sortMode === \"local\") {\r\n this.sortDataSourceInPlace();\r\n }\r\n this._pageInfo.total = result.total || 0;\r\n // 更新全选状态\r\n if (this.showCheckbox) {\r\n this.updateCheckAllStatus();\r\n }\r\n } catch (error) {\r\n console.error(\"查询失败:\", error);\r\n this.dataSource = [];\r\n this._pageInfo.total = 0;\r\n this.summaryData = null;\r\n } finally {\r\n this._loading = false;\r\n this._selectedTableRow = null;\r\n }\r\n } else {\r\n console.warn(\"未提供 _request 回调函数\");\r\n this._loading = false;\r\n }\r\n // 不再调用 clearSelectedRows(),保留跨页选中状态\r\n }\r\n\r\n // 触发列排序变更\r\n onSortChange(sortKey: string, sortOrder: \"ascend\" | \"descend\" | null) {\r\n // 单列排序:重置其它列;多列排序:保留其它列\r\n if (!this.multipleSort) {\r\n Object.keys(this._sortMap).forEach((key) => {\r\n if (key !== sortKey) this._sortMap[key] = null;\r\n });\r\n }\r\n this._sortMap[sortKey] = sortOrder;\r\n\r\n // 维护优先级队列:有序列且非空 -> 置于末尾;为空 -> 移除\r\n this._sortPriority = this._sortPriority.filter((k) => k !== sortKey);\r\n if (sortOrder) {\r\n this._sortPriority.push(sortKey);\r\n }\r\n\r\n if (this.sortMode === \"local\") {\r\n this.sortDataSourceInPlace();\r\n } else {\r\n // 在线排序:重新请求\r\n this.handleQuery();\r\n }\r\n }\r\n\r\n getSortOrder(sortKey: string): \"ascend\" | \"descend\" | null {\r\n return this._sortMap[sortKey] || null;\r\n }\r\n\r\n handleTableRowClick(data: any) {\r\n this._selectedTableRow = data;\r\n // 如果开启了复选框,点击行时只选中点击行(如果行未被禁用)\r\n if (this.showCheckbox && !this.isRowDisabled(data)) {\r\n // 先清空所有选中行\r\n this._selectedRows = [];\r\n // 只选中当前点击的行\r\n this.toggleRowChecked(data, true);\r\n }\r\n this.onRowClick.emit(this._selectedTableRow);\r\n }\r\n\r\n handleTableRowDbClick(data: any) {\r\n this._selectedTableRow = data;\r\n this.onRowDbClick.emit(this._selectedTableRow);\r\n }\r\n\r\n handleColumnsSettingConfirm() {\r\n this.queryDynamicColumns();\r\n }\r\n\r\n // 处理 autoComplete 输入事件(带防抖)\r\n handleAutoCompleteInput(event: Event, column: ProTableColumn) {\r\n const fieldKey = column.fieldProps?.name || column.prop;\r\n\r\n // 如果该字段还没有防抖函数,创建一个\r\n if (!this._autoCompleteDebounceMap.has(fieldKey)) {\r\n const debouncedFn = debounce((evt: Event) => {\r\n // 重新查找对应的 column,确保使用最新的配置\r\n const currentColumn = this._searchFiledColumns.find(\r\n (col) => (col.fieldProps?.name || col.prop) === fieldKey\r\n );\r\n if (currentColumn) {\r\n this.executeAutoCompleteDataSource(evt, currentColumn);\r\n }\r\n }, 300); // 300ms 防抖延迟\r\n this._autoCompleteDebounceMap.set(fieldKey, debouncedFn);\r\n }\r\n\r\n // 调用防抖函数\r\n const debouncedFn = this._autoCompleteDebounceMap.get(fieldKey);\r\n if (debouncedFn) {\r\n debouncedFn(event);\r\n }\r\n }\r\n\r\n // 获取 autoComplete 的数据源\r\n getAutoCompleteDataSource(column: ProTableColumn): any[] {\r\n const fieldKey = column.fieldProps?.name || column.prop;\r\n return this._autoCompleteDataSources[fieldKey] || [];\r\n }\r\n\r\n getFieldProps(column: ProTableColumn): any {\r\n return column.fieldProps;\r\n }\r\n\r\n // 获取指定名称的label模板\r\n getLabelTemplate(name: string | undefined): TemplateRef<any> | null {\r\n if (!name) return null;\r\n return this.customTemplates.get(name) || null;\r\n }\r\n\r\n // 获取 form-item 的动态类名\r\n getFormItemClassName(column: ProTableColumn): string {\r\n const fieldName = this.getFieldProps(column).name || column.prop;\r\n return `pro-table-${fieldName}-form-item`;\r\n }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-page-container\",\r\n templateUrl: \"./page-container.component.html\",\r\n styleUrls: [\"./page-container.component.less\"],\r\n})\r\nexport class PageContainerComponent implements OnInit {\r\n @Input() title: string = \"\";\r\n @Input() showHeader: boolean = true;\r\n @ContentChild(\"header\") headerTpl!: TemplateRef<any>;\r\n @ContentChild(\"body\") bodyTpl!: TemplateRef<any>;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NzCardModule } from \"ng-zorro-antd/card\";\r\nimport { PageContainerComponent } from \"./page-container.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpClientModule,\r\n RouterModule,\r\n NzCardModule,\r\n ReactiveFormsModule,\r\n ],\r\n declarations: [PageContainerComponent],\r\n providers: [],\r\n exports: [PageContainerComponent],\r\n})\r\nexport class PageContainerModule {}\r\n","import { Component, OnInit, OnDestroy, forwardRef, ChangeDetectorRef, ElementRef, Inject, Optional } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { PLATE_PREFIX_LOAD_SERVICE, PlatePrefixLoadService, PlatePrefixOption } from \"../tokens\";\r\n\r\n@Component({\r\n selector: \"app-plate-input\",\r\n templateUrl: \"./plate-input.component.html\",\r\n styleUrls: [\"./plate-input.component.less\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PlateInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PlateInputComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n nzPopoverVisible: boolean = false;\r\n platePrefix: string = \"\";\r\n plateSuffix: string = \"\";\r\n platePrefixOptions: Array<PlatePrefixOption> = [];\r\n disabled: boolean = false;\r\n private onChange = (value: string) => {};\r\n private onTouched = () => {};\r\n\r\n private clickOutsideHandler?: (event: MouseEvent) => void;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n @Optional() @Inject(PLATE_PREFIX_LOAD_SERVICE) private platePrefixLoadService?: PlatePrefixLoadService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.platePrefixLoadService) {\r\n // 使用注入的全局服务加载车牌前缀选项\r\n this.platePrefixLoadService\r\n .loadPrefixOptions()\r\n .then((data: Array<PlatePrefixOption>) => {\r\n this.platePrefixOptions = data;\r\n })\r\n .catch(() => {\r\n this.platePrefixOptions = [];\r\n });\r\n } else {\r\n // 如果没有注入服务,则保持空数组\r\n this.platePrefixOptions = [];\r\n }\r\n }\r\n\r\n handlePlatePrefix(value: string): void {\r\n this.platePrefix = value;\r\n this.emitValue();\r\n this.nzPopoverVisible = false;\r\n this.removeClickOutsideListener();\r\n }\r\n\r\n writeValue(value: string): void {\r\n if (value) {\r\n this.platePrefix = value.split(\"\")[0];\r\n this.plateSuffix = value\r\n .split(\"\")\r\n .filter((item, index) => index > 0)\r\n .join(\"\");\r\n } else {\r\n this.platePrefix = \"\";\r\n this.plateSuffix = \"\";\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n const previousDisabled = this.disabled;\r\n this.disabled = isDisabled;\r\n \r\n // 如果禁用状态改变,关闭 popover 并移除监听器\r\n if (previousDisabled !== isDisabled) {\r\n this.nzPopoverVisible = false;\r\n this.removeClickOutsideListener();\r\n // 强制变更检测\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n handlePrefixClick(event: Event): void {\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.nzPopoverVisible = false;\r\n return;\r\n }\r\n // 手动切换 popover 的显示/隐藏状态\r\n this.nzPopoverVisible = !this.nzPopoverVisible;\r\n \r\n // 如果打开了 popover,添加文档点击监听器\r\n if (this.nzPopoverVisible) {\r\n setTimeout(() => {\r\n this.attachClickOutsideListener();\r\n }, 0);\r\n } else {\r\n this.removeClickOutsideListener();\r\n }\r\n \r\n event.stopPropagation(); // 阻止事件冒泡\r\n }\r\n\r\n private attachClickOutsideListener(): void {\r\n if (this.clickOutsideHandler) {\r\n return;\r\n }\r\n \r\n this.clickOutsideHandler = (event: MouseEvent) => {\r\n const nativeElement = this.elementRef.nativeElement;\r\n const target = event.target as HTMLElement;\r\n \r\n // 检查是否点击在 popover 内容区域内\r\n const popoverContent = document.querySelector('.plate-input-popover');\r\n const clickedInPopover = popoverContent && popoverContent.contains(target);\r\n \r\n // 检查是否点击在组件内部(前缀按钮)\r\n const clickedInComponent = nativeElement.contains(target);\r\n \r\n // 如果点击既不在组件内部,也不在 popover 内容区域,则关闭 popover\r\n if (!clickedInComponent && !clickedInPopover) {\r\n this.nzPopoverVisible = false;\r\n this.removeClickOutsideListener();\r\n this.cdr.detectChanges();\r\n }\r\n };\r\n \r\n // 使用捕获阶段,确保在其他事件处理之前执行\r\n document.addEventListener('click', this.clickOutsideHandler, true);\r\n }\r\n\r\n private removeClickOutsideListener(): void {\r\n if (this.clickOutsideHandler) {\r\n document.removeEventListener('click', this.clickOutsideHandler, true);\r\n this.clickOutsideHandler = undefined;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeClickOutsideListener();\r\n }\r\n\r\n private emitValue(): void {\r\n const fullPlate = this.platePrefix + this.plateSuffix;\r\n this.onChange(fullPlate);\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouched();\r\n }\r\n\r\n handleAntdPlateSuffixBlur(event: any): void {\r\n if (this.disabled) return;\r\n const value = event.target.value.toUpperCase();\r\n this.plateSuffix = value;\r\n this.emitValue();\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: \"input[nz-input]\",\r\n})\r\nexport class TrimInputDirective {\r\n constructor(\r\n private el: ElementRef,\r\n @Optional() private ngControl: NgControl,\r\n ) {}\r\n\r\n private shouldProcess(): boolean {\r\n if (this.el.nativeElement.hasAttribute(\"allow-trim\")) {\r\n return false;\r\n }\r\n if (this.el.nativeElement.hasAttribute(\"not-allow-trim\")) {\r\n return true;\r\n }\r\n\r\n let element = this.el.nativeElement;\r\n while (element) {\r\n const className = element.className;\r\n if (\r\n typeof className === \"string\" &&\r\n className.includes(\"ant-form-custom\")\r\n ) {\r\n return true;\r\n }\r\n element = element.parentElement;\r\n }\r\n return false;\r\n }\r\n\r\n @HostListener(\"blur\")\r\n onBlur() {\r\n if (!this.shouldProcess()) {\r\n return;\r\n }\r\n\r\n const value = this.el.nativeElement.value;\r\n if (typeof value === \"string\") {\r\n const trimmedValue = value.trim();\r\n\r\n this.el.nativeElement.value = trimmedValue;\r\n\r\n if (this.ngControl && this.ngControl.control) {\r\n this.ngControl.control.setValue(trimmedValue, { emitEvent: false });\r\n }\r\n }\r\n }\r\n\r\n @HostListener(\"input\")\r\n onInput() {\r\n if (!this.shouldProcess()) {\r\n return;\r\n }\r\n\r\n const value = this.el.nativeElement.value;\r\n\r\n if (typeof value === \"string\" && /\\s/.test(value)) {\r\n const noSpaceValue = value.replace(/\\s/g, \"\");\r\n this.el.nativeElement.value = noSpaceValue;\r\n\r\n if (this.ngControl && this.ngControl.control) {\r\n this.ngControl.control.setValue(noSpaceValue, { emitEvent: false });\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { TrimInputDirective } from \"./trim-input.directive\";\r\n\r\n@NgModule({\r\n declarations: [TrimInputDirective],\r\n exports: [TrimInputDirective],\r\n})\r\nexport class TrimInputModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { NzGridModule } from \"ng-zorro-antd/grid\";\r\nimport { NzIconModule } from \"ng-zorro-antd/icon\";\r\nimport { NzInputModule } from \"ng-zorro-antd/input\";\r\nimport { NzPopoverModule } from \"ng-zorro-antd/popover\";\r\nimport { PlateInputComponent } from \"./plate-input.component\";\r\nimport { TrimInputModule } from \"../directives/trim-input.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NzGridModule,\r\n NzInputModule,\r\n NzPopoverModule,\r\n NzIconModule,\r\n TrimInputModule,\r\n ],\r\n declarations: [PlateInputComponent],\r\n providers: [],\r\n exports: [PlateInputComponent],\r\n})\r\nexport class PlateInputModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnInit,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-table-search-bar\",\r\n templateUrl: \"./table-search-bar.component.html\",\r\n styleUrls: [\"./table-search-bar.component.less\"],\r\n})\r\nexport class TableSearchBarComponent implements OnInit, AfterViewInit {\r\n @Input() leftColSpan: number = 21;\r\n @Input() rightColSpan: number = 3;\r\n @Input() labelWidth: string = \"90px\";\r\n @Input() labelAlign: string = \"right\";\r\n @Input() formItemWidth: string = \"270px\";\r\n @ContentChild(\"leftContent\") leftContentTpl!: TemplateRef<any>;\r\n @ContentChild(\"actionTextBtn\") actionTextBtnTpl!: TemplateRef<any>;\r\n @ContentChild(\"actionImgBtn\") actionImgBtnTpl!: TemplateRef<any>;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit(): void {}\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NzGridModule } from \"ng-zorro-antd/grid\";\r\nimport { TableSearchBarComponent } from \"./table-search-bar.component\";\r\nimport { NzSpaceModule } from \"ng-zorro-antd/space\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpClientModule,\r\n RouterModule,\r\n NzGridModule,\r\n ReactiveFormsModule,\r\n NzSpaceModule,\r\n ],\r\n declarations: [TableSearchBarComponent],\r\n providers: [],\r\n exports: [TableSearchBarComponent],\r\n})\r\nexport class TableSearchBarModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport Sortable from \"sortablejs\";\r\nimport { ProTableColumn } from \"../../type\";\r\nimport { PRO_TABLE_COLUMN_REMOTE, ProTableRemoteColumnService } from \"../../tokens\";\r\nimport { Inject, Optional } from \"@angular/core\";\r\nimport { isObservable } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"app-colmuns-setting\",\r\n templateUrl: \"./colmuns-setting.component.html\",\r\n styleUrls: [\"./colmuns-setting.component.less\"],\r\n})\r\nexport class ColmunsSettingComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n @Input() columns: ProTableColumn[] = [];\r\n\r\n @Input() selectedColumns: ProTableColumn[] = [];\r\n\r\n @Input() tableName: string;\r\n\r\n @Output() afterConfirm = new EventEmitter<ProTableColumn[]>();\r\n\r\n @ViewChild(\"sortableContainer\", { static: false })\r\n sortableContainer!: ElementRef;\r\n\r\n modalVisible: boolean = false;\r\n\r\n options: Array<{ label: string; value: string; checked: boolean }> = [];\r\n\r\n private sortableInstance: Sortable | null = null;\r\n\r\n constructor(\r\n @Optional()\r\n @Inject(PRO_TABLE_COLUMN_REMOTE)\r\n private columnRemote: ProTableRemoteColumnService | null\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit(): void {\r\n this.initSortable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sortableInstance) {\r\n this.sortableInstance.destroy();\r\n }\r\n }\r\n\r\n initSortable(): void {\r\n // 先销毁已存在的实例\r\n if (this.sortableInstance) {\r\n this.sortableInstance.destroy();\r\n this.sortableInstance = null;\r\n }\r\n\r\n if (this.sortableContainer && this.sortableContainer.nativeElement) {\r\n this.sortableInstance = new Sortable(\r\n this.sortableContainer.nativeElement,\r\n {\r\n animation: 150,\r\n ghostClass: \"sortable-ghost\",\r\n chosenClass: \"sortable-chosen\",\r\n dragClass: \"sortable-drag\",\r\n handle: \".sort-list-item\", // 指定拖拽句柄\r\n onEnd: (evt) => {\r\n this.onSortEnd(evt);\r\n },\r\n }\r\n );\r\n }\r\n }\r\n\r\n onSortEnd(evt: any): void {\r\n const { oldIndex, newIndex } = evt;\r\n if (oldIndex !== newIndex) {\r\n // 创建新的数组来避免直接修改输入属性\r\n const newSelectedColumns = [...this.selectedColumns];\r\n const movedItem = newSelectedColumns.splice(oldIndex, 1)[0];\r\n newSelectedColumns.splice(newIndex, 0, movedItem);\r\n\r\n // 更新 selectedColumns\r\n this.selectedColumns = newSelectedColumns;\r\n }\r\n }\r\n\r\n trackByColumn(index: number, item: ProTableColumn): string {\r\n return item.prop || index.toString();\r\n }\r\n\r\n /**\r\n * 同步 options 数组的 checked 状态与 selectedColumns\r\n */\r\n private syncOptionsWithSelectedColumns(): void {\r\n const selectedProps = this.selectedColumns.map((col) => col.prop);\r\n this.options.forEach((option) => {\r\n option.checked = selectedProps.includes(option.value);\r\n });\r\n }\r\n\r\n handleModalVisible() {\r\n this.options = this.columns\r\n .filter((item) => !item.auxiliaryColumn)\r\n .map((item) => {\r\n return {\r\n label: item.title,\r\n value: item.prop,\r\n checked: item.hideInTable ? false : true,\r\n sortName: item.sortName || null,\r\n };\r\n });\r\n\r\n // 同步 options 的 checked 状态与当前 selectedColumns\r\n this.syncOptionsWithSelectedColumns();\r\n\r\n this.modalVisible = true;\r\n\r\n // 模态框打开后重新初始化排序\r\n setTimeout(() => {\r\n this.initSortable();\r\n }, 100);\r\n }\r\n\r\n handleModalClose() {\r\n this.modalVisible = false;\r\n if (this.sortableInstance) {\r\n this.sortableInstance.destroy();\r\n this.sortableInstance = null;\r\n }\r\n }\r\n\r\n handleSelectRemove(key: string) {\r\n this.selectedColumns = this.selectedColumns.filter(\r\n (item) => item.prop !== key\r\n );\r\n\r\n // 使用同步方法确保所有状态一致\r\n this.syncOptionsWithSelectedColumns();\r\n }\r\n\r\n handleCheckBoxChange(value, record) {\r\n if (!value) {\r\n this.handleSelectRemove(record.value);\r\n } else {\r\n this.selectedColumns.push({\r\n title: record.label,\r\n prop: record.value,\r\n sortName: record.sortName,\r\n hideInTable: false,\r\n });\r\n // 添加项目后同步状态\r\n this.syncOptionsWithSelectedColumns();\r\n }\r\n }\r\n handleConfirm() {\r\n if (!this.columnRemote?.setCol || !this.tableName) {\r\n this.modalVisible = false;\r\n this.afterConfirm.emit();\r\n return;\r\n }\r\n const payload = this.selectedColumns.map((column) => {\r\n return {\r\n field: column.prop,\r\n isShow: column.hideInTable ? false : true,\r\n header: column.title,\r\n sortName: column.sortName || null,\r\n };\r\n });\r\n const result = this.columnRemote.setCol(this.tableName, payload);\r\n const done = (res) => {\r\n this.modalVisible = false;\r\n this.afterConfirm.emit();\r\n };\r\n if (result && isObservable(result)) {\r\n result.subscribe(done, () => done(null));\r\n } else {\r\n Promise.resolve(result).finally(() => done(null));\r\n }\r\n }\r\n}\r\n","import { Component, ComponentFactoryResolver, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, Type, ViewChild, ViewContainerRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dynamic-search-field',\r\n template: `<ng-template #vc></ng-template>`\r\n})\r\nexport class DynamicSearchFieldComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() component: Type<any> | null = null;\r\n @Input() value: any;\r\n @Input() props: { [key: string]: any } | null = null;\r\n @Output() valueChange = new EventEmitter<any>();\r\n\r\n @ViewChild('vc', { read: ViewContainerRef, static: true }) vc!: ViewContainerRef;\r\n\r\n private cmpRef: any = null;\r\n private isCva = false;\r\n private cvaOnChange: ((val: any) => void) | null = null;\r\n\r\n constructor(private cfr: ComponentFactoryResolver) {}\r\n\r\n ngOnInit(): void {\r\n this.render();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.component && !changes.component.firstChange) {\r\n this.destroy();\r\n this.render();\r\n return;\r\n }\r\n if (this.cmpRef) {\r\n if (changes.value && !changes.value.firstChange) {\r\n if (this.isCva) {\r\n if (typeof this.cmpRef.instance.writeValue === 'function') {\r\n this.cmpRef.instance.writeValue(this.value);\r\n }\r\n } else if ('value' in this.cmpRef.instance) {\r\n this.cmpRef.instance.value = this.value;\r\n }\r\n }\r\n if (changes.props && !changes.props.firstChange) {\r\n this.applyProps();\r\n }\r\n }\r\n }\r\n\r\n private render() {\r\n if (!this.component) return;\r\n const factory = this.cfr.resolveComponentFactory(this.component);\r\n this.vc.clear();\r\n this.cmpRef = this.vc.createComponent(factory);\r\n\r\n this.isCva = typeof this.cmpRef.instance.registerOnChange === 'function' && typeof this.cmpRef.instance.writeValue === 'function';\r\n\r\n if (this.isCva) {\r\n this.cmpRef.instance.writeValue(this.value);\r\n this.cmpRef.instance.registerOnChange((v: any) => {\r\n this.valueChange.emit(v);\r\n });\r\n } else {\r\n if ('value' in this.cmpRef.instance) {\r\n this.cmpRef.instance.value = this.value;\r\n }\r\n if ('valueChange' in this.cmpRef.instance && this.cmpRef.instance.valueChange && typeof this.cmpRef.instance.valueChange.subscribe === 'function') {\r\n this.cmpRef.instance.valueChange.subscribe((v: any) => {\r\n this.valueChange.emit(v);\r\n });\r\n }\r\n }\r\n\r\n this.applyProps();\r\n }\r\n\r\n private applyProps() {\r\n const p = this.props || {};\r\n const extra = p.componentProps || {};\r\n Object.keys(extra).forEach((k) => {\r\n try {\r\n this.cmpRef.instance[k] = extra[k];\r\n } catch {}\r\n });\r\n }\r\n\r\n private destroy() {\r\n if (this.cmpRef) {\r\n try { this.cmpRef.destroy(); } catch {}\r\n this.cmpRef = null;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n}\r\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NzButtonModule } from \"ng-zorro-antd/button\";\r\nimport { NzCheckboxModule } from \"ng-zorro-antd/checkbox\";\r\nimport { NzDatePickerModule } from \"ng-zorro-antd/date-picker\";\r\nimport { NzFormModule } from \"ng-zorro-antd/form\";\r\nimport { NzGridModule } from \"ng-zorro-antd/grid\";\r\nimport { NzIconModule } from \"ng-zorro-antd/icon\";\r\nimport { NzInputModule } from \"ng-zorro-antd/input\";\r\nimport { NzModalModule } from \"ng-zorro-antd/modal\";\r\nimport { NzPopoverModule } from \"ng-zorro-antd/popover\";\r\nimport { NzSelectModule } from \"ng-zorro-antd/select\";\r\nimport { NzSpaceModule } from \"ng-zorro-antd/space\";\r\nimport { NzTableModule } from \"ng-zorro-antd/table\";\r\nimport { NzTypographyModule } from \"ng-zorro-antd/typography\";\r\nimport { PageContainerModule } from \"./page-container/page-container.module\";\r\nimport { PlateInputModule } from \"./plate-input/plate-input.module\";\r\nimport { TableSearchBarModule } from \"./table-search-bar/table-search-bar-module\";\r\nimport { ColmunsSettingComponent } from \"./components/colmuns-setting/colmuns-setting.component\";\r\nimport { ProTableComponent } from \"./pro-table.component\";\r\nimport { DynamicSearchFieldComponent } from \"./components/dynamic-search-field/dynamic-search-field.component\";\r\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzToolTipModule } from \"ng-zorro-antd/tooltip\";\r\nimport { PRO_TABLE_COLUMN_REMOTE } from \"./tokens\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpClientModule,\r\n RouterModule,\r\n NzFormModule,\r\n NzSelectModule,\r\n NzSpaceModule,\r\n NzGridModule,\r\n NzInputModule,\r\n ReactiveFormsModule,\r\n NzPopoverModule,\r\n NzIconModule,\r\n NzButtonModule,\r\n PageContainerModule,\r\n TableSearchBarModule,\r\n NzTableModule,\r\n PlateInputModule,\r\n NzDatePickerModule,\r\n NzModalModule,\r\n NzCheckboxModule,\r\n NzTypographyModule,\r\n DragDropModule,\r\n NzCheckboxModule,\r\n NzAutocompleteModule,\r\n NzInputNumberModule,\r\n NzToolTipModule,\r\n ],\r\n declarations: [ProTableComponent, ColmunsSettingComponent, DynamicSearchFieldComponent],\r\n providers: [\r\n {\r\n // 默认不提供远程列服务,宿主可覆盖注入\r\n provide: PRO_TABLE_COLUMN_REMOTE,\r\n useValue: null,\r\n },\r\n ],\r\n exports: [ProTableComponent],\r\n})\r\nexport class ProTableModule {}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { PlatePrefixLoadService, PlatePrefixOption } from \"../tokens\";\r\n\r\n/**\r\n * 默认的车牌前缀加载服务实现\r\n * 使用 HttpClient 调用 API 获取车牌前缀选项\r\n */\r\n@Injectable()\r\nexport class DefaultPlatePrefixLoadService implements PlatePrefixLoadService {\r\n private readonly defaultApiUrl = \"/PlateFirstWord/GetPlateFirstWord\";\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n loadPrefixOptions(): Promise<PlatePrefixOption[]> {\r\n return this.http\r\n .post<string[]>(this.defaultApiUrl, { dictCode: \"PlateFirstWord\" })\r\n .toPromise()\r\n .then((list: string[]) => {\r\n const options: PlatePrefixOption[] = [];\r\n // 添加空选项(与旧版保持一致)\r\n options.push({ label: \"\", value: \"\" });\r\n // 转换数据格式\r\n for (let i = 0; i < list.length; i++) {\r\n options.push({\r\n label: list[i],\r\n value: list[i],\r\n });\r\n }\r\n return options;\r\n })\r\n .catch(() => {\r\n // 发生错误时返回空数组\r\n return [];\r\n });\r\n }\r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n AbstractControl,\r\n AbstractControlOptions,\r\n FormBuilder,\r\n FormGroup,\r\n ValidatorFn,\r\n} from \"@angular/forms\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { debounceTime, distinctUntilChanged } from \"rxjs/operators\";\r\n\r\n// ==================== 类型定义 ====================\r\n\r\n// 字段错误消息类型(字符串或函数)\r\nexport type FieldErrorMessage =\r\n | string\r\n | ((context: { control: AbstractControl; controlName: string }) => string);\r\n\r\n// 字段错误消息集合\r\nexport type FieldErrorMessages = Record<string, FieldErrorMessage>;\r\n\r\n// 字段配置\r\nexport type FieldConfig = {\r\n value: any;\r\n disabled?: boolean;\r\n validators?: () => ValidatorFn[];\r\n errorMessages?: FieldErrorMessages;\r\n};\r\n\r\n// 嵌套 FormGroup 配置\r\nexport type FormGroupConfig = {\r\n type: \"group\";\r\n fields: FormConfig;\r\n disabled?: boolean;\r\n validators?: () => ValidatorFn[];\r\n errorMessages?: FieldErrorMessages;\r\n};\r\n\r\n// 表单修改类型\r\nexport type FormModifyType = \"create\" | \"update\";\r\n\r\n// 表单配置(支持普通字段和嵌套 FormGroup)\r\nexport type FormConfig = Record<string, FieldConfig | FormGroupConfig>;\r\n\r\n// 监听选项\r\nexport type WatchOptions = {\r\n debounce?: number;\r\n distinctUntilChanged?: boolean;\r\n emitInitial?: boolean;\r\n};\r\n\r\n// 批量添加字段配置选项\r\nexport type AddFieldsConfigOptions = {\r\n emitEvent?: boolean;\r\n updateValueAndValidity?: boolean;\r\n onFieldAdded?: (fieldName: string, success: boolean, error?: string) => void; // 每个字段添加的回调\r\n targetPath?: string; // 目标路径,用于在嵌套 FormGroup 内部添加字段,例如: \"cardBaseInfo\" 或 \"userInfo.addressInfo\"\r\n};\r\n\r\n// 批量添加字段配置结果\r\nexport type AddFieldsConfigResult = {\r\n success: boolean;\r\n added: string[]; // 成功添加的字段名列表\r\n failed: Array<{ fieldName: string; error: string }>; // 失败的字段及错误信息\r\n};\r\n\r\n// 批量删除字段配置选项\r\nexport type RemoveFieldsConfigOptions = {\r\n emitEvent?: boolean;\r\n onFieldRemoved?: (\r\n fieldName: string,\r\n success: boolean,\r\n error?: string\r\n ) => void; // 每个字段删除的回调\r\n};\r\n\r\n// 批量删除字段配置结果\r\nexport type RemoveFieldsConfigResult = {\r\n success: boolean;\r\n removed: string[]; // 成功删除的字段名列表\r\n failed: Array<{ fieldName: string; error: string }>; // 失败的字段及错误信息\r\n};\r\n\r\n// ==================== 服务类 ====================\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class AntdFormService {\r\n // ==================== 公共属性 ====================\r\n formStore: Record<string, FormGroup> = {};\r\n formModifyType: FormModifyType = \"create\";\r\n\r\n // ==================== 私有属性 ====================\r\n private formRegisterStore: Record<string, boolean> = {};\r\n private labelWidth: string = \"120px\";\r\n private labelAlign: string = \"right\";\r\n private labelObservers: Record<string, MutationObserver> = {};\r\n private errorMessageStore: Record<\r\n string,\r\n Record<string, FieldErrorMessages>\r\n > = {};\r\n private classPrefix = \"ant-form-\";\r\n private readonly defaultErrorMessages: FieldErrorMessages = {\r\n required: \"该字段为必填项\",\r\n minlength: \"输入长度不足\",\r\n maxlength: \"输入长度超限\",\r\n email: \"请输入合法的邮箱地址\",\r\n pattern: \"输入格式不正确\",\r\n };\r\n\r\n // ==================== 构造函数 ====================\r\n constructor(private fb: FormBuilder) {}\r\n\r\n // ==================== 表单创建和初始化 ====================\r\n\r\n // 判断是否为嵌套 FormGroup 配置\r\n private isFormGroupConfig(\r\n config: FieldConfig | FormGroupConfig\r\n ): config is FormGroupConfig {\r\n return (\r\n typeof config === \"object\" &&\r\n config !== null &&\r\n \"type\" in config &&\r\n config.type === \"group\"\r\n );\r\n }\r\n\r\n // 递归创建嵌套 FormGroup\r\n private createNestedFormGroup(\r\n fields: FormConfig,\r\n disabled?: boolean\r\n ): FormGroup {\r\n const groupConfig: Record<string, any> = {};\r\n\r\n Object.entries(fields).forEach(([key, fieldConfig]) => {\r\n if (this.isFormGroupConfig(fieldConfig)) {\r\n // 递归创建嵌套的 FormGroup\r\n groupConfig[key] = this.createNestedFormGroup(\r\n fieldConfig.fields,\r\n fieldConfig.disabled ?? disabled\r\n );\r\n } else {\r\n // 创建普通 FormControl\r\n groupConfig[key] = [\r\n {\r\n value: fieldConfig.value,\r\n disabled: fieldConfig.disabled ?? disabled ?? false,\r\n },\r\n fieldConfig.validators?.() ?? [],\r\n ];\r\n }\r\n });\r\n\r\n return this.fb.group(groupConfig);\r\n }\r\n\r\n // 初始化表单\r\n createFormGroup(\r\n name: string,\r\n config: FormConfig,\r\n options?: { labelWidth?: string; labelAlign?: string }\r\n ): FormGroup {\r\n const groupConfig: Record<string, any> = {};\r\n this.errorMessageStore[name] = {};\r\n\r\n Object.entries(config).forEach(([key, fieldConfig]) => {\r\n if (this.isFormGroupConfig(fieldConfig)) {\r\n // 处理嵌套 FormGroup\r\n const nestedGroup = this.createNestedFormGroup(\r\n fieldConfig.fields,\r\n fieldConfig.disabled\r\n );\r\n groupConfig[key] = nestedGroup;\r\n\r\n // 存储嵌套 FormGroup 的错误消息(如果需要)\r\n if (fieldConfig.errorMessages) {\r\n this.errorMessageStore[name][key] = fieldConfig.errorMessages;\r\n }\r\n } else {\r\n // 处理普通字段\r\n groupConfig[key] = [\r\n {\r\n value: fieldConfig.value,\r\n disabled: fieldConfig.disabled ?? false,\r\n },\r\n fieldConfig.validators?.() ?? [],\r\n ];\r\n if (fieldConfig.errorMessages) {\r\n this.errorMessageStore[name][key] = fieldConfig.errorMessages;\r\n }\r\n }\r\n });\r\n\r\n if (options?.labelWidth) {\r\n this.labelWidth = options.labelWidth;\r\n }\r\n if (options?.labelAlign) {\r\n this.labelAlign = options.labelAlign;\r\n }\r\n this.formStore[name] = this.fb.group(groupConfig);\r\n this.formRegisterStore[name] = true;\r\n this.setCSSVariablesToTarget(name);\r\n return this.formStore[name];\r\n }\r\n\r\n // ==================== 表单操作 ====================\r\n\r\n // 重置表单\r\n resetFormGroup(name: string, value?: any): void {\r\n this.formStore[name]?.reset(value);\r\n }\r\n\r\n // 检测表单是否完成注册\r\n isFormRegistered(name: string): boolean {\r\n return this.formRegisterStore[name] ?? false;\r\n }\r\n\r\n // 销毁对应的表单\r\n destory(names: string[]): void {\r\n names.forEach((name) => {\r\n // 2. 清理错误消息存储\r\n if (this.errorMessageStore[name]) {\r\n delete this.errorMessageStore[name];\r\n }\r\n\r\n // 3. 清理表单注册标记\r\n if (this.formRegisterStore[name]) {\r\n delete this.formRegisterStore[name];\r\n }\r\n\r\n // 4. 清理表单组(Angular 会自动处理 FormGroup 的清理)\r\n if (this.formStore[name]) {\r\n delete this.formStore[name];\r\n }\r\n });\r\n }\r\n\r\n // 根据路径获取嵌套的 FormGroup\r\n private getNestedFormGroup(\r\n formGroup: FormGroup,\r\n path: string\r\n ): FormGroup | null {\r\n if (!path || path.trim() === \"\") {\r\n return formGroup;\r\n }\r\n\r\n const pathParts = path.split(\".\").filter((p) => p.trim() !== \"\");\r\n let currentGroup: AbstractControl | null = formGroup;\r\n\r\n for (const part of pathParts) {\r\n if (!currentGroup || !(currentGroup instanceof FormGroup)) {\r\n return null;\r\n }\r\n currentGroup = currentGroup.get(part);\r\n if (!currentGroup || !(currentGroup instanceof FormGroup)) {\r\n return null;\r\n }\r\n }\r\n\r\n return currentGroup instanceof FormGroup ? currentGroup : null;\r\n }\r\n\r\n // 批量添加字段配置\r\n addFieldsConfig(\r\n formName: string,\r\n fieldsConfig: FormConfig,\r\n options?: AddFieldsConfigOptions\r\n ): AddFieldsConfigResult {\r\n const result: AddFieldsConfigResult = {\r\n success: true,\r\n added: [],\r\n failed: [],\r\n };\r\n\r\n // 1. 验证表单是否存在\r\n const rootFormGroup = this.formStore[formName];\r\n if (!rootFormGroup) {\r\n // 如果表单不存在,所有字段都失败\r\n Object.keys(fieldsConfig).forEach((fieldName) => {\r\n const error = `Form \"${formName}\" not found`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldAdded?.(fieldName, false, error);\r\n });\r\n result.success = false;\r\n return result;\r\n }\r\n\r\n // 2. 获取目标 FormGroup(支持嵌套路径)\r\n const targetPath = options?.targetPath;\r\n const targetFormGroup = targetPath\r\n ? this.getNestedFormGroup(rootFormGroup, targetPath)\r\n : rootFormGroup;\r\n\r\n if (!targetFormGroup) {\r\n // 如果目标 FormGroup 不存在,所有字段都失败\r\n Object.keys(fieldsConfig).forEach((fieldName) => {\r\n const error = targetPath\r\n ? `Target FormGroup at path \"${targetPath}\" not found`\r\n : `FormGroup not found`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldAdded?.(fieldName, false, error);\r\n });\r\n result.success = false;\r\n return result;\r\n }\r\n\r\n // 3. 初始化 errorMessageStore(如果不存在)\r\n if (!this.errorMessageStore[formName]) {\r\n this.errorMessageStore[formName] = {};\r\n }\r\n\r\n // 4. 批量构建控件配置\r\n const controlsToAdd: Record<string, AbstractControl> = {};\r\n const errorMessagesToAdd: Record<string, FieldErrorMessages> = {};\r\n\r\n // 5. 遍历所有字段配置,进行验证和构建\r\n Object.entries(fieldsConfig).forEach(([fieldName, fieldConfig]) => {\r\n try {\r\n // 5.1 检查字段是否已存在\r\n if (targetFormGroup.get(fieldName)) {\r\n const error = `Field \"${fieldName}\" already exists${\r\n targetPath ? ` in \"${targetPath}\"` : \"\"\r\n }`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldAdded?.(fieldName, false, error);\r\n return;\r\n }\r\n\r\n // 5.2 创建控件\r\n let control: AbstractControl;\r\n\r\n if (this.isFormGroupConfig(fieldConfig)) {\r\n // 创建嵌套 FormGroup\r\n control = this.createNestedFormGroup(\r\n fieldConfig.fields,\r\n fieldConfig.disabled\r\n );\r\n // 存储嵌套 FormGroup 的错误消息(如果需要)\r\n if (fieldConfig.errorMessages) {\r\n const errorMessageKey = targetPath\r\n ? `${targetPath}.${fieldName}`\r\n : fieldName;\r\n errorMessagesToAdd[errorMessageKey] = fieldConfig.errorMessages;\r\n }\r\n } else {\r\n // 创建普通 FormControl\r\n const controlOptions: AbstractControlOptions = {\r\n validators: fieldConfig.validators?.() ?? [],\r\n };\r\n control = this.fb.control(fieldConfig.value, controlOptions);\r\n // 设置 disabled 状态\r\n if (fieldConfig.disabled) {\r\n control.disable();\r\n }\r\n // 存储错误消息\r\n if (fieldConfig.errorMessages) {\r\n const errorMessageKey = targetPath\r\n ? `${targetPath}.${fieldName}`\r\n : fieldName;\r\n errorMessagesToAdd[errorMessageKey] = fieldConfig.errorMessages;\r\n }\r\n }\r\n\r\n controlsToAdd[fieldName] = control;\r\n\r\n result.added.push(fieldName);\r\n options?.onFieldAdded?.(fieldName, true);\r\n } catch (error: any) {\r\n const errorMessage =\r\n error?.message || error?.toString() || \"Unknown error\";\r\n result.failed.push({\r\n fieldName,\r\n error: errorMessage,\r\n });\r\n options?.onFieldAdded?.(fieldName, false, errorMessage);\r\n }\r\n });\r\n\r\n // 6. 批量添加到目标 FormGroup\r\n if (Object.keys(controlsToAdd).length > 0) {\r\n Object.entries(controlsToAdd).forEach(([fieldName, control]) => {\r\n targetFormGroup.addControl(fieldName, control);\r\n });\r\n\r\n // 7. 批量存储错误消息\r\n Object.entries(errorMessagesToAdd).forEach(([key, messages]) => {\r\n this.errorMessageStore[formName][key] = messages;\r\n });\r\n\r\n // 8. 更新表单验证状态\r\n if (options?.updateValueAndValidity) {\r\n targetFormGroup.updateValueAndValidity({\r\n emitEvent: options?.emitEvent ?? true,\r\n });\r\n }\r\n }\r\n\r\n // 9. 判断整体是否成功\r\n result.success = result.failed.length === 0;\r\n\r\n return result;\r\n }\r\n\r\n // 批量删除字段配置\r\n removeFieldsConfig(\r\n formName: string,\r\n fieldNames: string[],\r\n options?: RemoveFieldsConfigOptions\r\n ): RemoveFieldsConfigResult {\r\n const result: RemoveFieldsConfigResult = {\r\n success: true,\r\n removed: [],\r\n failed: [],\r\n };\r\n\r\n // 1. 验证表单是否存在\r\n const formGroup = this.formStore[formName];\r\n if (!formGroup) {\r\n fieldNames.forEach((fieldName) => {\r\n const error = `Form \"${formName}\" not found`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldRemoved?.(fieldName, false, error);\r\n });\r\n result.success = false;\r\n return result;\r\n }\r\n\r\n // 2. 批量收集需要清理的信息\r\n const fieldsToRemove: string[] = [];\r\n const errorMessageKeysToRemove: string[] = [];\r\n\r\n // 3. 验证每个字段并收集信息\r\n fieldNames.forEach((fieldName) => {\r\n const control = formGroup.get(fieldName);\r\n\r\n if (!control) {\r\n const error = `Field \"${fieldName}\" not found`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldRemoved?.(fieldName, false, error);\r\n return;\r\n }\r\n\r\n // 收集错误消息键\r\n errorMessageKeysToRemove.push(fieldName);\r\n fieldsToRemove.push(fieldName);\r\n });\r\n\r\n // 4. 批量执行删除操作\r\n try {\r\n // 4.1 从 FormGroup 中移除控件\r\n fieldsToRemove.forEach((fieldName) => {\r\n formGroup.removeControl(fieldName);\r\n result.removed.push(fieldName);\r\n options?.onFieldRemoved?.(fieldName, true);\r\n });\r\n\r\n // 4.2 批量删除错误消息\r\n if (this.errorMessageStore[formName]) {\r\n errorMessageKeysToRemove.forEach((key) => {\r\n delete this.errorMessageStore[formName][key];\r\n });\r\n }\r\n } catch (error: any) {\r\n // 如果批量删除过程中出错,标记为失败\r\n fieldsToRemove.forEach((fieldName) => {\r\n if (!result.removed.includes(fieldName)) {\r\n const errorMessage =\r\n error?.message || error?.toString() || \"Failed to remove field\";\r\n result.failed.push({\r\n fieldName,\r\n error: errorMessage,\r\n });\r\n options?.onFieldRemoved?.(fieldName, false, errorMessage);\r\n }\r\n });\r\n }\r\n\r\n // 5. 判断整体是否成功\r\n result.success = result.failed.length === 0;\r\n\r\n return result;\r\n }\r\n\r\n // 局部赋值\r\n patchFormValues(\r\n name: string,\r\n values: Record<string, any>,\r\n options?: { emitEvent?: boolean }\r\n ): void {\r\n const formGroup = this.formStore[name];\r\n if (!formGroup) {\r\n console.warn(\r\n `[AntdFormService] patchFormValues: form \"${name}\" not found.`\r\n );\r\n return;\r\n }\r\n\r\n formGroup.patchValue(values, {\r\n emitEvent: options?.emitEvent ?? true,\r\n });\r\n }\r\n\r\n // 表单校验(自动过滤内部字段)\r\n validateForm(\r\n name: string,\r\n options?: { emitEvent?: boolean; onlySelf?: boolean }\r\n ): boolean | Record<string, any> {\r\n if (this.formStore[name].valid) {\r\n const rawValue = this.formStore[name].getRawValue();\r\n return this.excludeInternalFields(rawValue);\r\n } else {\r\n // 递归校验所有控件\r\n this.markAllControlsAsDirty(\r\n this.formStore[name],\r\n options?.emitEvent ?? true,\r\n options?.onlySelf ?? false\r\n );\r\n return false;\r\n }\r\n }\r\n\r\n // 递归标记所有无效控件为 dirty\r\n private markAllControlsAsDirty(\r\n control: AbstractControl,\r\n emitEvent: boolean,\r\n onlySelf: boolean\r\n ): void {\r\n if (control.invalid) {\r\n control.markAsDirty();\r\n control.updateValueAndValidity({\r\n emitEvent,\r\n onlySelf,\r\n });\r\n }\r\n\r\n // 如果是 FormGroup,递归处理所有子控件\r\n if (control instanceof FormGroup) {\r\n Object.values(control.controls).forEach((childControl) => {\r\n this.markAllControlsAsDirty(childControl, emitEvent, onlySelf);\r\n });\r\n }\r\n }\r\n\r\n // ==================== 错误消息相关 ====================\r\n\r\n // 获取字段首条错误提示\r\n getFieldErrorMessage(name: string, controlName: string): string {\r\n const formGroup = this.formStore[name];\r\n if (!formGroup) {\r\n console.warn(\r\n `[AntdFormService] getFieldErrorMessage: form \"${name}\" not found.`\r\n );\r\n return \"\";\r\n }\r\n const control = formGroup.get(controlName);\r\n if (!control) {\r\n console.warn(\r\n `[AntdFormService] getFieldErrorMessage: control \"${controlName}\" not found in form \"${name}\".`\r\n );\r\n return \"\";\r\n }\r\n if (!control.errors) {\r\n return \"\";\r\n }\r\n\r\n // 从 errorMessageStore 获取错误消息配置\r\n const errorMessages = this.errorMessageStore[name]?.[controlName];\r\n const mergedMessages = {\r\n ...this.defaultErrorMessages,\r\n ...(errorMessages ?? {}),\r\n };\r\n\r\n for (const errorKey of Object.keys(control.errors)) {\r\n const message = mergedMessages[errorKey];\r\n if (message) {\r\n // 不再支持函数形式,只返回字符串\r\n return typeof message === \"string\" ? message : \"\";\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n // ==================== 监听相关 ====================\r\n\r\n // 监听表单所有字段变更\r\n watchFormChanges<T = any>(\r\n name: string,\r\n handler: (value: T) => void,\r\n options?: WatchOptions\r\n ): Subscription | undefined {\r\n const formGroup = this.formStore[name];\r\n if (!formGroup) {\r\n console.warn(\r\n `[AntdFormService] watchFormChanges: form \"${name}\" not found.`\r\n );\r\n return undefined;\r\n }\r\n\r\n return this.setupValueChangeSubscription(formGroup, handler, options);\r\n }\r\n\r\n // 监听指定字段变更\r\n watchFieldChanges<T = any>(\r\n name: string,\r\n controlName: string,\r\n handler: (value: T) => void,\r\n options?: WatchOptions\r\n ): Subscription | undefined {\r\n const formGroup = this.formStore[name];\r\n if (!formGroup) {\r\n console.warn(\r\n `[AntdFormService] watchFieldChanges: form \"${name}\" not found.`\r\n );\r\n return undefined;\r\n }\r\n\r\n const control = formGroup.get(controlName);\r\n if (!control) {\r\n console.warn(\r\n `[AntdFormService] watchFieldChanges: control \"${controlName}\" not found in form \"${name}\".`\r\n );\r\n return undefined;\r\n }\r\n\r\n return this.setupValueChangeSubscription(control, handler, options);\r\n }\r\n\r\n // ==================== 工具方法 ====================\r\n\r\n // 获取表单类名\r\n getFormClassName(name: string): string {\r\n return `${this.classPrefix}custom-${name} `;\r\n }\r\n\r\n // 设置 CSS 变量到目标元素(支持持久化监听动态添加的元素)\r\n setCSSVariablesToTarget(name: string): void {\r\n const formContainerSelector = `.${this.getFormClassName(name)}`;\r\n const formContainer = document.querySelector(\r\n formContainerSelector\r\n ) as HTMLElement;\r\n\r\n // 如果容器还不存在,可以用 MutationObserver 等待它出现\r\n if (!formContainer) {\r\n const observer = new MutationObserver(() => {\r\n const container = document.querySelector(\r\n formContainerSelector\r\n ) as HTMLElement;\r\n if (container) {\r\n container.style.setProperty(\"--label-width\", this.labelWidth);\r\n container.style.setProperty(\"--label-align\", this.labelAlign);\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n\r\n // 10秒后自动断开,避免内存泄漏\r\n setTimeout(() => observer.disconnect(), 10000);\r\n return;\r\n }\r\n\r\n // 在容器上设置 CSS 变量\r\n formContainer.style.setProperty(\"--label-width\", this.labelWidth);\r\n formContainer.style.setProperty(\"--label-align\", this.labelAlign);\r\n }\r\n\r\n // ==================== 私有方法 ====================\r\n\r\n // 过滤内部字段(递归处理对象和数组)\r\n private excludeInternalFields(value: any): any {\r\n if (value === null || value === undefined) {\r\n return value;\r\n }\r\n\r\n // 特殊处理 Date 对象,直接返回不做转换\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value.map((item) => this.excludeInternalFields(item));\r\n }\r\n\r\n if (typeof value !== \"object\") {\r\n return value;\r\n }\r\n\r\n const filtered: any = {};\r\n Object.entries(value).forEach(([key, val]) => {\r\n // 过滤以 __ 开头的内部字段\r\n if (!key.startsWith(\"__\")) {\r\n filtered[key] = this.excludeInternalFields(val);\r\n }\r\n });\r\n return filtered;\r\n }\r\n\r\n // 设置值变更订阅\r\n private setupValueChangeSubscription<T>(\r\n target: { valueChanges: any; value: any },\r\n handler: (value: T) => void,\r\n options?: WatchOptions\r\n ): Subscription {\r\n let valueChanges$ = target.valueChanges;\r\n\r\n if (options?.debounce != null) {\r\n valueChanges$ = valueChanges$.pipe(debounceTime(options.debounce));\r\n }\r\n\r\n if (options?.distinctUntilChanged !== false) {\r\n valueChanges$ = valueChanges$.pipe(distinctUntilChanged());\r\n }\r\n\r\n if (options?.emitInitial) {\r\n handler(target.value);\r\n }\r\n\r\n return valueChanges$.subscribe(handler);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\n/** 字段校验结果类型 */\r\nexport type ValidationResult = string;\r\n\r\n/** 字段校验方法类型 */\r\nexport type FieldValidator = (\r\n value: any,\r\n row: ArrayFormRow,\r\n fieldName: string\r\n) => ValidationResult;\r\n\r\n/** 字段配置接口 */\r\nexport interface FieldConfig {\r\n name: string;\r\n validator?: FieldValidator;\r\n}\r\n\r\n/** 数组表单行数据接口 */\r\nexport interface ArrayFormRow {\r\n uid?: string;\r\n isEdit?: boolean;\r\n isAdd?: boolean;\r\n disabled?: boolean;\r\n [key: string]: any;\r\n}\r\n\r\n/** 数组表单配置接口 */\r\nexport interface ArrayFormConfig {\r\n fields: FieldConfig[];\r\n defaultValues?: Record<string, any>;\r\n // 自动更新目标对象和属性名,用于触发 Angular 变化检测\r\n targetObject?: Record<string, any>;\r\n arrayPropertyName?: string;\r\n}\r\n\r\n/** 表单存储项接口 */\r\nexport interface ArrayFormStoreItem {\r\n data: ArrayFormRow[];\r\n config: ArrayFormConfig;\r\n validationResults?: Record<string, Record<string, ValidationResult>>;\r\n /** 初始值快照,用于自动检测字段是否被修改 */\r\n initialSnapshot: Record<string, Record<string, any>>;\r\n /** 编辑时快照,用于取消编辑时恢复数据 */\r\n editingSnapshot: Record<string, Record<string, any>>;\r\n /** 是否标记所有字段为已触碰(整个表单提交时设为 true) */\r\n allTouched: boolean;\r\n /** 每行的 touched 状态(单行保存时设为 true) */\r\n rowTouched: Record<string, boolean>;\r\n}\r\n\r\n/** 表单存储接口 */\r\nexport interface ArrayFormStore {\r\n [formName: string]: ArrayFormStoreItem;\r\n}\r\n\r\n/** 数组型数据收集基础服务 */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ArrayFormService {\r\n private formStore: ArrayFormStore = {};\r\n\r\n constructor() {}\r\n\r\n /** 深度克隆值 */\r\n private cloneValue(value: any): any {\r\n if (value === null || value === undefined) {\r\n return value;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.map((item) => this.cloneValue(item));\r\n }\r\n if (typeof value === \"object\") {\r\n const cloned: Record<string, any> = {};\r\n for (const key of Object.keys(value)) {\r\n cloned[key] = this.cloneValue(value[key]);\r\n }\r\n return cloned;\r\n }\r\n return value;\r\n }\r\n\r\n /** 比较两个值是否相等 */\r\n private isEqual(a: any, b: any): boolean {\r\n if (a === b) return true;\r\n if (a === null || b === null) return a === b;\r\n if (a === undefined || b === undefined) return a === b;\r\n if (typeof a !== typeof b) return false;\r\n\r\n if (Array.isArray(a) && Array.isArray(b)) {\r\n if (a.length !== b.length) return false;\r\n return a.every((item, index) => this.isEqual(item, b[index]));\r\n }\r\n\r\n if (typeof a === \"object\" && typeof b === \"object\") {\r\n const keysA = Object.keys(a);\r\n const keysB = Object.keys(b);\r\n if (keysA.length !== keysB.length) return false;\r\n return keysA.every((key) => this.isEqual(a[key], b[key]));\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** 创建行的初始值快照 */\r\n private createRowSnapshot(\r\n row: ArrayFormRow,\r\n fields: FieldConfig[]\r\n ): Record<string, any> {\r\n const snapshot: Record<string, any> = {};\r\n fields.forEach((field) => {\r\n snapshot[field.name] = this.cloneValue(row[field.name]);\r\n });\r\n return snapshot;\r\n }\r\n\r\n /** 初始化数组数据,添加 uid 和 isEdit 字段 */\r\n private initializeData(data: any[]): ArrayFormRow[] {\r\n return data.map((item) => this.enrichRow(item));\r\n }\r\n\r\n /** 为单行数据添加 uid 和 isEdit 字段 */\r\n private enrichRow(row: any): ArrayFormRow {\r\n return {\r\n ...row,\r\n uid: row.uid || uuidv4(),\r\n isEdit: row.isEdit !== undefined ? row.isEdit : false,\r\n disabled: row.disabled !== undefined ? row.disabled : false,\r\n };\r\n }\r\n\r\n /** 新增一行数据 */\r\n private addRow(\r\n data: ArrayFormRow[],\r\n defaultValues?: Record<string, any>\r\n ): ArrayFormRow {\r\n const newRow: ArrayFormRow = {\r\n ...defaultValues,\r\n uid: uuidv4(),\r\n isEdit: true,\r\n isAdd: true,\r\n disabled: false,\r\n };\r\n data.push(newRow);\r\n return newRow;\r\n }\r\n\r\n /** 校验单个字段 */\r\n private validateField(\r\n row: ArrayFormRow,\r\n fieldName: string,\r\n config: ArrayFormConfig\r\n ): ValidationResult {\r\n const fieldConfig = config.fields.find((f) => f.name === fieldName);\r\n\r\n if (!fieldConfig) {\r\n return \"\";\r\n }\r\n\r\n if (fieldConfig.validator) {\r\n return fieldConfig.validator(row[fieldName], row, fieldName);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n /** 校验整行数据 */\r\n private validateRow(\r\n row: ArrayFormRow,\r\n config: ArrayFormConfig\r\n ): Record<string, ValidationResult> {\r\n const results: Record<string, ValidationResult> = {};\r\n\r\n config.fields.forEach((fieldConfig) => {\r\n results[fieldConfig.name] = this.validateField(\r\n row,\r\n fieldConfig.name,\r\n config\r\n );\r\n });\r\n\r\n return results;\r\n }\r\n\r\n /** 校验整个数组 */\r\n private validateData(\r\n data: ArrayFormRow[],\r\n config: ArrayFormConfig\r\n ): Record<string, Record<string, ValidationResult>> {\r\n const results: Record<string, Record<string, ValidationResult>> = {};\r\n\r\n data.forEach((row) => {\r\n results[row.uid] = this.validateRow(row, config);\r\n });\r\n\r\n return results;\r\n }\r\n\r\n /** 注册表单到存储 */\r\n registerForm(\r\n formName: string,\r\n data: ArrayFormRow[],\r\n config: ArrayFormConfig\r\n ): void {\r\n const initializedData = this.initializeData(data);\r\n\r\n // 记录初始值快照\r\n const initialSnapshot: Record<string, Record<string, any>> = {};\r\n initializedData.forEach((row) => {\r\n initialSnapshot[row.uid!] = this.createRowSnapshot(row, config.fields);\r\n });\r\n\r\n this.formStore[formName] = {\r\n data: initializedData,\r\n config,\r\n validationResults: {},\r\n initialSnapshot,\r\n editingSnapshot: {},\r\n allTouched: false,\r\n rowTouched: {},\r\n };\r\n // 如果配置了自动更新,立即更新一次\r\n this.autoUpdateArrayReference(formName);\r\n }\r\n\r\n /** 从存储中获取表单 */\r\n getForm(formName: string): ArrayFormStoreItem | undefined {\r\n return this.formStore[formName];\r\n }\r\n\r\n /** 从存储中获取表单数据 */\r\n getFormData(\r\n formName: string\r\n ):\r\n | Array<Pick<ArrayFormRow, \"uid\" | \"isEdit\" | \"isAdd\" | keyof ArrayFormRow>>\r\n | undefined {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return undefined;\r\n }\r\n return form.data.map((item) => {\r\n delete item.isEdit;\r\n delete item.isAdd;\r\n delete item.uid;\r\n delete item.disabled;\r\n return item;\r\n });\r\n }\r\n\r\n /** 向表单添加行 */\r\n addRowToForm(\r\n formName: string,\r\n defaultValues?: Record<string, any>\r\n ): ArrayFormRow | undefined {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return undefined;\r\n }\r\n const newRow = this.addRow(form.data, defaultValues);\r\n // 为新行记录初始值快照\r\n form.initialSnapshot[newRow.uid!] = this.createRowSnapshot(\r\n newRow,\r\n form.config.fields\r\n );\r\n // 自动更新外部数组引用\r\n this.autoUpdateArrayReference(formName);\r\n return newRow;\r\n }\r\n\r\n /** 校验表单,自动标记所有字段为已触碰 */\r\n validateForm(formName: string): boolean {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return true;\r\n }\r\n // 标记所有字段为已触碰\r\n form.allTouched = true;\r\n const results = this.validateData(form.data, form.config);\r\n form.validationResults = results;\r\n\r\n // 检查是否有任何错误\r\n for (const uid of Object.keys(results)) {\r\n for (const fieldName of Object.keys(results[uid])) {\r\n if (results[uid][fieldName]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /** 开启编辑模式,保存快照用于取消恢复 */\r\n enableEdit(formName: string, row: ArrayFormRow): void {\r\n const form = this.formStore[formName];\r\n if (form && row.uid) {\r\n // 保存编辑前的快照\r\n form.editingSnapshot[row.uid] = this.createRowSnapshot(\r\n row,\r\n form.config.fields\r\n );\r\n }\r\n row.isEdit = true;\r\n }\r\n\r\n /** 取消编辑,恢复到编辑前的数据 */\r\n disableEdit(formName: string, row: ArrayFormRow): void {\r\n const form = this.formStore[formName];\r\n if (form && row.uid && form.editingSnapshot[row.uid]) {\r\n // 恢复编辑前的数据\r\n const snapshot = form.editingSnapshot[row.uid];\r\n form.config.fields.forEach((field) => {\r\n row[field.name] = this.cloneValue(snapshot[field.name]);\r\n });\r\n // 更新初始快照为恢复后的值,消除 touched 状态\r\n form.initialSnapshot[row.uid] = this.cloneValue(snapshot);\r\n // 清理编辑快照和 touched 状态\r\n delete form.editingSnapshot[row.uid];\r\n delete form.rowTouched[row.uid];\r\n // 清理该行的校验结果\r\n if (form.validationResults) {\r\n delete form.validationResults[row.uid];\r\n }\r\n }\r\n row.isEdit = false;\r\n }\r\n\r\n /** 确认编辑,保留修改后的数据 */\r\n confirmEdit(formName: string, row: ArrayFormRow): void {\r\n const form = this.formStore[formName];\r\n if (form && row.uid) {\r\n // 清理编辑快照(保留当前数据)\r\n if (form.editingSnapshot[row.uid]) {\r\n delete form.editingSnapshot[row.uid];\r\n }\r\n // 更新初始快照为当前值(用于后续 touched 检测)\r\n form.initialSnapshot[row.uid] = this.createRowSnapshot(\r\n row,\r\n form.config.fields\r\n );\r\n // 清除 touched 状态,基于新的 initialSnapshot 重新判断\r\n delete form.rowTouched[row.uid];\r\n }\r\n row.isEdit = false;\r\n row.isAdd = false;\r\n }\r\n\r\n /** 从表单中删除指定行 */\r\n deleteRowFromForm(formName: string, row: ArrayFormRow): boolean {\r\n const form = this.formStore[formName];\r\n if (!form || !row.uid) {\r\n return false;\r\n }\r\n const index = form.data.findIndex((item) => item.uid === row.uid);\r\n if (index === -1) {\r\n return false;\r\n }\r\n form.data.splice(index, 1);\r\n // 清理该行的所有快照、touched 状态和校验结果\r\n delete form.initialSnapshot[row.uid];\r\n delete form.editingSnapshot[row.uid];\r\n delete form.rowTouched[row.uid];\r\n if (form.validationResults) {\r\n delete form.validationResults[row.uid];\r\n }\r\n // 自动更新外部数组引用\r\n this.autoUpdateArrayReference(formName);\r\n return true;\r\n }\r\n\r\n /** 检测字段是否已被触碰 */\r\n private isFieldTouched(\r\n form: ArrayFormStoreItem,\r\n row: ArrayFormRow,\r\n fieldName: string\r\n ): boolean {\r\n // 整个表单已 touched(整个表单提交时)\r\n if (form.allTouched) {\r\n return true;\r\n }\r\n // 当前行已 touched(单行保存时)\r\n if (form.rowTouched[row.uid!]) {\r\n return true;\r\n }\r\n // 检测当前值与初始值是否不同\r\n const initialValue = form.initialSnapshot[row.uid!]?.[fieldName];\r\n const currentValue = row[fieldName];\r\n return !this.isEqual(initialValue, currentValue);\r\n }\r\n\r\n /** 校验指定行的指定字段,未修改时不显示校验状态 */\r\n validateFieldInRow(\r\n formName: string,\r\n row: ArrayFormRow,\r\n fieldName: string\r\n ): \"success\" | \"error\" | \"\" {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return \"\";\r\n }\r\n\r\n const fieldConfig = form.config.fields.find((f) => f.name === fieldName);\r\n if (!fieldConfig) {\r\n return \"\";\r\n }\r\n\r\n // 执行校验\r\n let result: ValidationResult = \"\";\r\n if (fieldConfig.validator) {\r\n result = fieldConfig.validator(row[fieldName], row, fieldName);\r\n }\r\n\r\n // 更新校验结果存储\r\n if (!form.validationResults) {\r\n form.validationResults = {};\r\n }\r\n if (!form.validationResults[row.uid!]) {\r\n form.validationResults[row.uid!] = {};\r\n }\r\n form.validationResults[row.uid!][fieldName] = result;\r\n\r\n // 如果字段未被触碰,不显示校验状态\r\n if (!this.isFieldTouched(form, row, fieldName)) {\r\n return \"\";\r\n }\r\n\r\n return result ? \"error\" : \"success\";\r\n }\r\n\r\n /** 获取指定行指定字段的校验错误信息 */\r\n getFieldErrorMessage(\r\n formName: string,\r\n row: ArrayFormRow,\r\n fieldName: string\r\n ): string {\r\n const form = this.formStore[formName];\r\n if (!form || !row.uid) {\r\n return \"\";\r\n }\r\n // 如果字段未被触碰,不显示错误信息\r\n if (!this.isFieldTouched(form, row, fieldName)) {\r\n return \"\";\r\n }\r\n return form.validationResults?.[row.uid]?.[fieldName] || \"\";\r\n }\r\n\r\n /** 校验指定行的所有字段 */\r\n validateRowAllFields(formName: string, row: ArrayFormRow): boolean {\r\n const form = this.formStore[formName];\r\n if (!form || !row.uid) {\r\n return true;\r\n }\r\n\r\n // 更新初始快照为当前值\r\n form.initialSnapshot[row.uid] = this.createRowSnapshot(\r\n row,\r\n form.config.fields\r\n );\r\n // 标记当前行为 touched(只影响当前行,不影响其他行)\r\n form.rowTouched[row.uid] = true;\r\n\r\n let hasError = false;\r\n\r\n form.config.fields.forEach((fieldConfig) => {\r\n const result = this.validateFieldInRow(formName, row, fieldConfig.name);\r\n if (result === \"error\") {\r\n hasError = true;\r\n }\r\n });\r\n\r\n return !hasError;\r\n }\r\n\r\n /** 自动更新外部数组引用 */\r\n private autoUpdateArrayReference(formName: string): void {\r\n const form = this.formStore[formName];\r\n if (!form || !form.config.targetObject || !form.config.arrayPropertyName) {\r\n return;\r\n }\r\n const newArray = form.data ? [...form.data] : [];\r\n // 更新目标对象的数组属性为新数组引用\r\n (form.config.targetObject as any)[form.config.arrayPropertyName] = newArray;\r\n }\r\n\r\n /** 是否有正在编辑的行 */\r\n hasEditingRow(formName: string): boolean {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return false;\r\n }\r\n return form.data.some((item) => item.isEdit);\r\n }\r\n\r\n // 销毁对应的表单\r\n destory(names: string[]): void {\r\n names.forEach((name) => {\r\n if (this.formStore[name]) {\r\n // 清理表单数据\r\n delete this.formStore[name];\r\n }\r\n });\r\n }\r\n\r\n // 重置表单数组\r\n resetFormArray(name: string): void {\r\n const form = this.formStore[name];\r\n if (!form) {\r\n return;\r\n }\r\n\r\n // 1. 清空数据数组\r\n form.data = [];\r\n\r\n // 2. 清理所有快照\r\n form.initialSnapshot = {};\r\n form.editingSnapshot = {};\r\n\r\n // 3. 清理校验结果\r\n form.validationResults = {};\r\n\r\n // 4. 重置 touched 状态\r\n form.allTouched = false;\r\n form.rowTouched = {};\r\n\r\n // 5. 如果配置了自动更新,更新外部数组引用\r\n this.autoUpdateArrayReference(name);\r\n }\r\n\r\n /** 批量设置表单数据(用于回填数据) */\r\n setFormData(formName: string, data: any[]): void {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return;\r\n }\r\n\r\n // 1. 初始化数据(添加 uid、isEdit 等字段)\r\n const initializedData = this.initializeData(data);\r\n\r\n // 2. 更新表单数据\r\n form.data = initializedData;\r\n\r\n // 3. 重新创建初始值快照\r\n form.initialSnapshot = {};\r\n initializedData.forEach((row) => {\r\n form.initialSnapshot[row.uid!] = this.createRowSnapshot(\r\n row,\r\n form.config.fields\r\n );\r\n });\r\n\r\n // 4. 清理编辑快照和校验结果\r\n form.editingSnapshot = {};\r\n form.validationResults = {};\r\n\r\n // 5. 重置 touched 状态\r\n form.allTouched = false;\r\n form.rowTouched = {};\r\n\r\n // 6. 如果配置了自动更新,更新外部数组引用\r\n this.autoUpdateArrayReference(formName);\r\n }\r\n}\r\n","/**\r\n * 自动检测 ant-modal-body 的宽度,并添加 narrow-width 类名\r\n * 当宽度小于 500px 时添加类名,否则移除\r\n */\r\nexport function initModalWidthDetector() {\r\n if (typeof window === 'undefined' || typeof document === 'undefined') {\r\n return;\r\n }\r\n\r\n // 检查单个元素的宽度\r\n function checkElementWidth(element: HTMLElement) {\r\n const width = element.offsetWidth;\r\n if (width < 500) {\r\n element.classList.add('narrow-width');\r\n } else {\r\n element.classList.remove('narrow-width');\r\n }\r\n }\r\n\r\n // 使用 MutationObserver 监听 DOM 变化\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n mutation.addedNodes.forEach((node) => {\r\n if (node.nodeType === Node.ELEMENT_NODE) {\r\n const element = node as HTMLElement;\r\n \r\n // 检查是否是 modal body\r\n if (element.classList?.contains('ant-modal-body')) {\r\n checkElementWidth(element);\r\n observeResize(element);\r\n }\r\n \r\n // 检查子元素中是否有 modal body\r\n const modalBodies = element.querySelectorAll?.('.ant-modal-body');\r\n modalBodies?.forEach((modalBody) => {\r\n checkElementWidth(modalBody as HTMLElement);\r\n observeResize(modalBody as HTMLElement);\r\n });\r\n }\r\n });\r\n });\r\n });\r\n\r\n // 使用 ResizeObserver 监听元素尺寸变化\r\n const resizeObserverMap = new WeakMap<HTMLElement, any>();\r\n \r\n function observeResize(element: HTMLElement) {\r\n if (resizeObserverMap.has(element)) {\r\n return;\r\n }\r\n\r\n if (typeof (window as any).ResizeObserver !== 'undefined') {\r\n const resizeObserver = new (window as any).ResizeObserver(() => {\r\n checkElementWidth(element);\r\n });\r\n resizeObserver.observe(element);\r\n resizeObserverMap.set(element, resizeObserver);\r\n }\r\n }\r\n\r\n // 开始监听 DOM 变化\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n\r\n // 检查已存在的 modal body\r\n document.querySelectorAll('.ant-modal-body').forEach((element) => {\r\n checkElementWidth(element as HTMLElement);\r\n observeResize(element as HTMLElement);\r\n });\r\n}\r\n","/*\r\n * Public API Surface of pro-table\r\n */\r\n\r\nexport * from \"./lib/pro-table.component\";\r\nexport * from \"./lib/pro-table.module\";\r\nexport * from \"./lib/constants\";\r\nexport * from \"./lib/type\";\r\nexport * from \"./lib/tokens\";\r\nexport * from \"./lib/plate-input/plate-prefix-load.service\";\r\nexport * from \"./lib/plate-input/plate-input.component\";\r\nexport * from \"./lib/plate-input/plate-input.module\";\r\nexport * from \"./lib/page-container/page-container.component\";\r\nexport * from \"./lib/page-container/page-container.module\";\r\nexport * from \"./lib/table-search-bar/table-search-bar.component\";\r\nexport * from \"./lib/table-search-bar/table-search-bar-module\";\r\nexport * from \"./lib/directives/trim-input.directive\";\r\nexport * from \"./lib/directives/trim-input.module\";\r\n\r\n// Export antd-form service and types\r\nexport { AntdFormService } from \"./lib/page-public/antd-form\";\r\nexport type {\r\n FieldErrorMessage,\r\n FieldErrorMessages,\r\n FieldConfig,\r\n FormModifyType,\r\n FormConfig,\r\n WatchOptions,\r\n AddFieldsConfigOptions,\r\n AddFieldsConfigResult,\r\n RemoveFieldsConfigOptions,\r\n RemoveFieldsConfigResult,\r\n} from \"./lib/page-public/antd-form\";\r\n\r\n// Export array-form service and types\r\nexport { ArrayFormService } from \"./lib/page-public/array-form\";\r\nexport type {\r\n ValidationResult,\r\n FieldValidator,\r\n FieldConfig as ArrayFieldConfig,\r\n ArrayFormRow,\r\n ArrayFormConfig,\r\n ArrayFormStoreItem,\r\n ArrayFormStore,\r\n} from \"./lib/page-public/array-form\";\r\n\r\n// Export modal width detector\r\nexport { initModalWidthDetector } from \"./lib/utils/modal-width-detector\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ColmunsSettingComponent as ɵa} from './lib/components/colmuns-setting/colmuns-setting.component';\nexport {DynamicSearchFieldComponent as ɵb} from './lib/components/dynamic-search-field/dynamic-search-field.component';"],"names":["InjectionToken","EventEmitter","isObservable","isEqual","hasIn","cloneDeep","isNil","debounce","Component","Optional","Inject","Input","Output","ContentChild","ContentChildren","TemplateRef","NgModule","CommonModule","FormsModule","HttpClientModule","RouterModule","NzCardModule","ReactiveFormsModule","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectorRef","ElementRef","Directive","NgControl","HostListener","NzGridModule","NzInputModule","NzPopoverModule","NzIconModule","NzSpaceModule","Sortable","ViewChild","ComponentFactoryResolver","ViewContainerRef","NzFormModule","NzSelectModule","NzButtonModule","NzTableModule","NzDatePickerModule","NzModalModule","NzCheckboxModule","NzTypographyModule","DragDropModule","NzAutocompleteModule","NzInputNumberModule","NzToolTipModule","Injectable","HttpClient","FormGroup","debounceTime","distinctUntilChanged","FormBuilder","uuidv4"],"mappings":"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"}
1
+ {"version":3,"file":"yibozhang-pro-table.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.mjs","../../../pro-table/src/lib/constants.ts","../../../pro-table/src/lib/tokens.ts","../../../pro-table/src/lib/pro-table.component.ts","../../../pro-table/src/lib/page-container/page-container.component.ts","../../../pro-table/src/lib/page-container/page-container.module.ts","../../../pro-table/src/lib/plate-input/plate-input.component.ts","../../../pro-table/src/lib/directives/trim-input.directive.ts","../../../pro-table/src/lib/directives/trim-input.module.ts","../../../pro-table/src/lib/plate-input/plate-input.module.ts","../../../pro-table/src/lib/table-search-bar/table-search-bar.component.ts","../../../pro-table/src/lib/table-search-bar/table-search-bar-module.ts","../../../pro-table/src/lib/components/colmuns-setting/colmuns-setting.component.ts","../../../pro-table/src/lib/components/dynamic-search-field/dynamic-search-field.component.ts","../../../pro-table/src/lib/pro-table.module.ts","../../../pro-table/src/lib/plate-input/plate-prefix-load.service.ts","../../../pro-table/src/lib/page-public/antd-form.ts","../../../pro-table/src/lib/page-public/array-form.ts","../../../pro-table/src/lib/utils/modal-width-detector.ts","../../../pro-table/src/public-api.ts","../../../pro-table/src/yibozhang-pro-table.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import {\r\n InputFieldProps,\r\n InputPlateFieldProps,\r\n SelectFieldProps,\r\n SelectMultipleFieldProps,\r\n DateFieldProps,\r\n CheckboxFieldProps,\r\n AutoCompleteFieldProps,\r\n CustomFieldProps,\r\n InputNumberFieldProps,\r\n} from \"./type\";\r\n\r\nexport const PRO_TABLE_DEFAULT_PROPS: {\r\n input: InputFieldProps;\r\n inputPlate: InputPlateFieldProps;\r\n select: SelectFieldProps;\r\n selectMultiple: SelectMultipleFieldProps;\r\n date: DateFieldProps;\r\n checkbox: CheckboxFieldProps;\r\n autoComplete: AutoCompleteFieldProps;\r\n custom: CustomFieldProps;\r\n inputNumber: InputNumberFieldProps;\r\n} = {\r\n input: {\r\n name: \"\",\r\n placeHolder: \"\",\r\n disabled: false,\r\n label: \"\",\r\n value: \"\",\r\n },\r\n select: {\r\n name: \"\",\r\n options: [],\r\n disabled: false,\r\n label: \"\",\r\n value: \"\",\r\n allowClear: true,\r\n placeHolder: \"\",\r\n },\r\n selectMultiple: {\r\n name: \"\",\r\n options: [],\r\n disabled: false,\r\n label: \"\",\r\n value: [],\r\n allowClear: true,\r\n placeHolder: \"请选择\",\r\n },\r\n inputPlate: {\r\n name: \"\",\r\n label: \"\",\r\n value: \"\",\r\n },\r\n checkbox: {\r\n name: \"\",\r\n options: [],\r\n disabled: false,\r\n label: \"\",\r\n value: [],\r\n noStyle: false,\r\n },\r\n date: {\r\n name: \"\",\r\n disabled: false,\r\n label: \"\",\r\n value: \"\",\r\n allowClear: true,\r\n placeHolder: \"请选择\",\r\n showTime: false,\r\n format: \"yyyy-MM-dd\",\r\n mode: \"date\",\r\n },\r\n autoComplete: {\r\n name: \"\",\r\n disabled: false,\r\n placeHolder: \"请输入\",\r\n label: \"\",\r\n value: \"\",\r\n dataSource: () => [],\r\n backFill: false,\r\n defaultActiveFirstOption: false,\r\n returnFullData: false,\r\n },\r\n inputNumber: {\r\n name: \"\",\r\n disabled: false,\r\n label: \"\",\r\n value: \"\",\r\n placeHolder: \"请输入\",\r\n min: 0,\r\n max: 100,\r\n precision: 0,\r\n formatterPercent: (value: number) => `${value}`,\r\n parserPercent: (value: string) => value,\r\n },\r\n custom: {\r\n name: \"\",\r\n value: null,\r\n label: \"\",\r\n },\r\n};\r\n\r\nexport const PRO_TABLE_DEFAULT_COLUMN = {\r\n width: \"\",\r\n align: \"left\",\r\n fixedLeft: false,\r\n fixedRight: false,\r\n auxiliaryColumn: false,\r\n ellipsis:false\r\n};\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport interface ProTableRemoteColumnService {\r\n /**\r\n * 查询当前表的列配置\r\n */\r\n getCol: (tableName: string, multiRow?: boolean) => Promise<any>;\r\n /**\r\n * 写入列配置\r\n */\r\n setCol?: (\r\n tableName: string,\r\n columns: Array<{\r\n field: string;\r\n isShow: boolean;\r\n header: string;\r\n sortName?: string | null;\r\n }>,\r\n multiRow?: boolean\r\n ) => Promise<any> | Observable<any>;\r\n}\r\n\r\nexport const PRO_TABLE_COLUMN_REMOTE = new InjectionToken<ProTableRemoteColumnService | null>(\r\n \"PRO_TABLE_COLUMN_REMOTE\"\r\n);\r\n\r\n/**\r\n * 车牌前缀选项接口\r\n */\r\nexport interface PlatePrefixOption {\r\n label: string;\r\n value: string;\r\n}\r\n\r\n/**\r\n * 车牌前缀加载服务接口\r\n */\r\nexport interface PlatePrefixLoadService {\r\n /**\r\n * 加载车牌前缀选项列表\r\n */\r\n loadPrefixOptions(): Promise<PlatePrefixOption[]>;\r\n}\r\n\r\nexport const PLATE_PREFIX_LOAD_SERVICE = new InjectionToken<PlatePrefixLoadService>(\r\n \"PLATE_PREFIX_LOAD_SERVICE\"\r\n);\r\n\r\n","import {\r\n AfterContentInit,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\nimport { cloneDeep, hasIn, isNil, debounce, isEqual } from \"lodash-es\";\r\nimport { PRO_TABLE_DEFAULT_COLUMN, PRO_TABLE_DEFAULT_PROPS } from \"./constants\";\r\nimport {\r\n AutoCompleteFieldProps,\r\n CheckboxFieldProps,\r\n OptionsType,\r\n ProTableColumn,\r\n ProTablePageInfo,\r\n ProTableRequestResult,\r\n ProTableValuesChange,\r\n SelectFieldProps,\r\n} from \"./type\";\r\nimport { PRO_TABLE_COLUMN_REMOTE, ProTableRemoteColumnService } from \"./tokens\";\r\nimport { isObservable } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"app-pro-table\",\r\n templateUrl: \"./pro-table.component.html\",\r\n styleUrls: [\"./pro-table.component.less\"],\r\n})\r\nexport class ProTableComponent implements OnInit, AfterContentInit {\r\n @Input() showSearchBtn: boolean = true;\r\n\r\n @Input() showClearBtn: boolean = true;\r\n\r\n @Input() title: string | null = null;\r\n\r\n @Input() tableName: string = \"\";\r\n\r\n @Input() multiRow: boolean = false;\r\n\r\n @Input() columns: ProTableColumn[] = [];\r\n\r\n @Input() showSearchBar: boolean = true;\r\n\r\n @Input() showActionBar: boolean = true;\r\n\r\n @Input() confirmBtnText: string = \"查询\";\r\n\r\n @Input() clearBtnText: string = \"清空\";\r\n\r\n @Input() labelWidth: string = \"90px\";\r\n\r\n @Input() labelAlign: string = \"right\";\r\n\r\n @Input() formItemWidth: string = \"270px\";\r\n\r\n @Input() dataSource: any[] = [];\r\n\r\n @Input() bordered: boolean = true;\r\n\r\n @Input() outerBordered: boolean = true;\r\n\r\n @Input() showPagination: boolean = true;\r\n\r\n @Input() frontPagination: boolean = false;\r\n\r\n @Input() scroll: { x?: string | number; y?: string | number } | null = null;\r\n\r\n @Input() request: (params: any) => Promise<ProTableRequestResult>;\r\n\r\n @Input() summaryData: Record<string, any> | null = null;\r\n\r\n // 排序模式:local 本地排序;server 在线排序(提交给接口)\r\n @Input() sortMode: \"local\" | \"server\" = \"local\";\r\n\r\n @Input() showColumnSetting: boolean = false;\r\n\r\n // 是否开启多列排序(默认单列)\r\n @Input() multipleSort: boolean = false;\r\n\r\n @Input() showCheckbox: boolean = false;\r\n\r\n // 判断行是否禁用的函数\r\n @Input() rowDisabled: (data: any) => boolean = () => false;\r\n\r\n // 是否自动触发请求\r\n @Input() autoTriggerRequest: boolean = true;\r\n\r\n @Input() customTableRender?: TemplateRef<any>;\r\n\r\n @Output() onRowClick = new EventEmitter<any>();\r\n\r\n @Output() onRowDbClick = new EventEmitter<any>();\r\n\r\n @Output() onValuesChange = new EventEmitter<ProTableValuesChange>();\r\n\r\n @Output() onResetFormBeforeReload = new EventEmitter<any>();\r\n\r\n @ContentChild(\"actionBar\") actionBarTpl!: TemplateRef<any>;\r\n\r\n @ContentChild(\"ImgActionBar\") imgActionBarTpl!: TemplateRef<any>;\r\n\r\n @ContentChildren(TemplateRef) allTemplates!: QueryList<TemplateRef<any>>;\r\n\r\n private _savedSearchParams: any = {};\r\n\r\n // 存储所有自定义模板的引用\r\n private customTemplates = new Map<string, TemplateRef<any>>();\r\n\r\n // 记录各列排序状态:'ascend' | 'descend' | null\r\n\r\n private _sortMap: Record<string, \"ascend\" | \"descend\" | null> = {};\r\n\r\n // 记录多列排序的优先级(后设置的优先)\r\n private _sortPriority: string[] = [];\r\n\r\n // 存储每个 autoComplete 字段的防抖函数\r\n private _autoCompleteDebounceMap: Map<string, (event: Event) => void> =\r\n new Map();\r\n\r\n // 仅在初始化时运行列配置预检查,避免后续调用重复触发\r\n private _preCheckDone: boolean = false;\r\n\r\n _columns: ProTableColumn[] = [];\r\n\r\n // 筛选表单数据存储\r\n _searchParams: any = {};\r\n\r\n // 筛选表单list渲染数据\r\n _searchFiledColumns: ProTableColumn[] = [];\r\n\r\n _pageInfo: ProTablePageInfo = {\r\n pageIndex: 1,\r\n pageSize: 15,\r\n total: 100,\r\n pageSizeOptions: [10, 15, 20, 50, 100, 500, 1000],\r\n };\r\n\r\n _loading: boolean = false;\r\n\r\n _selectedTableRow: any = null;\r\n\r\n // 选中的行数据(用于复选框选择)- 保留用于兼容性\r\n _selectedRows: any[] = [];\r\n\r\n // 使用 Set 存储选中项的 ID,支持跨页选中\r\n private _selectedRowIds = new Set<string | number>();\r\n\r\n // 全选状态\r\n _checkedAll: boolean = false;\r\n\r\n // 半选状态(部分选中)\r\n _indeterminate: boolean = false;\r\n\r\n // 远程columns\r\n _serverColumns: ProTableColumn[] = [];\r\n\r\n // 存储 autoComplete 字段的数据源\r\n _autoCompleteDataSources: Record<string, any[]> = {};\r\n\r\n constructor(\r\n @Optional()\r\n @Inject(PRO_TABLE_COLUMN_REMOTE)\r\n private columnRemote: ProTableRemoteColumnService | null\r\n ) {}\r\n\r\n private async fetchRemoteColumns() {\r\n if (!this.columnRemote?.getCol || !this.tableName) {\r\n return null;\r\n }\r\n try {\r\n const res = await this.columnRemote.getCol(this.tableName, this.multiRow);\r\n return res;\r\n } catch (error) {\r\n return null;\r\n }\r\n }\r\n\r\n private async persistRemoteColumns(columns: any[]) {\r\n if (!this.columnRemote?.setCol || !this.tableName) {\r\n return null;\r\n }\r\n try {\r\n const result = this.columnRemote.setCol(\r\n this.tableName,\r\n columns,\r\n this.multiRow\r\n );\r\n if (result && isObservable(result)) {\r\n return await result.toPromise();\r\n }\r\n return result;\r\n } catch (error) {\r\n return null;\r\n }\r\n }\r\n\r\n async ngOnInit(): Promise<void> {\r\n this._searchParams = {};\r\n this.formateInnerColumns(this.columns);\r\n await this.setSearchParams(this.columns);\r\n\r\n // 使用 Proxy 包装 _searchParams,拦截表单项值变化并向外发出事件\r\n this._searchParams = this.createSearchParamsProxy(this._searchParams);\r\n if (this.autoTriggerRequest) {\r\n this.handleQuery();\r\n }\r\n this.queryDynamicColumns();\r\n }\r\n\r\n ngAfterContentInit() {\r\n // 自动注册所有自定义模板\r\n // 注意:此时所有 ContentChild 和 ContentChildren 都已初始化完成\r\n this.autoRegisterTemplates();\r\n }\r\n\r\n private async preCheckServerColumns(): Promise<boolean> {\r\n const res = await this.fetchRemoteColumns();\r\n if (!res) return false;\r\n const initColumns = this.columns\r\n .filter((col) => !col.auxiliaryColumn)\r\n .map((column) => {\r\n return {\r\n field: column.prop,\r\n isShow: !column.hideInTable, // 默认全部显示\r\n header: column.title,\r\n sortName: column.sortName || null,\r\n };\r\n });\r\n if (res.code === 0) {\r\n if (!isEqual(res.data.tabColumn, initColumns)) {\r\n const initRes = await this.persistRemoteColumns(initColumns);\r\n if (initRes) {\r\n this.queryDynamicColumns();\r\n }\r\n\r\n return false;\r\n } else {\r\n console.log(\"一致\");\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private async queryDynamicColumns() {\r\n if (!this.tableName || !this.columnRemote) return;\r\n if (!this._preCheckDone) {\r\n const checkResult = await this.preCheckServerColumns();\r\n this._preCheckDone = true;\r\n if (!checkResult) return;\r\n }\r\n const res = await this.fetchRemoteColumns();\r\n if (!res) return;\r\n if (res.code === 0) {\r\n const _tabColumn = res.data.tabColumn.map((item) => {\r\n return {\r\n title: item.header,\r\n prop: item.field,\r\n sortName: item.sortName,\r\n hideInTable: !item.isShow,\r\n };\r\n });\r\n this._serverColumns = _tabColumn;\r\n this.updateTableColumns(_tabColumn);\r\n } else if (res.code === 10) {\r\n // 如果未设置接口返回,需要默认调用一次修改函数初始化数据\r\n const initColumns = this.columns\r\n .filter((col) => !col.auxiliaryColumn)\r\n .map((column) => {\r\n return {\r\n field: column.prop,\r\n isShow: true, // 默认全部显示\r\n header: column.title,\r\n sortName: column.sortName || null,\r\n };\r\n });\r\n\r\n // 调用修改接口初始化数据\r\n const initRes = await this.persistRemoteColumns(initColumns);\r\n if (initRes) {\r\n this.queryDynamicColumns();\r\n }\r\n }\r\n }\r\n\r\n private formateInnerColumns(columns: ProTableColumn[]) {\r\n this._columns = columns\r\n .filter((item) => !item.hideInTable)\r\n .map((item) => {\r\n return { ...PRO_TABLE_DEFAULT_COLUMN, ...item } as ProTableColumn;\r\n });\r\n }\r\n\r\n // 自动注册模板的方法\r\n private autoRegisterTemplates() {\r\n // 获取所有模板\r\n const allTemplatesArray = this.allTemplates.toArray();\r\n\r\n // 获取所有需要自定义模板的列\r\n const columnsWithCustomRender = this._columns.filter(\r\n (col) => col.customRender\r\n );\r\n\r\n // 获取所有需要自定义label模板的列(使用原始columns,确保顺序正确)\r\n const columnsWithCustomLabel = this.columns.filter(\r\n (col) => col.customLabelRender\r\n );\r\n\r\n // 计算需要的模板总数\r\n const customRenderCount = columnsWithCustomRender.length;\r\n const totalNeededTemplates = customRenderCount + columnsWithCustomLabel.length;\r\n\r\n // 识别并排除特殊模板(actionBar 和 imgActionBar)\r\n const specialTemplateIndices = new Set<number>();\r\n \r\n // 尝试找到 actionBarTpl 在 allTemplatesArray 中的位置\r\n if (this.actionBarTpl) {\r\n const actionBarIndex = this.findTemplateIndex(allTemplatesArray, this.actionBarTpl);\r\n if (actionBarIndex !== -1) {\r\n specialTemplateIndices.add(actionBarIndex);\r\n }\r\n }\r\n \r\n // 尝试找到 imgActionBarTpl 在 allTemplatesArray 中的位置\r\n if (this.imgActionBarTpl) {\r\n const imgActionBarIndex = this.findTemplateIndex(allTemplatesArray, this.imgActionBarTpl);\r\n if (imgActionBarIndex !== -1) {\r\n specialTemplateIndices.add(imgActionBarIndex);\r\n }\r\n }\r\n\r\n // 如果无法通过引用找到特殊模板,使用备用策略\r\n // 备用策略:假设最后的模板是特殊模板\r\n const specialTemplateCount = (this.actionBarTpl ? 1 : 0) + (this.imgActionBarTpl ? 1 : 0);\r\n if (specialTemplateIndices.size === 0 && specialTemplateCount > 0) {\r\n for (let i = allTemplatesArray.length - specialTemplateCount; i < allTemplatesArray.length; i++) {\r\n specialTemplateIndices.add(i);\r\n }\r\n }\r\n\r\n // 提取列模板(排除特殊模板)\r\n const columnTemplates: TemplateRef<any>[] = [];\r\n allTemplatesArray.forEach((tpl, index) => {\r\n if (!specialTemplateIndices.has(index)) {\r\n columnTemplates.push(tpl);\r\n }\r\n });\r\n\r\n // 验证模板数量\r\n if (columnTemplates.length !== totalNeededTemplates) {\r\n console.warn(\r\n `ProTable: 模板数量不匹配!需要 ${totalNeededTemplates} 个列模板,实际有 ${columnTemplates.length} 个。请检查 customRender 和 customLabelRender 配置。`\r\n );\r\n }\r\n\r\n // 注册自定义渲染模板\r\n columnsWithCustomRender.forEach((column, index) => {\r\n const templateName = column.customRender!;\r\n if (index < columnTemplates.length) {\r\n this.customTemplates.set(templateName, columnTemplates[index]);\r\n } else {\r\n console.error(`ProTable: 未找到模板 \"${templateName}\",索引 ${index} 超出范围`);\r\n }\r\n });\r\n\r\n // 注册自定义label模板(从 customRenderCount 之后开始)\r\n columnsWithCustomLabel.forEach((column, index) => {\r\n const templateName = column.customLabelRender!;\r\n const templateIndex = customRenderCount + index;\r\n if (templateIndex < columnTemplates.length) {\r\n this.customTemplates.set(templateName, columnTemplates[templateIndex]);\r\n } else {\r\n console.error(`ProTable: 未找到label模板 \"${templateName}\",索引 ${templateIndex} 超出范围`);\r\n }\r\n });\r\n }\r\n\r\n // 尝试在数组中找到模板的索引(使用多种比较方式)\r\n private findTemplateIndex(templates: TemplateRef<any>[], target: TemplateRef<any>): number {\r\n // 方法1:引用相等性\r\n let index = templates.indexOf(target);\r\n if (index !== -1) return index;\r\n\r\n // 方法2:通过 elementRef 比较\r\n try {\r\n const targetElementRef = (target as any).elementRef;\r\n if (targetElementRef) {\r\n for (let i = 0; i < templates.length; i++) {\r\n const tplElementRef = (templates[i] as any).elementRef;\r\n if (tplElementRef === targetElementRef) {\r\n return i;\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n // 忽略错误\r\n }\r\n\r\n // 方法3:通过 Angular 内部属性比较\r\n try {\r\n const targetContainer = (target as any)._declarationTContainer;\r\n if (targetContainer) {\r\n for (let i = 0; i < templates.length; i++) {\r\n const tplContainer = (templates[i] as any)._declarationTContainer;\r\n if (tplContainer === targetContainer) {\r\n return i;\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n // 忽略错误\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n // 设置筛选表单默认属性\r\n private setSearchFormDefaultProp(columns: ProTableColumn[]) {\r\n columns.forEach((item) => {\r\n if (item.valueType) {\r\n if (item.fieldProps) {\r\n item.fieldProps = {\r\n ...PRO_TABLE_DEFAULT_PROPS[item.valueType],\r\n ...item.fieldProps,\r\n };\r\n } else {\r\n item.fieldProps = { ...PRO_TABLE_DEFAULT_PROPS[item.valueType] };\r\n }\r\n }\r\n });\r\n }\r\n\r\n // 动态设置Options\r\n private setSelectRequest(columns: ProTableColumn[]) {\r\n columns.map(async (item) => {\r\n if (item.fieldProps && hasIn(item.fieldProps, \"request\")) {\r\n try {\r\n const options = await (\r\n item.fieldProps as SelectFieldProps\r\n ).request?.();\r\n (item.fieldProps as SelectFieldProps).options = options;\r\n } catch (error) {\r\n (item.fieldProps as SelectFieldProps).options = [];\r\n }\r\n }\r\n });\r\n }\r\n\r\n private async setSearchParams(columns: ProTableColumn[]) {\r\n this._searchFiledColumns = [];\r\n columns\r\n .filter((item) => {\r\n const flag = !item.hideInSearch && item.valueType;\r\n if (flag) {\r\n this._searchFiledColumns.push(cloneDeep(item));\r\n }\r\n return flag;\r\n })\r\n .forEach((column) => {\r\n const key = column.fieldProps?.name || column.prop;\r\n let defaultValue = PRO_TABLE_DEFAULT_PROPS[column.valueType].value;\r\n\r\n // 对于checkbox类型,从options中找出checked为true的项作为默认值\r\n if (column.valueType === \"checkbox\") {\r\n const checkedValues = (column.fieldProps?.options || [])\r\n .filter((opt: OptionsType) => opt.checked)\r\n .map((opt: OptionsType) => opt.value);\r\n this._searchParams[key] =\r\n checkedValues.length > 0 ? checkedValues : defaultValue;\r\n } else {\r\n this._searchParams[key] = column.fieldProps?.value || defaultValue;\r\n }\r\n\r\n // 初始化 autoComplete 数据源\r\n if (column.valueType === \"autoComplete\") {\r\n this._autoCompleteDataSources[key] = [];\r\n }\r\n });\r\n\r\n // 根据列的 order 字段进行排序,未设置 order 的放在最后\r\n this._searchFiledColumns.sort((a: any, b: any) => {\r\n const aOrder = isNil(a?.order) ? Number.MAX_SAFE_INTEGER : a.order;\r\n const bOrder = isNil(b?.order) ? Number.MAX_SAFE_INTEGER : b.order;\r\n if (aOrder === bOrder) return 0;\r\n return aOrder - bOrder;\r\n });\r\n\r\n this.setSearchFormDefaultProp(this._searchFiledColumns);\r\n\r\n // 并发加载所有需要异步获取的选项\r\n this.setSelectRequest(this._searchFiledColumns);\r\n }\r\n\r\n private updateTableColumns(injectColumns: ProTableColumn[]) {\r\n // 1. 使用最原始的columns作为数据源,确保辅助列完全不受影响\r\n const originalColumns = cloneDeep(this.columns);\r\n\r\n // 2. 处理字段映射(如果提供了fields参数)\r\n let processedInjectColumns = injectColumns;\r\n\r\n // 3. 分离辅助列和非辅助列(使用原始数据)\r\n const nonAuxiliaryColumns = originalColumns.filter(\r\n (col) => !col.auxiliaryColumn\r\n );\r\n\r\n // 4. 按照injectColumns的顺序重新排列非辅助列\r\n const reorderedNonAuxiliaryColumns: ProTableColumn[] = [];\r\n const remainingNonAuxiliaryColumns = [...nonAuxiliaryColumns]; // 复制一份用于查找和移除\r\n\r\n processedInjectColumns.forEach((injectCol) => {\r\n // 查找非辅助列中对应的下标\r\n const existingColIndex = remainingNonAuxiliaryColumns.findIndex(\r\n (col) => col.prop === injectCol.prop\r\n );\r\n if (existingColIndex !== -1) {\r\n // 如果找到相同列,用injectColumns中的属性覆盖原始columns中的属性\r\n const existingCol = remainingNonAuxiliaryColumns[existingColIndex];\r\n\r\n const updatedCol = { ...existingCol, ...injectCol };\r\n reorderedNonAuxiliaryColumns.push(updatedCol);\r\n // 从剩余数组中移除,避免重复\r\n remainingNonAuxiliaryColumns.splice(existingColIndex, 1);\r\n } else {\r\n // 如果没找到对应的列,直接添加injectColumns中的列\r\n reorderedNonAuxiliaryColumns.push(injectCol);\r\n }\r\n });\r\n\r\n // 5. 处理剩余的原始columns中的非辅助列(在injectColumns中未出现的列)\r\n // 这些列应该被隐藏(设置hideInTable为true)\r\n remainingNonAuxiliaryColumns.forEach((remainingCol) => {\r\n const hiddenCol = { ...remainingCol, hideInTable: true };\r\n reorderedNonAuxiliaryColumns.push(hiddenCol);\r\n });\r\n\r\n // 6. 按照原始columns的顺序重新组合:保持辅助列的原始位置和属性\r\n const finalColumns: ProTableColumn[] = [];\r\n let nonAuxiliaryIndex = 0;\r\n let auxiliaryIndex = 0;\r\n\r\n originalColumns.forEach((originalCol) => {\r\n if (originalCol.auxiliaryColumn) {\r\n // 如果是辅助列,使用原始列数据,完全不进行任何修改\r\n finalColumns.push(originalCol);\r\n auxiliaryIndex++;\r\n } else {\r\n // 如果是非辅助列,使用重新排序后的列,但保留原始列的所有属性\r\n const reorderedCol = reorderedNonAuxiliaryColumns[nonAuxiliaryIndex];\r\n if (reorderedCol) {\r\n // 合并原始列和重新排序后的列,确保保留所有原始属性\r\n const mergedCol = { ...originalCol, ...reorderedCol };\r\n finalColumns.push(mergedCol);\r\n } else {\r\n // 如果重新排序后的列不存在,使用原始列\r\n finalColumns.push(originalCol);\r\n }\r\n nonAuxiliaryIndex++;\r\n }\r\n });\r\n this.formateInnerColumns(finalColumns);\r\n }\r\n\r\n // 通过 Proxy 监听 _searchParams 的属性变更\r\n private createSearchParamsProxy(target: any) {\r\n const self = this;\r\n const handler: ProxyHandler<any> = {\r\n set(obj: any, prop: string | symbol, value: any) {\r\n const key = String(prop);\r\n const oldVal = obj[key];\r\n if (oldVal === value) {\r\n obj[key] = value;\r\n return true;\r\n }\r\n obj[key] = value;\r\n try {\r\n self.onValuesChange.emit({\r\n key,\r\n value,\r\n params: self.getSearchParams(),\r\n });\r\n } catch (e) {}\r\n return true;\r\n },\r\n };\r\n return new Proxy(target, handler);\r\n }\r\n\r\n private clearEmptySearchParams() {\r\n const cloneSearchParams = cloneDeep(this._searchParams);\r\n return cloneSearchParams;\r\n }\r\n\r\n private buildServerSortPayload() {\r\n // 构建激活排序集合(按优先级从低到高,末尾优先)\r\n const activeKeys = this._sortPriority.filter((k) => !!this._sortMap[k]);\r\n if (activeKeys.length === 0) return null;\r\n const sorts = activeKeys.map((field) => {\r\n // 查找对应的列配置,优先使用sortName字段\r\n const column = this._columns.find((col) => col.prop === field);\r\n const sortField = column?.sortName || field;\r\n return {\r\n field: sortField,\r\n order: this._sortMap[field]!,\r\n };\r\n });\r\n if (this.multipleSort) {\r\n return sorts; // 以数组形式提交多列排序\r\n }\r\n const [first] = sorts;\r\n return first; // 兼容单列结构 { field, order }\r\n }\r\n\r\n private sortDataSourceInPlace() {\r\n if (!Array.isArray(this.dataSource) || this.dataSource.length === 0) return;\r\n const activeKeys = this._sortPriority.filter((k) => !!this._sortMap[k]);\r\n if (activeKeys.length === 0) return;\r\n\r\n // 复制一份优先级,从前到后优先级从低到高(最后设置的字段优先)\r\n const keysInPriority = [...activeKeys];\r\n this.dataSource.sort((a: any, b: any) => {\r\n for (let i = keysInPriority.length - 1; i >= 0; i--) {\r\n const field = keysInPriority[i];\r\n const order = this._sortMap[field]!;\r\n const av = a?.[field];\r\n const bv = b?.[field];\r\n const cmp = this.compareValues(av, bv);\r\n if (cmp !== 0) return order === \"ascend\" ? cmp : -cmp;\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n private compareValues(aVal: any, bVal: any): number {\r\n if (aVal == null && bVal == null) return 0;\r\n if (aVal == null) return -1;\r\n if (bVal == null) return 1;\r\n if (aVal instanceof Date && bVal instanceof Date) {\r\n return aVal.getTime() - bVal.getTime();\r\n }\r\n if (typeof aVal === \"boolean\" && typeof bVal === \"boolean\") {\r\n return aVal === bVal ? 0 : aVal ? 1 : -1;\r\n }\r\n if (typeof aVal === \"number\" && typeof bVal === \"number\") {\r\n return aVal - bVal;\r\n }\r\n if (typeof aVal === \"string\" && typeof bVal === \"string\") {\r\n return aVal.localeCompare(bVal);\r\n }\r\n const aNum = Number(aVal);\r\n const bNum = Number(bVal);\r\n if (!isNaN(aNum) && !isNaN(bNum)) return aNum - bNum;\r\n return String(aVal).localeCompare(String(bVal));\r\n }\r\n\r\n // 执行 autoComplete 数据源查询(实际执行逻辑)\r\n private executeAutoCompleteDataSource(event: Event, column: ProTableColumn) {\r\n const fieldKey = column.fieldProps?.name || column.prop;\r\n\r\n if (\r\n (column.fieldProps as AutoCompleteFieldProps).dataSource &&\r\n typeof (column.fieldProps as AutoCompleteFieldProps).dataSource ===\r\n \"function\"\r\n ) {\r\n try {\r\n const result = (column.fieldProps as AutoCompleteFieldProps).dataSource(\r\n event\r\n );\r\n // 如果返回的是 Promise,处理异步结果\r\n if (result instanceof Promise) {\r\n result\r\n .then((data) => {\r\n this._autoCompleteDataSources[fieldKey] = data || [];\r\n })\r\n .catch((error) => {\r\n console.error(\"AutoComplete dataSource error:\", error);\r\n this._autoCompleteDataSources[fieldKey] = [];\r\n });\r\n } else {\r\n // 同步返回结果\r\n this._autoCompleteDataSources[fieldKey] = result || [];\r\n }\r\n } catch (error) {\r\n console.error(\"AutoComplete dataSource error:\", error);\r\n this._autoCompleteDataSources[fieldKey] = [];\r\n }\r\n }\r\n }\r\n\r\n public getSearchParams(options?: {\r\n useSaved?: boolean; // 使用最近一次查询提交的参数,默认为 false;false 为当前表单值\r\n }): any {\r\n const { useSaved = false } = options || {};\r\n const rawParams = useSaved ? this._savedSearchParams : this._searchParams;\r\n const params = cloneDeep(rawParams || {});\r\n\r\n return {\r\n params,\r\n pageInfo: {\r\n pageIndex: this._pageInfo.pageIndex,\r\n pageSize: this._pageInfo.pageSize,\r\n },\r\n // 在线排序模式:把排序对象提交给接口\r\n ...(this.sortMode === \"server\"\r\n ? { sort: this.buildServerSortPayload() }\r\n : {}),\r\n };\r\n }\r\n\r\n public reload(afterDelete?: boolean) {\r\n this.handleQuery(afterDelete);\r\n }\r\n\r\n public setFieldsValue(fields: Record<string, any>) {\r\n Object.keys(fields).forEach((k) => {\r\n this._searchParams[k] = fields[k]; // 保留 Proxy,逐项赋值触发拦截\r\n });\r\n }\r\n\r\n public setFieldValue(key: string, value: any) {\r\n this._searchParams[key] = value;\r\n }\r\n\r\n public clearSelectedRow() {\r\n this._selectedTableRow = null;\r\n }\r\n\r\n public async setColumns(\r\n columns: ProTableColumn[],\r\n options?: {\r\n reload?: boolean; // 是否重新加载数据,默认为 false\r\n }\r\n ): Promise<void> {\r\n // 更新 columns 输入属性\r\n this.columns = cloneDeep(columns);\r\n\r\n // 重新格式化内部列\r\n this.formateInnerColumns(this.columns);\r\n\r\n // 重新设置搜索参数(异步操作)\r\n // 先清空旧的搜索参数,避免旧数据残留\r\n this._searchParams = {};\r\n await this.setSearchParams(this.columns);\r\n\r\n // 重新创建 Proxy,确保表单项值变化能正常触发事件\r\n this._searchParams = this.createSearchParamsProxy(this._searchParams);\r\n\r\n // 重新注册模板(如果组件已经初始化完成)\r\n if (this.allTemplates) {\r\n this.autoRegisterTemplates();\r\n }\r\n\r\n // 如果设置了 reload 选项为 true,则重新查询数据\r\n if (options?.reload === true) {\r\n this.handleQuery();\r\n }\r\n }\r\n\r\n public getSelectedRowData<T = any>(): T {\r\n return this._selectedTableRow;\r\n }\r\n\r\n public getCheckedRows<T = any>(): T[] {\r\n if (!this.showCheckbox) {\r\n return [];\r\n }\r\n // 返回当前数据源中所有 checked 为 true 的项\r\n // 注意:如果需要获取所有页的选中项,需要遍历所有数据源或使用 _selectedRowIds\r\n return this.dataSource.filter((row) => row.checked === true) as T[];\r\n }\r\n\r\n // 获取指定名称的模板\r\n getTemplate(name: string | undefined): TemplateRef<any> | null {\r\n if (!name) return null;\r\n return this.customTemplates.get(name) || null;\r\n }\r\n\r\n getToolTipTextValue(column: ProTableColumn, data: any): string {\r\n const key =\r\n column.customRender && this.getTemplate(column.customRender)\r\n ? \"\"\r\n : column.ellipsis\r\n ? column.prop\r\n : \"\";\r\n return !key ? \"\" : data[key];\r\n }\r\n\r\n getTableRowChecked(data: any) {\r\n // 启用复选框时:行高亮应与复选框选中状态一致(支持多选)\r\n if (this.showCheckbox) {\r\n return this.isRowChecked(data);\r\n }\r\n // 未启用复选框时:仍然使用单选行高亮\r\n if (!this._selectedTableRow) return false;\r\n return JSON.stringify(this._selectedTableRow) === JSON.stringify(data);\r\n }\r\n\r\n // 检查行是否被禁用\r\n isRowDisabled(data: any): boolean {\r\n if (!this.showCheckbox) return false;\r\n return this.rowDisabled ? this.rowDisabled(data) : false;\r\n }\r\n\r\n // 检查行是否被复选框选中(数据驱动模式)\r\n isRowChecked(data: any): boolean {\r\n if (!this.showCheckbox) return false;\r\n // 直接读取数据对象的 checked 属性\r\n return data.checked === true;\r\n }\r\n\r\n // 切换行的选中状态(数据驱动模式,保留用于兼容)\r\n toggleRowChecked(data: any, checked: boolean, event?: Event) {\r\n if (event) {\r\n event.stopPropagation(); // 阻止事件冒泡,避免触发行点击\r\n }\r\n // 如果行被禁用,不允许切换选中状态\r\n if (this.isRowDisabled(data)) {\r\n return;\r\n }\r\n\r\n // 直接设置数据对象的 checked 属性\r\n data.checked = checked;\r\n\r\n // 同步更新 _selectedRowIds(用于跨页选中)\r\n const id = this.getRowId(data);\r\n if (id !== undefined) {\r\n if (checked) {\r\n this._selectedRowIds.add(id);\r\n } else {\r\n this._selectedRowIds.delete(id);\r\n }\r\n }\r\n\r\n // 同步更新 _selectedRows(用于兼容性)\r\n const index = this._selectedRows.findIndex((row) =>\r\n this.isSameRow(row, data)\r\n );\r\n if (checked) {\r\n if (index === -1) {\r\n this._selectedRows.push(data);\r\n }\r\n // 勾选复选框时同步设置高亮选中行\r\n this._selectedTableRow = data;\r\n } else {\r\n if (index > -1) {\r\n this._selectedRows.splice(index, 1);\r\n }\r\n // 若当前高亮行为该行,则取消高亮\r\n if (\r\n this._selectedTableRow &&\r\n this.isSameRow(this._selectedTableRow, data)\r\n ) {\r\n this._selectedTableRow = null;\r\n }\r\n }\r\n\r\n this.updateCheckAllStatus();\r\n }\r\n\r\n // 更新全选状态(数据驱动模式)\r\n updateCheckAllStatus() {\r\n if (!this.showCheckbox || !Array.isArray(this.dataSource)) {\r\n this._checkedAll = false;\r\n this._indeterminate = false;\r\n return;\r\n }\r\n // 只计算可用的行(未禁用的行)\r\n const availableRows = this.dataSource.filter(\r\n (row) => !this.isRowDisabled(row)\r\n );\r\n // 基于数据对象的 checked 属性计算\r\n const checkedCount = availableRows.filter(\r\n (row) => row.checked === true\r\n ).length;\r\n const totalCount = availableRows.length;\r\n this._checkedAll =\r\n totalCount > 0 && checkedCount > 0 && checkedCount === totalCount;\r\n this._indeterminate = checkedCount > 0 && checkedCount < totalCount;\r\n }\r\n\r\n // 全选/取消全选(数据驱动模式)\r\n toggleCheckAll(checked: boolean, event?: Event) {\r\n if (event) {\r\n event.stopPropagation();\r\n }\r\n\r\n // 只处理可用的行(未禁用的行)\r\n const availableRows = this.dataSource.filter(\r\n (row) => !this.isRowDisabled(row)\r\n );\r\n\r\n // 批量设置 checked 属性\r\n availableRows.forEach((row) => {\r\n row.checked = checked;\r\n\r\n // 同步更新 _selectedRowIds(用于跨页选中)\r\n const id = this.getRowId(row);\r\n if (id !== undefined) {\r\n if (checked) {\r\n this._selectedRowIds.add(id);\r\n } else {\r\n this._selectedRowIds.delete(id);\r\n }\r\n }\r\n });\r\n\r\n // 同步更新 _selectedRows(用于兼容性)\r\n if (checked) {\r\n this._selectedRows = [...availableRows];\r\n // 同步设置高亮选中行为第一条可选数据\r\n this._selectedTableRow =\r\n availableRows.length > 0 ? availableRows[0] : null;\r\n } else {\r\n this._selectedRows = [];\r\n // 取消高亮\r\n this._selectedTableRow = null;\r\n }\r\n\r\n this.updateCheckAllStatus();\r\n }\r\n\r\n // 获取选中的行数据(保留用于兼容性)\r\n getSelectedRows(): any[] {\r\n return this.getCheckedRows();\r\n }\r\n\r\n // 处理行 checkbox 变化事件(数据驱动模式)\r\n handleRowCheckedChange(data: any, checked: boolean): void {\r\n if (this.isRowDisabled(data)) {\r\n return;\r\n }\r\n\r\n // 数据对象的 checked 属性已经通过双向绑定自动更新\r\n // 这里只需要同步更新 _selectedRowIds 和 _selectedRows\r\n\r\n // 同步更新 _selectedRowIds(用于跨页选中)\r\n const id = this.getRowId(data);\r\n if (id !== undefined) {\r\n if (checked) {\r\n this._selectedRowIds.add(id);\r\n } else {\r\n this._selectedRowIds.delete(id);\r\n }\r\n }\r\n\r\n // 同步更新 _selectedRows(用于兼容性)\r\n const index = this._selectedRows.findIndex((row) =>\r\n this.isSameRow(row, data)\r\n );\r\n if (checked) {\r\n if (index === -1) {\r\n this._selectedRows.push(data);\r\n }\r\n // 勾选复选框时同步设置高亮选中行\r\n this._selectedTableRow = data;\r\n } else {\r\n if (index > -1) {\r\n this._selectedRows.splice(index, 1);\r\n }\r\n // 若当前高亮行为该行,则取消高亮\r\n if (\r\n this._selectedTableRow &&\r\n this.isSameRow(this._selectedTableRow, data)\r\n ) {\r\n this._selectedTableRow = null;\r\n }\r\n }\r\n\r\n // 更新全选状态\r\n this.updateCheckAllStatus();\r\n }\r\n\r\n // 刷新全选状态(用于其他场景)\r\n refreshCheckAllStatus(): void {\r\n this.updateCheckAllStatus();\r\n }\r\n\r\n // 获取行的唯一标识(用于跨页选中)\r\n private getRowId(data: any): string | number | undefined {\r\n return data.id ?? data.key ?? undefined;\r\n }\r\n\r\n // 判断两行是否为同一行\r\n private isSameRow(row1: any, row2: any): boolean {\r\n const id1 = this.getRowId(row1);\r\n const id2 = this.getRowId(row2);\r\n\r\n if (id1 !== undefined && id2 !== undefined) {\r\n return id1 === id2;\r\n }\r\n\r\n // fallback 到 JSON 比较\r\n return JSON.stringify(row1) === JSON.stringify(row2);\r\n }\r\n\r\n // 清空选中的行(数据驱动模式)\r\n clearSelectedRows() {\r\n // 清空当前数据源中所有项的 checked 状态\r\n if (Array.isArray(this.dataSource)) {\r\n this.dataSource.forEach((row) => {\r\n row.checked = false;\r\n });\r\n }\r\n\r\n // 清空选中集合\r\n this._selectedRowIds.clear();\r\n this._selectedRows = [];\r\n this._checkedAll = false;\r\n this._indeterminate = false;\r\n this._selectedTableRow = null;\r\n }\r\n\r\n handleFieldCheckBoxChange(checkBoxOptions: OptionsType[], key: string) {\r\n this.setFieldsValue({\r\n [key]: checkBoxOptions\r\n .filter((item) => item.checked)\r\n .map((item) => item.value),\r\n });\r\n }\r\n\r\n handleSearch() {\r\n this._savedSearchParams = this.clearEmptySearchParams();\r\n this._pageInfo.pageIndex = 1;\r\n this.handleQuery();\r\n }\r\n\r\n handleResetForm() {\r\n Object.keys(this._searchParams).forEach((key) => {\r\n const targetColumn = this._searchFiledColumns.find((item) => {\r\n return (item.fieldProps?.name || item.prop) === key;\r\n });\r\n\r\n // 对于checkbox类型,需要特殊处理默认值\r\n if (targetColumn?.valueType === \"checkbox\") {\r\n // 从原始columns配置中获取初始配置,以确保使用正确的默认值\r\n const originalColumn = this.columns.find((item) => {\r\n return (item.fieldProps?.name || item.prop) === key;\r\n });\r\n\r\n // 从原始options中找出checked为true的项作为默认值\r\n const originalFieldProps = originalColumn?.fieldProps as\r\n | CheckboxFieldProps\r\n | undefined;\r\n const checkedValues = (originalFieldProps?.options || [])\r\n .filter((opt: OptionsType) => opt.checked)\r\n .map((opt: OptionsType) => opt.value);\r\n const defaultValue =\r\n checkedValues.length > 0\r\n ? checkedValues\r\n : PRO_TABLE_DEFAULT_PROPS[targetColumn.valueType].value;\r\n\r\n this._searchParams[key] = defaultValue;\r\n\r\n // 根据默认值恢复options的checked状态,使用原始options的结构\r\n const defaultValues = Array.isArray(defaultValue) ? defaultValue : [];\r\n const originalOptions = originalFieldProps?.options || [];\r\n const targetFieldProps = targetColumn.fieldProps as CheckboxFieldProps;\r\n targetFieldProps.options = originalOptions.map((item: OptionsType) => {\r\n return {\r\n ...item,\r\n checked: defaultValues.includes(item.value),\r\n };\r\n });\r\n } else {\r\n this._searchParams[key] = targetColumn?.fieldProps\r\n ? targetColumn?.fieldProps.value ||\r\n PRO_TABLE_DEFAULT_PROPS[targetColumn.valueType].value\r\n : PRO_TABLE_DEFAULT_PROPS[targetColumn.valueType].value;\r\n }\r\n });\r\n\r\n this._savedSearchParams = {};\r\n this._pageInfo.pageIndex = 1;\r\n this.onResetFormBeforeReload.emit();\r\n this.handleQuery();\r\n }\r\n\r\n handlePageIndexChange(pageIndex: number) {\r\n this._pageInfo.pageIndex = pageIndex;\r\n this.handleQuery();\r\n }\r\n\r\n handlePageSizeChange(pageSize: any) {\r\n this._pageInfo.pageSize = pageSize;\r\n this._pageInfo.pageIndex = 1;\r\n this.handleQuery();\r\n }\r\n\r\n async handleQuery(afterDelete?: boolean) {\r\n // 删除后刷新且当前页仅剩一条记录时,若不在第一页则先回退一页\r\n if (\r\n afterDelete &&\r\n Array.isArray(this.dataSource) &&\r\n this.dataSource.length === 1 &&\r\n this._pageInfo.pageIndex > 1\r\n ) {\r\n this._pageInfo.pageIndex = this._pageInfo.pageIndex - 1;\r\n }\r\n\r\n // 保存删除前的数据源(用于删除后查询时移除被删除项的选中状态)\r\n const previousDataSource =\r\n afterDelete && this.showCheckbox ? [...this.dataSource] : [];\r\n\r\n this._loading = true;\r\n if (this.request) {\r\n try {\r\n const result = await this.request({\r\n params: this.clearEmptySearchParams(),\r\n pageInfo: {\r\n pageIndex: this._pageInfo.pageIndex,\r\n pageSize: this._pageInfo.pageSize,\r\n },\r\n // 在线排序模式:把排序对象提交给接口\r\n ...(this.sortMode === \"server\"\r\n ? { sort: this.buildServerSortPayload() }\r\n : {}),\r\n });\r\n\r\n // 自动注入 checked 字段,支持跨页选中\r\n if (this.showCheckbox) {\r\n this.dataSource = (result.data || []).map((item) => {\r\n const id = this.getRowId(item);\r\n // 如果数据已有 checked 属性,保留;否则根据 _selectedRowIds 判断\r\n const checked =\r\n item.checked !== undefined\r\n ? item.checked\r\n : id !== undefined\r\n ? this._selectedRowIds.has(id)\r\n : false;\r\n return {\r\n ...item,\r\n checked: checked,\r\n };\r\n });\r\n\r\n // 删除后查询:移除被删除项的选中状态\r\n if (afterDelete && previousDataSource.length > 0) {\r\n const newDataIds = new Set(\r\n this.dataSource.map((item) => this.getRowId(item))\r\n );\r\n\r\n // 遍历之前的数据源,如果不在新数据源中,说明被删除了,需要清除其选中状态\r\n previousDataSource.forEach((oldItem) => {\r\n const oldId = this.getRowId(oldItem);\r\n if (oldId !== undefined && !newDataIds.has(oldId)) {\r\n // 被删除的项,从选中集合中移除\r\n this._selectedRowIds.delete(oldId);\r\n // 如果数据对象还在其他地方引用,清除其选中状态\r\n if (oldItem.checked !== undefined) {\r\n oldItem.checked = false;\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n this.dataSource = result.data || [];\r\n }\r\n\r\n this.summaryData = result.summaryData || null;\r\n // 本地排序模式:拿到数据后在前端排序\r\n if (this.sortMode === \"local\") {\r\n this.sortDataSourceInPlace();\r\n }\r\n this._pageInfo.total = result.total || 0;\r\n // 更新全选状态\r\n if (this.showCheckbox) {\r\n this.updateCheckAllStatus();\r\n }\r\n } catch (error) {\r\n console.error(\"查询失败:\", error);\r\n this.dataSource = [];\r\n this._pageInfo.total = 0;\r\n this.summaryData = null;\r\n } finally {\r\n this._loading = false;\r\n this._selectedTableRow = null;\r\n }\r\n } else {\r\n console.warn(\"未提供 _request 回调函数\");\r\n this._loading = false;\r\n }\r\n // 不再调用 clearSelectedRows(),保留跨页选中状态\r\n }\r\n\r\n // 触发列排序变更\r\n onSortChange(sortKey: string, sortOrder: \"ascend\" | \"descend\" | null) {\r\n // 单列排序:重置其它列;多列排序:保留其它列\r\n if (!this.multipleSort) {\r\n Object.keys(this._sortMap).forEach((key) => {\r\n if (key !== sortKey) this._sortMap[key] = null;\r\n });\r\n }\r\n this._sortMap[sortKey] = sortOrder;\r\n\r\n // 维护优先级队列:有序列且非空 -> 置于末尾;为空 -> 移除\r\n this._sortPriority = this._sortPriority.filter((k) => k !== sortKey);\r\n if (sortOrder) {\r\n this._sortPriority.push(sortKey);\r\n }\r\n\r\n if (this.sortMode === \"local\") {\r\n this.sortDataSourceInPlace();\r\n } else {\r\n // 在线排序:重新请求\r\n this.handleQuery();\r\n }\r\n }\r\n\r\n getSortOrder(sortKey: string): \"ascend\" | \"descend\" | null {\r\n return this._sortMap[sortKey] || null;\r\n }\r\n\r\n handleTableRowClick(data: any) {\r\n this._selectedTableRow = data;\r\n // 如果开启了复选框,点击行时只选中点击行(如果行未被禁用)\r\n if (this.showCheckbox && !this.isRowDisabled(data)) {\r\n // 先清空所有选中行\r\n this._selectedRows = [];\r\n // 只选中当前点击的行\r\n this.toggleRowChecked(data, true);\r\n }\r\n this.onRowClick.emit(this._selectedTableRow);\r\n }\r\n\r\n handleTableRowDbClick(data: any) {\r\n this._selectedTableRow = data;\r\n this.onRowDbClick.emit(this._selectedTableRow);\r\n }\r\n\r\n handleColumnsSettingConfirm() {\r\n this.queryDynamicColumns();\r\n }\r\n\r\n // 处理 autoComplete 输入事件(带防抖)\r\n handleAutoCompleteInput(event: Event, column: ProTableColumn) {\r\n const fieldKey = column.fieldProps?.name || column.prop;\r\n\r\n // 如果该字段还没有防抖函数,创建一个\r\n if (!this._autoCompleteDebounceMap.has(fieldKey)) {\r\n const debouncedFn = debounce((evt: Event) => {\r\n // 重新查找对应的 column,确保使用最新的配置\r\n const currentColumn = this._searchFiledColumns.find(\r\n (col) => (col.fieldProps?.name || col.prop) === fieldKey\r\n );\r\n if (currentColumn) {\r\n this.executeAutoCompleteDataSource(evt, currentColumn);\r\n }\r\n }, 300); // 300ms 防抖延迟\r\n this._autoCompleteDebounceMap.set(fieldKey, debouncedFn);\r\n }\r\n\r\n // 调用防抖函数\r\n const debouncedFn = this._autoCompleteDebounceMap.get(fieldKey);\r\n if (debouncedFn) {\r\n debouncedFn(event);\r\n }\r\n }\r\n\r\n // 获取 autoComplete 的数据源\r\n getAutoCompleteDataSource(column: ProTableColumn): any[] {\r\n const fieldKey = column.fieldProps?.name || column.prop;\r\n return this._autoCompleteDataSources[fieldKey] || [];\r\n }\r\n\r\n getFieldProps(column: ProTableColumn): any {\r\n return column.fieldProps;\r\n }\r\n\r\n // 获取指定名称的label模板\r\n getLabelTemplate(name: string | undefined): TemplateRef<any> | null {\r\n if (!name) return null;\r\n return this.customTemplates.get(name) || null;\r\n }\r\n\r\n // 获取 form-item 的动态类名\r\n getFormItemClassName(column: ProTableColumn): string {\r\n const fieldName = this.getFieldProps(column).name || column.prop;\r\n return `pro-table-${fieldName}-form-item`;\r\n }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-page-container\",\r\n templateUrl: \"./page-container.component.html\",\r\n styleUrls: [\"./page-container.component.less\"],\r\n})\r\nexport class PageContainerComponent implements OnInit {\r\n @Input() title: string = \"\";\r\n @Input() showHeader: boolean = true;\r\n @ContentChild(\"header\") headerTpl!: TemplateRef<any>;\r\n @ContentChild(\"body\") bodyTpl!: TemplateRef<any>;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NzCardModule } from \"ng-zorro-antd/card\";\r\nimport { PageContainerComponent } from \"./page-container.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpClientModule,\r\n RouterModule,\r\n NzCardModule,\r\n ReactiveFormsModule,\r\n ],\r\n declarations: [PageContainerComponent],\r\n providers: [],\r\n exports: [PageContainerComponent],\r\n})\r\nexport class PageContainerModule {}\r\n","import { Component, OnInit, OnDestroy, forwardRef, ChangeDetectorRef, ElementRef, Inject, Optional } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { PLATE_PREFIX_LOAD_SERVICE, PlatePrefixLoadService, PlatePrefixOption } from \"../tokens\";\r\n\r\n@Component({\r\n selector: \"app-plate-input\",\r\n templateUrl: \"./plate-input.component.html\",\r\n styleUrls: [\"./plate-input.component.less\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PlateInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PlateInputComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n nzPopoverVisible: boolean = false;\r\n platePrefix: string = \"\";\r\n plateSuffix: string = \"\";\r\n platePrefixOptions: Array<PlatePrefixOption> = [];\r\n disabled: boolean = false;\r\n private onChange = (value: string) => {};\r\n private onTouched = () => {};\r\n\r\n private clickOutsideHandler?: (event: MouseEvent) => void;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n @Optional() @Inject(PLATE_PREFIX_LOAD_SERVICE) private platePrefixLoadService?: PlatePrefixLoadService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.platePrefixLoadService) {\r\n // 使用注入的全局服务加载车牌前缀选项\r\n this.platePrefixLoadService\r\n .loadPrefixOptions()\r\n .then((data: Array<PlatePrefixOption>) => {\r\n this.platePrefixOptions = data;\r\n })\r\n .catch(() => {\r\n this.platePrefixOptions = [];\r\n });\r\n } else {\r\n // 如果没有注入服务,则保持空数组\r\n this.platePrefixOptions = [];\r\n }\r\n }\r\n\r\n handlePlatePrefix(value: string): void {\r\n this.platePrefix = value;\r\n this.emitValue();\r\n this.nzPopoverVisible = false;\r\n this.removeClickOutsideListener();\r\n }\r\n\r\n writeValue(value: string): void {\r\n if (value) {\r\n this.platePrefix = value.split(\"\")[0];\r\n this.plateSuffix = value\r\n .split(\"\")\r\n .filter((item, index) => index > 0)\r\n .join(\"\");\r\n } else {\r\n this.platePrefix = \"\";\r\n this.plateSuffix = \"\";\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n const previousDisabled = this.disabled;\r\n this.disabled = isDisabled;\r\n \r\n // 如果禁用状态改变,关闭 popover 并移除监听器\r\n if (previousDisabled !== isDisabled) {\r\n this.nzPopoverVisible = false;\r\n this.removeClickOutsideListener();\r\n // 强制变更检测\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n handlePrefixClick(event: Event): void {\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.nzPopoverVisible = false;\r\n return;\r\n }\r\n // 手动切换 popover 的显示/隐藏状态\r\n this.nzPopoverVisible = !this.nzPopoverVisible;\r\n \r\n // 如果打开了 popover,添加文档点击监听器\r\n if (this.nzPopoverVisible) {\r\n setTimeout(() => {\r\n this.attachClickOutsideListener();\r\n }, 0);\r\n } else {\r\n this.removeClickOutsideListener();\r\n }\r\n \r\n event.stopPropagation(); // 阻止事件冒泡\r\n }\r\n\r\n private attachClickOutsideListener(): void {\r\n if (this.clickOutsideHandler) {\r\n return;\r\n }\r\n \r\n this.clickOutsideHandler = (event: MouseEvent) => {\r\n const nativeElement = this.elementRef.nativeElement;\r\n const target = event.target as HTMLElement;\r\n \r\n // 检查是否点击在 popover 内容区域内\r\n const popoverContent = document.querySelector('.plate-input-popover');\r\n const clickedInPopover = popoverContent && popoverContent.contains(target);\r\n \r\n // 检查是否点击在组件内部(前缀按钮)\r\n const clickedInComponent = nativeElement.contains(target);\r\n \r\n // 如果点击既不在组件内部,也不在 popover 内容区域,则关闭 popover\r\n if (!clickedInComponent && !clickedInPopover) {\r\n this.nzPopoverVisible = false;\r\n this.removeClickOutsideListener();\r\n this.cdr.detectChanges();\r\n }\r\n };\r\n \r\n // 使用捕获阶段,确保在其他事件处理之前执行\r\n document.addEventListener('click', this.clickOutsideHandler, true);\r\n }\r\n\r\n private removeClickOutsideListener(): void {\r\n if (this.clickOutsideHandler) {\r\n document.removeEventListener('click', this.clickOutsideHandler, true);\r\n this.clickOutsideHandler = undefined;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeClickOutsideListener();\r\n }\r\n\r\n private emitValue(): void {\r\n const fullPlate = this.platePrefix + this.plateSuffix;\r\n this.onChange(fullPlate);\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouched();\r\n }\r\n\r\n handleAntdPlateSuffixBlur(event: any): void {\r\n if (this.disabled) return;\r\n const value = event.target.value.toUpperCase();\r\n this.plateSuffix = value;\r\n this.emitValue();\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: \"input[nz-input]\",\r\n})\r\nexport class TrimInputDirective {\r\n constructor(\r\n private el: ElementRef,\r\n @Optional() private ngControl: NgControl,\r\n ) {}\r\n\r\n private shouldProcess(): boolean {\r\n if (this.el.nativeElement.hasAttribute(\"allow-trim\")) {\r\n return false;\r\n }\r\n if (this.el.nativeElement.hasAttribute(\"not-allow-trim\")) {\r\n return true;\r\n }\r\n\r\n let element = this.el.nativeElement;\r\n while (element) {\r\n const className = element.className;\r\n if (\r\n typeof className === \"string\" &&\r\n className.includes(\"ant-form-custom\")\r\n ) {\r\n return true;\r\n }\r\n element = element.parentElement;\r\n }\r\n return false;\r\n }\r\n\r\n @HostListener(\"blur\")\r\n onBlur() {\r\n if (!this.shouldProcess()) {\r\n return;\r\n }\r\n\r\n const value = this.el.nativeElement.value;\r\n if (typeof value === \"string\") {\r\n const trimmedValue = value.trim();\r\n\r\n this.el.nativeElement.value = trimmedValue;\r\n\r\n if (this.ngControl && this.ngControl.control) {\r\n this.ngControl.control.setValue(trimmedValue, { emitEvent: false });\r\n }\r\n }\r\n }\r\n\r\n @HostListener(\"input\")\r\n onInput() {\r\n if (!this.shouldProcess()) {\r\n return;\r\n }\r\n\r\n const value = this.el.nativeElement.value;\r\n\r\n if (typeof value === \"string\" && /\\s/.test(value)) {\r\n const noSpaceValue = value.replace(/\\s/g, \"\");\r\n this.el.nativeElement.value = noSpaceValue;\r\n\r\n if (this.ngControl && this.ngControl.control) {\r\n this.ngControl.control.setValue(noSpaceValue, { emitEvent: false });\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { TrimInputDirective } from \"./trim-input.directive\";\r\n\r\n@NgModule({\r\n declarations: [TrimInputDirective],\r\n exports: [TrimInputDirective],\r\n})\r\nexport class TrimInputModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { NzGridModule } from \"ng-zorro-antd/grid\";\r\nimport { NzIconModule } from \"ng-zorro-antd/icon\";\r\nimport { NzInputModule } from \"ng-zorro-antd/input\";\r\nimport { NzPopoverModule } from \"ng-zorro-antd/popover\";\r\nimport { PlateInputComponent } from \"./plate-input.component\";\r\nimport { TrimInputModule } from \"../directives/trim-input.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NzGridModule,\r\n NzInputModule,\r\n NzPopoverModule,\r\n NzIconModule,\r\n TrimInputModule,\r\n ],\r\n declarations: [PlateInputComponent],\r\n providers: [],\r\n exports: [PlateInputComponent],\r\n})\r\nexport class PlateInputModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnInit,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-table-search-bar\",\r\n templateUrl: \"./table-search-bar.component.html\",\r\n styleUrls: [\"./table-search-bar.component.less\"],\r\n})\r\nexport class TableSearchBarComponent implements OnInit, AfterViewInit {\r\n @Input() leftColSpan: number = 21;\r\n @Input() rightColSpan: number = 3;\r\n @Input() labelWidth: string = \"90px\";\r\n @Input() labelAlign: string = \"right\";\r\n @Input() formItemWidth: string = \"270px\";\r\n @ContentChild(\"leftContent\") leftContentTpl!: TemplateRef<any>;\r\n @ContentChild(\"actionTextBtn\") actionTextBtnTpl!: TemplateRef<any>;\r\n @ContentChild(\"actionImgBtn\") actionImgBtnTpl!: TemplateRef<any>;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit(): void {}\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NzGridModule } from \"ng-zorro-antd/grid\";\r\nimport { TableSearchBarComponent } from \"./table-search-bar.component\";\r\nimport { NzSpaceModule } from \"ng-zorro-antd/space\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpClientModule,\r\n RouterModule,\r\n NzGridModule,\r\n ReactiveFormsModule,\r\n NzSpaceModule,\r\n ],\r\n declarations: [TableSearchBarComponent],\r\n providers: [],\r\n exports: [TableSearchBarComponent],\r\n})\r\nexport class TableSearchBarModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport Sortable from \"sortablejs\";\r\nimport { ProTableColumn } from \"../../type\";\r\nimport { PRO_TABLE_COLUMN_REMOTE, ProTableRemoteColumnService } from \"../../tokens\";\r\nimport { Inject, Optional } from \"@angular/core\";\r\nimport { isObservable } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"app-colmuns-setting\",\r\n templateUrl: \"./colmuns-setting.component.html\",\r\n styleUrls: [\"./colmuns-setting.component.less\"],\r\n})\r\nexport class ColmunsSettingComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n @Input() columns: ProTableColumn[] = [];\r\n\r\n @Input() selectedColumns: ProTableColumn[] = [];\r\n\r\n @Input() tableName: string;\r\n\r\n @Output() afterConfirm = new EventEmitter<ProTableColumn[]>();\r\n\r\n @ViewChild(\"sortableContainer\", { static: false })\r\n sortableContainer!: ElementRef;\r\n\r\n modalVisible: boolean = false;\r\n\r\n options: Array<{ label: string; value: string; checked: boolean }> = [];\r\n\r\n private sortableInstance: Sortable | null = null;\r\n\r\n constructor(\r\n @Optional()\r\n @Inject(PRO_TABLE_COLUMN_REMOTE)\r\n private columnRemote: ProTableRemoteColumnService | null\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit(): void {\r\n this.initSortable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sortableInstance) {\r\n this.sortableInstance.destroy();\r\n }\r\n }\r\n\r\n initSortable(): void {\r\n // 先销毁已存在的实例\r\n if (this.sortableInstance) {\r\n this.sortableInstance.destroy();\r\n this.sortableInstance = null;\r\n }\r\n\r\n if (this.sortableContainer && this.sortableContainer.nativeElement) {\r\n this.sortableInstance = new Sortable(\r\n this.sortableContainer.nativeElement,\r\n {\r\n animation: 150,\r\n ghostClass: \"sortable-ghost\",\r\n chosenClass: \"sortable-chosen\",\r\n dragClass: \"sortable-drag\",\r\n handle: \".sort-list-item\", // 指定拖拽句柄\r\n onEnd: (evt) => {\r\n this.onSortEnd(evt);\r\n },\r\n }\r\n );\r\n }\r\n }\r\n\r\n onSortEnd(evt: any): void {\r\n const { oldIndex, newIndex } = evt;\r\n if (oldIndex !== newIndex) {\r\n // 创建新的数组来避免直接修改输入属性\r\n const newSelectedColumns = [...this.selectedColumns];\r\n const movedItem = newSelectedColumns.splice(oldIndex, 1)[0];\r\n newSelectedColumns.splice(newIndex, 0, movedItem);\r\n\r\n // 更新 selectedColumns\r\n this.selectedColumns = newSelectedColumns;\r\n }\r\n }\r\n\r\n trackByColumn(index: number, item: ProTableColumn): string {\r\n return item.prop || index.toString();\r\n }\r\n\r\n /**\r\n * 同步 options 数组的 checked 状态与 selectedColumns\r\n */\r\n private syncOptionsWithSelectedColumns(): void {\r\n const selectedProps = this.selectedColumns.map((col) => col.prop);\r\n this.options.forEach((option) => {\r\n option.checked = selectedProps.includes(option.value);\r\n });\r\n }\r\n\r\n handleModalVisible() {\r\n this.options = this.columns\r\n .filter((item) => !item.auxiliaryColumn)\r\n .map((item) => {\r\n return {\r\n label: item.title,\r\n value: item.prop,\r\n checked: item.hideInTable ? false : true,\r\n sortName: item.sortName || null,\r\n };\r\n });\r\n\r\n // 同步 options 的 checked 状态与当前 selectedColumns\r\n this.syncOptionsWithSelectedColumns();\r\n\r\n this.modalVisible = true;\r\n\r\n // 模态框打开后重新初始化排序\r\n setTimeout(() => {\r\n this.initSortable();\r\n }, 100);\r\n }\r\n\r\n handleModalClose() {\r\n this.modalVisible = false;\r\n if (this.sortableInstance) {\r\n this.sortableInstance.destroy();\r\n this.sortableInstance = null;\r\n }\r\n }\r\n\r\n handleSelectRemove(key: string) {\r\n this.selectedColumns = this.selectedColumns.filter(\r\n (item) => item.prop !== key\r\n );\r\n\r\n // 使用同步方法确保所有状态一致\r\n this.syncOptionsWithSelectedColumns();\r\n }\r\n\r\n handleCheckBoxChange(value, record) {\r\n if (!value) {\r\n this.handleSelectRemove(record.value);\r\n } else {\r\n this.selectedColumns.push({\r\n title: record.label,\r\n prop: record.value,\r\n sortName: record.sortName,\r\n hideInTable: false,\r\n });\r\n // 添加项目后同步状态\r\n this.syncOptionsWithSelectedColumns();\r\n }\r\n }\r\n handleConfirm() {\r\n if (!this.columnRemote?.setCol || !this.tableName) {\r\n this.modalVisible = false;\r\n this.afterConfirm.emit();\r\n return;\r\n }\r\n const payload = this.selectedColumns.map((column) => {\r\n return {\r\n field: column.prop,\r\n isShow: column.hideInTable ? false : true,\r\n header: column.title,\r\n sortName: column.sortName || null,\r\n };\r\n });\r\n const result = this.columnRemote.setCol(this.tableName, payload);\r\n const done = (res) => {\r\n this.modalVisible = false;\r\n this.afterConfirm.emit();\r\n };\r\n if (result && isObservable(result)) {\r\n result.subscribe(done, () => done(null));\r\n } else {\r\n Promise.resolve(result).finally(() => done(null));\r\n }\r\n }\r\n}\r\n","import { Component, ComponentFactoryResolver, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, Type, ViewChild, ViewContainerRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dynamic-search-field',\r\n template: `<ng-template #vc></ng-template>`\r\n})\r\nexport class DynamicSearchFieldComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() component: Type<any> | null = null;\r\n @Input() value: any;\r\n @Input() props: { [key: string]: any } | null = null;\r\n @Output() valueChange = new EventEmitter<any>();\r\n\r\n @ViewChild('vc', { read: ViewContainerRef, static: true }) vc!: ViewContainerRef;\r\n\r\n private cmpRef: any = null;\r\n private isCva = false;\r\n private cvaOnChange: ((val: any) => void) | null = null;\r\n\r\n constructor(private cfr: ComponentFactoryResolver) {}\r\n\r\n ngOnInit(): void {\r\n this.render();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.component && !changes.component.firstChange) {\r\n this.destroy();\r\n this.render();\r\n return;\r\n }\r\n if (this.cmpRef) {\r\n if (changes.value && !changes.value.firstChange) {\r\n if (this.isCva) {\r\n if (typeof this.cmpRef.instance.writeValue === 'function') {\r\n this.cmpRef.instance.writeValue(this.value);\r\n }\r\n } else if ('value' in this.cmpRef.instance) {\r\n this.cmpRef.instance.value = this.value;\r\n }\r\n }\r\n if (changes.props && !changes.props.firstChange) {\r\n this.applyProps();\r\n }\r\n }\r\n }\r\n\r\n private render() {\r\n if (!this.component) return;\r\n const factory = this.cfr.resolveComponentFactory(this.component);\r\n this.vc.clear();\r\n this.cmpRef = this.vc.createComponent(factory);\r\n\r\n this.isCva = typeof this.cmpRef.instance.registerOnChange === 'function' && typeof this.cmpRef.instance.writeValue === 'function';\r\n\r\n if (this.isCva) {\r\n this.cmpRef.instance.writeValue(this.value);\r\n this.cmpRef.instance.registerOnChange((v: any) => {\r\n this.valueChange.emit(v);\r\n });\r\n } else {\r\n if ('value' in this.cmpRef.instance) {\r\n this.cmpRef.instance.value = this.value;\r\n }\r\n if ('valueChange' in this.cmpRef.instance && this.cmpRef.instance.valueChange && typeof this.cmpRef.instance.valueChange.subscribe === 'function') {\r\n this.cmpRef.instance.valueChange.subscribe((v: any) => {\r\n this.valueChange.emit(v);\r\n });\r\n }\r\n }\r\n\r\n this.applyProps();\r\n }\r\n\r\n private applyProps() {\r\n const p = this.props || {};\r\n const extra = p.componentProps || {};\r\n Object.keys(extra).forEach((k) => {\r\n try {\r\n this.cmpRef.instance[k] = extra[k];\r\n } catch {}\r\n });\r\n }\r\n\r\n private destroy() {\r\n if (this.cmpRef) {\r\n try { this.cmpRef.destroy(); } catch {}\r\n this.cmpRef = null;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n}\r\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NzButtonModule } from \"ng-zorro-antd/button\";\r\nimport { NzCheckboxModule } from \"ng-zorro-antd/checkbox\";\r\nimport { NzDatePickerModule } from \"ng-zorro-antd/date-picker\";\r\nimport { NzFormModule } from \"ng-zorro-antd/form\";\r\nimport { NzGridModule } from \"ng-zorro-antd/grid\";\r\nimport { NzIconModule } from \"ng-zorro-antd/icon\";\r\nimport { NzInputModule } from \"ng-zorro-antd/input\";\r\nimport { NzModalModule } from \"ng-zorro-antd/modal\";\r\nimport { NzPopoverModule } from \"ng-zorro-antd/popover\";\r\nimport { NzSelectModule } from \"ng-zorro-antd/select\";\r\nimport { NzSpaceModule } from \"ng-zorro-antd/space\";\r\nimport { NzTableModule } from \"ng-zorro-antd/table\";\r\nimport { NzTypographyModule } from \"ng-zorro-antd/typography\";\r\nimport { PageContainerModule } from \"./page-container/page-container.module\";\r\nimport { PlateInputModule } from \"./plate-input/plate-input.module\";\r\nimport { TableSearchBarModule } from \"./table-search-bar/table-search-bar-module\";\r\nimport { ColmunsSettingComponent } from \"./components/colmuns-setting/colmuns-setting.component\";\r\nimport { ProTableComponent } from \"./pro-table.component\";\r\nimport { DynamicSearchFieldComponent } from \"./components/dynamic-search-field/dynamic-search-field.component\";\r\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzToolTipModule } from \"ng-zorro-antd/tooltip\";\r\nimport { PRO_TABLE_COLUMN_REMOTE } from \"./tokens\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpClientModule,\r\n RouterModule,\r\n NzFormModule,\r\n NzSelectModule,\r\n NzSpaceModule,\r\n NzGridModule,\r\n NzInputModule,\r\n ReactiveFormsModule,\r\n NzPopoverModule,\r\n NzIconModule,\r\n NzButtonModule,\r\n PageContainerModule,\r\n TableSearchBarModule,\r\n NzTableModule,\r\n PlateInputModule,\r\n NzDatePickerModule,\r\n NzModalModule,\r\n NzCheckboxModule,\r\n NzTypographyModule,\r\n DragDropModule,\r\n NzCheckboxModule,\r\n NzAutocompleteModule,\r\n NzInputNumberModule,\r\n NzToolTipModule,\r\n ],\r\n declarations: [ProTableComponent, ColmunsSettingComponent, DynamicSearchFieldComponent],\r\n providers: [\r\n {\r\n // 默认不提供远程列服务,宿主可覆盖注入\r\n provide: PRO_TABLE_COLUMN_REMOTE,\r\n useValue: null,\r\n },\r\n ],\r\n exports: [ProTableComponent],\r\n})\r\nexport class ProTableModule {}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { PlatePrefixLoadService, PlatePrefixOption } from \"../tokens\";\r\n\r\n/**\r\n * 默认的车牌前缀加载服务实现\r\n * 使用 HttpClient 调用 API 获取车牌前缀选项\r\n */\r\n@Injectable()\r\nexport class DefaultPlatePrefixLoadService implements PlatePrefixLoadService {\r\n private readonly defaultApiUrl = \"/PlateFirstWord/GetPlateFirstWord\";\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n loadPrefixOptions(): Promise<PlatePrefixOption[]> {\r\n return this.http\r\n .post<string[]>(this.defaultApiUrl, { dictCode: \"PlateFirstWord\" })\r\n .toPromise()\r\n .then((list: string[]) => {\r\n const options: PlatePrefixOption[] = [];\r\n // 添加空选项(与旧版保持一致)\r\n options.push({ label: \"\", value: \"\" });\r\n // 转换数据格式\r\n for (let i = 0; i < list.length; i++) {\r\n options.push({\r\n label: list[i],\r\n value: list[i],\r\n });\r\n }\r\n return options;\r\n })\r\n .catch(() => {\r\n // 发生错误时返回空数组\r\n return [];\r\n });\r\n }\r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n AbstractControl,\r\n AbstractControlOptions,\r\n FormBuilder,\r\n FormGroup,\r\n ValidatorFn,\r\n} from \"@angular/forms\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { debounceTime, distinctUntilChanged } from \"rxjs/operators\";\r\n\r\n// ==================== 类型定义 ====================\r\n\r\n// 字段错误消息类型(字符串或函数)\r\nexport type FieldErrorMessage =\r\n | string\r\n | ((context: { control: AbstractControl; controlName: string }) => string);\r\n\r\n// 字段错误消息集合\r\nexport type FieldErrorMessages = Record<string, FieldErrorMessage>;\r\n\r\n// 字段配置\r\nexport type FieldConfig = {\r\n value: any;\r\n disabled?: boolean;\r\n validators?: () => ValidatorFn[];\r\n errorMessages?: FieldErrorMessages;\r\n};\r\n\r\n// 嵌套 FormGroup 配置\r\nexport type FormGroupConfig = {\r\n type: \"group\";\r\n fields: FormConfig;\r\n disabled?: boolean;\r\n validators?: () => ValidatorFn[];\r\n errorMessages?: FieldErrorMessages;\r\n};\r\n\r\n// 表单修改类型\r\nexport type FormModifyType = \"create\" | \"update\";\r\n\r\n// 表单配置(支持普通字段和嵌套 FormGroup)\r\nexport type FormConfig = Record<string, FieldConfig | FormGroupConfig>;\r\n\r\n// 监听选项\r\nexport type WatchOptions = {\r\n debounce?: number;\r\n distinctUntilChanged?: boolean;\r\n emitInitial?: boolean;\r\n};\r\n\r\n// 批量添加字段配置选项\r\nexport type AddFieldsConfigOptions = {\r\n emitEvent?: boolean;\r\n updateValueAndValidity?: boolean;\r\n onFieldAdded?: (fieldName: string, success: boolean, error?: string) => void; // 每个字段添加的回调\r\n targetPath?: string; // 目标路径,用于在嵌套 FormGroup 内部添加字段,例如: \"cardBaseInfo\" 或 \"userInfo.addressInfo\"\r\n};\r\n\r\n// 批量添加字段配置结果\r\nexport type AddFieldsConfigResult = {\r\n success: boolean;\r\n added: string[]; // 成功添加的字段名列表\r\n failed: Array<{ fieldName: string; error: string }>; // 失败的字段及错误信息\r\n};\r\n\r\n// 批量删除字段配置选项\r\nexport type RemoveFieldsConfigOptions = {\r\n emitEvent?: boolean;\r\n onFieldRemoved?: (\r\n fieldName: string,\r\n success: boolean,\r\n error?: string\r\n ) => void; // 每个字段删除的回调\r\n};\r\n\r\n// 批量删除字段配置结果\r\nexport type RemoveFieldsConfigResult = {\r\n success: boolean;\r\n removed: string[]; // 成功删除的字段名列表\r\n failed: Array<{ fieldName: string; error: string }>; // 失败的字段及错误信息\r\n};\r\n\r\n// ==================== 服务类 ====================\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class AntdFormService {\r\n // ==================== 公共属性 ====================\r\n formStore: Record<string, FormGroup> = {};\r\n formModifyType: FormModifyType = \"create\";\r\n\r\n // ==================== 私有属性 ====================\r\n private formRegisterStore: Record<string, boolean> = {};\r\n private labelWidth: string = \"120px\";\r\n private labelAlign: string = \"right\";\r\n private labelObservers: Record<string, MutationObserver> = {};\r\n private errorMessageStore: Record<\r\n string,\r\n Record<string, FieldErrorMessages>\r\n > = {};\r\n private classPrefix = \"ant-form-\";\r\n private readonly defaultErrorMessages: FieldErrorMessages = {\r\n required: \"该字段为必填项\",\r\n minlength: \"输入长度不足\",\r\n maxlength: \"输入长度超限\",\r\n email: \"请输入合法的邮箱地址\",\r\n pattern: \"输入格式不正确\",\r\n };\r\n\r\n // ==================== 构造函数 ====================\r\n constructor(private fb: FormBuilder) {}\r\n\r\n // ==================== 表单创建和初始化 ====================\r\n\r\n // 判断是否为嵌套 FormGroup 配置\r\n private isFormGroupConfig(\r\n config: FieldConfig | FormGroupConfig\r\n ): config is FormGroupConfig {\r\n return (\r\n typeof config === \"object\" &&\r\n config !== null &&\r\n \"type\" in config &&\r\n config.type === \"group\"\r\n );\r\n }\r\n\r\n // 递归创建嵌套 FormGroup\r\n private createNestedFormGroup(\r\n fields: FormConfig,\r\n disabled?: boolean\r\n ): FormGroup {\r\n const groupConfig: Record<string, any> = {};\r\n\r\n Object.entries(fields).forEach(([key, fieldConfig]) => {\r\n if (this.isFormGroupConfig(fieldConfig)) {\r\n // 递归创建嵌套的 FormGroup\r\n groupConfig[key] = this.createNestedFormGroup(\r\n fieldConfig.fields,\r\n fieldConfig.disabled ?? disabled\r\n );\r\n } else {\r\n // 创建普通 FormControl\r\n groupConfig[key] = [\r\n {\r\n value: fieldConfig.value,\r\n disabled: fieldConfig.disabled ?? disabled ?? false,\r\n },\r\n fieldConfig.validators?.() ?? [],\r\n ];\r\n }\r\n });\r\n\r\n return this.fb.group(groupConfig);\r\n }\r\n\r\n // 初始化表单\r\n createFormGroup(\r\n name: string,\r\n config: FormConfig,\r\n options?: { labelWidth?: string; labelAlign?: string }\r\n ): FormGroup {\r\n const groupConfig: Record<string, any> = {};\r\n this.errorMessageStore[name] = {};\r\n\r\n Object.entries(config).forEach(([key, fieldConfig]) => {\r\n if (this.isFormGroupConfig(fieldConfig)) {\r\n // 处理嵌套 FormGroup\r\n const nestedGroup = this.createNestedFormGroup(\r\n fieldConfig.fields,\r\n fieldConfig.disabled\r\n );\r\n groupConfig[key] = nestedGroup;\r\n\r\n // 存储嵌套 FormGroup 的错误消息(如果需要)\r\n if (fieldConfig.errorMessages) {\r\n this.errorMessageStore[name][key] = fieldConfig.errorMessages;\r\n }\r\n } else {\r\n // 处理普通字段\r\n groupConfig[key] = [\r\n {\r\n value: fieldConfig.value,\r\n disabled: fieldConfig.disabled ?? false,\r\n },\r\n fieldConfig.validators?.() ?? [],\r\n ];\r\n if (fieldConfig.errorMessages) {\r\n this.errorMessageStore[name][key] = fieldConfig.errorMessages;\r\n }\r\n }\r\n });\r\n\r\n if (options?.labelWidth) {\r\n this.labelWidth = options.labelWidth;\r\n }\r\n if (options?.labelAlign) {\r\n this.labelAlign = options.labelAlign;\r\n }\r\n this.formStore[name] = this.fb.group(groupConfig);\r\n this.formRegisterStore[name] = true;\r\n this.setCSSVariablesToTarget(name);\r\n return this.formStore[name];\r\n }\r\n\r\n // ==================== 表单操作 ====================\r\n\r\n // 重置表单\r\n resetFormGroup(name: string, value?: any): void {\r\n this.formStore[name]?.reset(value);\r\n }\r\n\r\n // 检测表单是否完成注册\r\n isFormRegistered(name: string): boolean {\r\n return this.formRegisterStore[name] ?? false;\r\n }\r\n\r\n // 销毁对应的表单\r\n destory(names: string[]): void {\r\n names.forEach((name) => {\r\n // 2. 清理错误消息存储\r\n if (this.errorMessageStore[name]) {\r\n delete this.errorMessageStore[name];\r\n }\r\n\r\n // 3. 清理表单注册标记\r\n if (this.formRegisterStore[name]) {\r\n delete this.formRegisterStore[name];\r\n }\r\n\r\n // 4. 清理表单组(Angular 会自动处理 FormGroup 的清理)\r\n if (this.formStore[name]) {\r\n delete this.formStore[name];\r\n }\r\n });\r\n }\r\n\r\n // 根据路径获取嵌套的 FormGroup\r\n private getNestedFormGroup(\r\n formGroup: FormGroup,\r\n path: string\r\n ): FormGroup | null {\r\n if (!path || path.trim() === \"\") {\r\n return formGroup;\r\n }\r\n\r\n const pathParts = path.split(\".\").filter((p) => p.trim() !== \"\");\r\n let currentGroup: AbstractControl | null = formGroup;\r\n\r\n for (const part of pathParts) {\r\n if (!currentGroup || !(currentGroup instanceof FormGroup)) {\r\n return null;\r\n }\r\n currentGroup = currentGroup.get(part);\r\n if (!currentGroup || !(currentGroup instanceof FormGroup)) {\r\n return null;\r\n }\r\n }\r\n\r\n return currentGroup instanceof FormGroup ? currentGroup : null;\r\n }\r\n\r\n // 批量添加字段配置\r\n addFieldsConfig(\r\n formName: string,\r\n fieldsConfig: FormConfig,\r\n options?: AddFieldsConfigOptions\r\n ): AddFieldsConfigResult {\r\n const result: AddFieldsConfigResult = {\r\n success: true,\r\n added: [],\r\n failed: [],\r\n };\r\n\r\n // 1. 验证表单是否存在\r\n const rootFormGroup = this.formStore[formName];\r\n if (!rootFormGroup) {\r\n // 如果表单不存在,所有字段都失败\r\n Object.keys(fieldsConfig).forEach((fieldName) => {\r\n const error = `Form \"${formName}\" not found`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldAdded?.(fieldName, false, error);\r\n });\r\n result.success = false;\r\n return result;\r\n }\r\n\r\n // 2. 获取目标 FormGroup(支持嵌套路径)\r\n const targetPath = options?.targetPath;\r\n const targetFormGroup = targetPath\r\n ? this.getNestedFormGroup(rootFormGroup, targetPath)\r\n : rootFormGroup;\r\n\r\n if (!targetFormGroup) {\r\n // 如果目标 FormGroup 不存在,所有字段都失败\r\n Object.keys(fieldsConfig).forEach((fieldName) => {\r\n const error = targetPath\r\n ? `Target FormGroup at path \"${targetPath}\" not found`\r\n : `FormGroup not found`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldAdded?.(fieldName, false, error);\r\n });\r\n result.success = false;\r\n return result;\r\n }\r\n\r\n // 3. 初始化 errorMessageStore(如果不存在)\r\n if (!this.errorMessageStore[formName]) {\r\n this.errorMessageStore[formName] = {};\r\n }\r\n\r\n // 4. 批量构建控件配置\r\n const controlsToAdd: Record<string, AbstractControl> = {};\r\n const errorMessagesToAdd: Record<string, FieldErrorMessages> = {};\r\n\r\n // 5. 遍历所有字段配置,进行验证和构建\r\n Object.entries(fieldsConfig).forEach(([fieldName, fieldConfig]) => {\r\n try {\r\n // 5.1 检查字段是否已存在\r\n if (targetFormGroup.get(fieldName)) {\r\n const error = `Field \"${fieldName}\" already exists${\r\n targetPath ? ` in \"${targetPath}\"` : \"\"\r\n }`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldAdded?.(fieldName, false, error);\r\n return;\r\n }\r\n\r\n // 5.2 创建控件\r\n let control: AbstractControl;\r\n\r\n if (this.isFormGroupConfig(fieldConfig)) {\r\n // 创建嵌套 FormGroup\r\n control = this.createNestedFormGroup(\r\n fieldConfig.fields,\r\n fieldConfig.disabled\r\n );\r\n // 存储嵌套 FormGroup 的错误消息(如果需要)\r\n if (fieldConfig.errorMessages) {\r\n const errorMessageKey = targetPath\r\n ? `${targetPath}.${fieldName}`\r\n : fieldName;\r\n errorMessagesToAdd[errorMessageKey] = fieldConfig.errorMessages;\r\n }\r\n } else {\r\n // 创建普通 FormControl\r\n const controlOptions: AbstractControlOptions = {\r\n validators: fieldConfig.validators?.() ?? [],\r\n };\r\n control = this.fb.control(fieldConfig.value, controlOptions);\r\n // 设置 disabled 状态\r\n if (fieldConfig.disabled) {\r\n control.disable();\r\n }\r\n // 存储错误消息\r\n if (fieldConfig.errorMessages) {\r\n const errorMessageKey = targetPath\r\n ? `${targetPath}.${fieldName}`\r\n : fieldName;\r\n errorMessagesToAdd[errorMessageKey] = fieldConfig.errorMessages;\r\n }\r\n }\r\n\r\n controlsToAdd[fieldName] = control;\r\n\r\n result.added.push(fieldName);\r\n options?.onFieldAdded?.(fieldName, true);\r\n } catch (error: any) {\r\n const errorMessage =\r\n error?.message || error?.toString() || \"Unknown error\";\r\n result.failed.push({\r\n fieldName,\r\n error: errorMessage,\r\n });\r\n options?.onFieldAdded?.(fieldName, false, errorMessage);\r\n }\r\n });\r\n\r\n // 6. 批量添加到目标 FormGroup\r\n if (Object.keys(controlsToAdd).length > 0) {\r\n Object.entries(controlsToAdd).forEach(([fieldName, control]) => {\r\n targetFormGroup.addControl(fieldName, control);\r\n });\r\n\r\n // 7. 批量存储错误消息\r\n Object.entries(errorMessagesToAdd).forEach(([key, messages]) => {\r\n this.errorMessageStore[formName][key] = messages;\r\n });\r\n\r\n // 8. 更新表单验证状态\r\n if (options?.updateValueAndValidity) {\r\n targetFormGroup.updateValueAndValidity({\r\n emitEvent: options?.emitEvent ?? true,\r\n });\r\n }\r\n }\r\n\r\n // 9. 判断整体是否成功\r\n result.success = result.failed.length === 0;\r\n\r\n return result;\r\n }\r\n\r\n // 批量删除字段配置\r\n removeFieldsConfig(\r\n formName: string,\r\n fieldNames: string[],\r\n options?: RemoveFieldsConfigOptions\r\n ): RemoveFieldsConfigResult {\r\n const result: RemoveFieldsConfigResult = {\r\n success: true,\r\n removed: [],\r\n failed: [],\r\n };\r\n\r\n // 1. 验证表单是否存在\r\n const formGroup = this.formStore[formName];\r\n if (!formGroup) {\r\n fieldNames.forEach((fieldName) => {\r\n const error = `Form \"${formName}\" not found`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldRemoved?.(fieldName, false, error);\r\n });\r\n result.success = false;\r\n return result;\r\n }\r\n\r\n // 2. 批量收集需要清理的信息\r\n const fieldsToRemove: string[] = [];\r\n const errorMessageKeysToRemove: string[] = [];\r\n\r\n // 3. 验证每个字段并收集信息\r\n fieldNames.forEach((fieldName) => {\r\n const control = formGroup.get(fieldName);\r\n\r\n if (!control) {\r\n const error = `Field \"${fieldName}\" not found`;\r\n result.failed.push({\r\n fieldName,\r\n error,\r\n });\r\n options?.onFieldRemoved?.(fieldName, false, error);\r\n return;\r\n }\r\n\r\n // 收集错误消息键\r\n errorMessageKeysToRemove.push(fieldName);\r\n fieldsToRemove.push(fieldName);\r\n });\r\n\r\n // 4. 批量执行删除操作\r\n try {\r\n // 4.1 从 FormGroup 中移除控件\r\n fieldsToRemove.forEach((fieldName) => {\r\n formGroup.removeControl(fieldName);\r\n result.removed.push(fieldName);\r\n options?.onFieldRemoved?.(fieldName, true);\r\n });\r\n\r\n // 4.2 批量删除错误消息\r\n if (this.errorMessageStore[formName]) {\r\n errorMessageKeysToRemove.forEach((key) => {\r\n delete this.errorMessageStore[formName][key];\r\n });\r\n }\r\n } catch (error: any) {\r\n // 如果批量删除过程中出错,标记为失败\r\n fieldsToRemove.forEach((fieldName) => {\r\n if (!result.removed.includes(fieldName)) {\r\n const errorMessage =\r\n error?.message || error?.toString() || \"Failed to remove field\";\r\n result.failed.push({\r\n fieldName,\r\n error: errorMessage,\r\n });\r\n options?.onFieldRemoved?.(fieldName, false, errorMessage);\r\n }\r\n });\r\n }\r\n\r\n // 5. 判断整体是否成功\r\n result.success = result.failed.length === 0;\r\n\r\n return result;\r\n }\r\n\r\n // 局部赋值\r\n patchFormValues(\r\n name: string,\r\n values: Record<string, any>,\r\n options?: { emitEvent?: boolean }\r\n ): void {\r\n const formGroup = this.formStore[name];\r\n if (!formGroup) {\r\n console.warn(\r\n `[AntdFormService] patchFormValues: form \"${name}\" not found.`\r\n );\r\n return;\r\n }\r\n\r\n formGroup.patchValue(values, {\r\n emitEvent: options?.emitEvent ?? true,\r\n });\r\n }\r\n\r\n // 表单校验(自动过滤内部字段)\r\n validateForm(\r\n name: string,\r\n options?: { emitEvent?: boolean; onlySelf?: boolean }\r\n ): boolean | Record<string, any> {\r\n if (this.formStore[name].valid) {\r\n const rawValue = this.formStore[name].getRawValue();\r\n return this.excludeInternalFields(rawValue);\r\n } else {\r\n // 递归校验所有控件\r\n this.markAllControlsAsDirty(\r\n this.formStore[name],\r\n options?.emitEvent ?? true,\r\n options?.onlySelf ?? false\r\n );\r\n return false;\r\n }\r\n }\r\n\r\n // 递归标记所有无效控件为 dirty\r\n private markAllControlsAsDirty(\r\n control: AbstractControl,\r\n emitEvent: boolean,\r\n onlySelf: boolean\r\n ): void {\r\n if (control.invalid) {\r\n control.markAsDirty();\r\n control.updateValueAndValidity({\r\n emitEvent,\r\n onlySelf,\r\n });\r\n }\r\n\r\n // 如果是 FormGroup,递归处理所有子控件\r\n if (control instanceof FormGroup) {\r\n Object.values(control.controls).forEach((childControl) => {\r\n this.markAllControlsAsDirty(childControl, emitEvent, onlySelf);\r\n });\r\n }\r\n }\r\n\r\n // ==================== 错误消息相关 ====================\r\n\r\n // 获取字段首条错误提示\r\n getFieldErrorMessage(name: string, controlName: string): string {\r\n const formGroup = this.formStore[name];\r\n if (!formGroup) {\r\n console.warn(\r\n `[AntdFormService] getFieldErrorMessage: form \"${name}\" not found.`\r\n );\r\n return \"\";\r\n }\r\n const control = formGroup.get(controlName);\r\n if (!control) {\r\n console.warn(\r\n `[AntdFormService] getFieldErrorMessage: control \"${controlName}\" not found in form \"${name}\".`\r\n );\r\n return \"\";\r\n }\r\n if (!control.errors) {\r\n return \"\";\r\n }\r\n\r\n // 从 errorMessageStore 获取错误消息配置\r\n const errorMessages = this.errorMessageStore[name]?.[controlName];\r\n const mergedMessages = {\r\n ...this.defaultErrorMessages,\r\n ...(errorMessages ?? {}),\r\n };\r\n\r\n for (const errorKey of Object.keys(control.errors)) {\r\n const message = mergedMessages[errorKey];\r\n if (message) {\r\n // 不再支持函数形式,只返回字符串\r\n return typeof message === \"string\" ? message : \"\";\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n // ==================== 监听相关 ====================\r\n\r\n // 监听表单所有字段变更\r\n watchFormChanges<T = any>(\r\n name: string,\r\n handler: (value: T) => void,\r\n options?: WatchOptions\r\n ): Subscription | undefined {\r\n const formGroup = this.formStore[name];\r\n if (!formGroup) {\r\n console.warn(\r\n `[AntdFormService] watchFormChanges: form \"${name}\" not found.`\r\n );\r\n return undefined;\r\n }\r\n\r\n return this.setupValueChangeSubscription(formGroup, handler, options);\r\n }\r\n\r\n // 监听指定字段变更\r\n watchFieldChanges<T = any>(\r\n name: string,\r\n controlName: string,\r\n handler: (value: T) => void,\r\n options?: WatchOptions\r\n ): Subscription | undefined {\r\n const formGroup = this.formStore[name];\r\n if (!formGroup) {\r\n console.warn(\r\n `[AntdFormService] watchFieldChanges: form \"${name}\" not found.`\r\n );\r\n return undefined;\r\n }\r\n\r\n const control = formGroup.get(controlName);\r\n if (!control) {\r\n console.warn(\r\n `[AntdFormService] watchFieldChanges: control \"${controlName}\" not found in form \"${name}\".`\r\n );\r\n return undefined;\r\n }\r\n\r\n return this.setupValueChangeSubscription(control, handler, options);\r\n }\r\n\r\n // ==================== 工具方法 ====================\r\n\r\n // 获取表单类名\r\n getFormClassName(name: string): string {\r\n return `${this.classPrefix}custom-${name} `;\r\n }\r\n\r\n // 设置 CSS 变量到目标元素(支持持久化监听动态添加的元素)\r\n setCSSVariablesToTarget(name: string): void {\r\n const formContainerSelector = `.${this.getFormClassName(name)}`;\r\n const formContainer = document.querySelector(\r\n formContainerSelector\r\n ) as HTMLElement;\r\n\r\n // 如果容器还不存在,可以用 MutationObserver 等待它出现\r\n if (!formContainer) {\r\n const observer = new MutationObserver(() => {\r\n const container = document.querySelector(\r\n formContainerSelector\r\n ) as HTMLElement;\r\n if (container) {\r\n container.style.setProperty(\"--label-width\", this.labelWidth);\r\n container.style.setProperty(\"--label-align\", this.labelAlign);\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n\r\n // 10秒后自动断开,避免内存泄漏\r\n setTimeout(() => observer.disconnect(), 10000);\r\n return;\r\n }\r\n\r\n // 在容器上设置 CSS 变量\r\n formContainer.style.setProperty(\"--label-width\", this.labelWidth);\r\n formContainer.style.setProperty(\"--label-align\", this.labelAlign);\r\n }\r\n\r\n // ==================== 私有方法 ====================\r\n\r\n // 过滤内部字段(递归处理对象和数组)\r\n private excludeInternalFields(value: any): any {\r\n if (value === null || value === undefined) {\r\n return value;\r\n }\r\n\r\n // 特殊处理 Date 对象,直接返回不做转换\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value.map((item) => this.excludeInternalFields(item));\r\n }\r\n\r\n if (typeof value !== \"object\") {\r\n return value;\r\n }\r\n\r\n const filtered: any = {};\r\n Object.entries(value).forEach(([key, val]) => {\r\n // 过滤以 __ 开头的内部字段\r\n if (!key.startsWith(\"__\")) {\r\n filtered[key] = this.excludeInternalFields(val);\r\n }\r\n });\r\n return filtered;\r\n }\r\n\r\n // 设置值变更订阅\r\n private setupValueChangeSubscription<T>(\r\n target: { valueChanges: any; value: any },\r\n handler: (value: T) => void,\r\n options?: WatchOptions\r\n ): Subscription {\r\n let valueChanges$ = target.valueChanges;\r\n\r\n if (options?.debounce != null) {\r\n valueChanges$ = valueChanges$.pipe(debounceTime(options.debounce));\r\n }\r\n\r\n if (options?.distinctUntilChanged !== false) {\r\n valueChanges$ = valueChanges$.pipe(distinctUntilChanged());\r\n }\r\n\r\n if (options?.emitInitial) {\r\n handler(target.value);\r\n }\r\n\r\n return valueChanges$.subscribe(handler);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\n/** 字段校验结果类型 */\r\nexport type ValidationResult = string;\r\n\r\n/** 字段校验方法类型 */\r\nexport type FieldValidator = (\r\n value: any,\r\n row: ArrayFormRow,\r\n fieldName: string\r\n) => ValidationResult;\r\n\r\n/** 字段配置接口 */\r\nexport interface FieldConfig {\r\n name: string;\r\n validator?: FieldValidator;\r\n}\r\n\r\n/** 数组表单行数据接口 */\r\nexport interface ArrayFormRow {\r\n uid?: string;\r\n isEdit?: boolean;\r\n isAdd?: boolean;\r\n disabled?: boolean;\r\n [key: string]: any;\r\n}\r\n\r\n/** 数组表单配置接口 */\r\nexport interface ArrayFormConfig {\r\n fields: FieldConfig[];\r\n defaultValues?: Record<string, any>;\r\n // 自动更新目标对象和属性名,用于触发 Angular 变化检测\r\n targetObject?: Record<string, any>;\r\n arrayPropertyName?: string;\r\n}\r\n\r\n/** 表单存储项接口 */\r\nexport interface ArrayFormStoreItem {\r\n data: ArrayFormRow[];\r\n config: ArrayFormConfig;\r\n validationResults?: Record<string, Record<string, ValidationResult>>;\r\n /** 初始值快照,用于自动检测字段是否被修改 */\r\n initialSnapshot: Record<string, Record<string, any>>;\r\n /** 编辑时快照,用于取消编辑时恢复数据 */\r\n editingSnapshot: Record<string, Record<string, any>>;\r\n /** 是否标记所有字段为已触碰(整个表单提交时设为 true) */\r\n allTouched: boolean;\r\n /** 每行的 touched 状态(单行保存时设为 true) */\r\n rowTouched: Record<string, boolean>;\r\n}\r\n\r\n/** 表单存储接口 */\r\nexport interface ArrayFormStore {\r\n [formName: string]: ArrayFormStoreItem;\r\n}\r\n\r\n/** 数组型数据收集基础服务 */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ArrayFormService {\r\n private formStore: ArrayFormStore = {};\r\n\r\n constructor() {}\r\n\r\n /** 深度克隆值 */\r\n private cloneValue(value: any): any {\r\n if (value === null || value === undefined) {\r\n return value;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.map((item) => this.cloneValue(item));\r\n }\r\n if (typeof value === \"object\") {\r\n const cloned: Record<string, any> = {};\r\n for (const key of Object.keys(value)) {\r\n cloned[key] = this.cloneValue(value[key]);\r\n }\r\n return cloned;\r\n }\r\n return value;\r\n }\r\n\r\n /** 比较两个值是否相等 */\r\n private isEqual(a: any, b: any): boolean {\r\n if (a === b) return true;\r\n if (a === null || b === null) return a === b;\r\n if (a === undefined || b === undefined) return a === b;\r\n if (typeof a !== typeof b) return false;\r\n\r\n if (Array.isArray(a) && Array.isArray(b)) {\r\n if (a.length !== b.length) return false;\r\n return a.every((item, index) => this.isEqual(item, b[index]));\r\n }\r\n\r\n if (typeof a === \"object\" && typeof b === \"object\") {\r\n const keysA = Object.keys(a);\r\n const keysB = Object.keys(b);\r\n if (keysA.length !== keysB.length) return false;\r\n return keysA.every((key) => this.isEqual(a[key], b[key]));\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** 创建行的初始值快照 */\r\n private createRowSnapshot(\r\n row: ArrayFormRow,\r\n fields: FieldConfig[]\r\n ): Record<string, any> {\r\n const snapshot: Record<string, any> = {};\r\n fields.forEach((field) => {\r\n snapshot[field.name] = this.cloneValue(row[field.name]);\r\n });\r\n return snapshot;\r\n }\r\n\r\n /** 初始化数组数据,添加 uid 和 isEdit 字段 */\r\n private initializeData(data: any[]): ArrayFormRow[] {\r\n return data.map((item) => this.enrichRow(item));\r\n }\r\n\r\n /** 为单行数据添加 uid 和 isEdit 字段 */\r\n private enrichRow(row: any): ArrayFormRow {\r\n return {\r\n ...row,\r\n uid: row.uid || uuidv4(),\r\n isEdit: row.isEdit !== undefined ? row.isEdit : false,\r\n disabled: row.disabled !== undefined ? row.disabled : false,\r\n };\r\n }\r\n\r\n /** 新增一行数据 */\r\n private addRow(\r\n data: ArrayFormRow[],\r\n defaultValues?: Record<string, any>\r\n ): ArrayFormRow {\r\n const newRow: ArrayFormRow = {\r\n ...defaultValues,\r\n uid: uuidv4(),\r\n isEdit: true,\r\n isAdd: true,\r\n disabled: false,\r\n };\r\n data.push(newRow);\r\n return newRow;\r\n }\r\n\r\n /** 校验单个字段 */\r\n private validateField(\r\n row: ArrayFormRow,\r\n fieldName: string,\r\n config: ArrayFormConfig\r\n ): ValidationResult {\r\n const fieldConfig = config.fields.find((f) => f.name === fieldName);\r\n\r\n if (!fieldConfig) {\r\n return \"\";\r\n }\r\n\r\n if (fieldConfig.validator) {\r\n return fieldConfig.validator(row[fieldName], row, fieldName);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n /** 校验整行数据 */\r\n private validateRow(\r\n row: ArrayFormRow,\r\n config: ArrayFormConfig\r\n ): Record<string, ValidationResult> {\r\n const results: Record<string, ValidationResult> = {};\r\n\r\n config.fields.forEach((fieldConfig) => {\r\n results[fieldConfig.name] = this.validateField(\r\n row,\r\n fieldConfig.name,\r\n config\r\n );\r\n });\r\n\r\n return results;\r\n }\r\n\r\n /** 校验整个数组 */\r\n private validateData(\r\n data: ArrayFormRow[],\r\n config: ArrayFormConfig\r\n ): Record<string, Record<string, ValidationResult>> {\r\n const results: Record<string, Record<string, ValidationResult>> = {};\r\n\r\n data.forEach((row) => {\r\n results[row.uid] = this.validateRow(row, config);\r\n });\r\n\r\n return results;\r\n }\r\n\r\n /** 注册表单到存储 */\r\n registerForm(\r\n formName: string,\r\n data: ArrayFormRow[],\r\n config: ArrayFormConfig\r\n ): void {\r\n const initializedData = this.initializeData(data);\r\n\r\n // 记录初始值快照\r\n const initialSnapshot: Record<string, Record<string, any>> = {};\r\n initializedData.forEach((row) => {\r\n initialSnapshot[row.uid!] = this.createRowSnapshot(row, config.fields);\r\n });\r\n\r\n this.formStore[formName] = {\r\n data: initializedData,\r\n config,\r\n validationResults: {},\r\n initialSnapshot,\r\n editingSnapshot: {},\r\n allTouched: false,\r\n rowTouched: {},\r\n };\r\n // 如果配置了自动更新,立即更新一次\r\n this.autoUpdateArrayReference(formName);\r\n }\r\n\r\n /** 从存储中获取表单 */\r\n getForm(formName: string): ArrayFormStoreItem | undefined {\r\n return this.formStore[formName];\r\n }\r\n\r\n /** 从存储中获取表单数据 */\r\n getFormData(\r\n formName: string\r\n ):\r\n | Array<Pick<ArrayFormRow, \"uid\" | \"isEdit\" | \"isAdd\" | keyof ArrayFormRow>>\r\n | undefined {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return undefined;\r\n }\r\n return form.data.map((item) => {\r\n delete item.isEdit;\r\n delete item.isAdd;\r\n delete item.uid;\r\n delete item.disabled;\r\n return item;\r\n });\r\n }\r\n\r\n /** 向表单添加行 */\r\n addRowToForm(\r\n formName: string,\r\n defaultValues?: Record<string, any>\r\n ): ArrayFormRow | undefined {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return undefined;\r\n }\r\n const newRow = this.addRow(form.data, defaultValues);\r\n // 为新行记录初始值快照\r\n form.initialSnapshot[newRow.uid!] = this.createRowSnapshot(\r\n newRow,\r\n form.config.fields\r\n );\r\n // 自动更新外部数组引用\r\n this.autoUpdateArrayReference(formName);\r\n return newRow;\r\n }\r\n\r\n /** 校验表单,自动标记所有字段为已触碰 */\r\n validateForm(formName: string): boolean {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return true;\r\n }\r\n // 标记所有字段为已触碰\r\n form.allTouched = true;\r\n const results = this.validateData(form.data, form.config);\r\n form.validationResults = results;\r\n\r\n // 检查是否有任何错误\r\n for (const uid of Object.keys(results)) {\r\n for (const fieldName of Object.keys(results[uid])) {\r\n if (results[uid][fieldName]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /** 开启编辑模式,保存快照用于取消恢复 */\r\n enableEdit(formName: string, row: ArrayFormRow): void {\r\n const form = this.formStore[formName];\r\n if (form && row.uid) {\r\n // 保存编辑前的快照\r\n form.editingSnapshot[row.uid] = this.createRowSnapshot(\r\n row,\r\n form.config.fields\r\n );\r\n }\r\n row.isEdit = true;\r\n }\r\n\r\n /** 取消编辑,恢复到编辑前的数据 */\r\n disableEdit(formName: string, row: ArrayFormRow): void {\r\n const form = this.formStore[formName];\r\n if (form && row.uid && form.editingSnapshot[row.uid]) {\r\n // 恢复编辑前的数据\r\n const snapshot = form.editingSnapshot[row.uid];\r\n form.config.fields.forEach((field) => {\r\n row[field.name] = this.cloneValue(snapshot[field.name]);\r\n });\r\n // 更新初始快照为恢复后的值,消除 touched 状态\r\n form.initialSnapshot[row.uid] = this.cloneValue(snapshot);\r\n // 清理编辑快照和 touched 状态\r\n delete form.editingSnapshot[row.uid];\r\n delete form.rowTouched[row.uid];\r\n // 清理该行的校验结果\r\n if (form.validationResults) {\r\n delete form.validationResults[row.uid];\r\n }\r\n }\r\n row.isEdit = false;\r\n }\r\n\r\n /** 确认编辑,保留修改后的数据 */\r\n confirmEdit(formName: string, row: ArrayFormRow): void {\r\n const form = this.formStore[formName];\r\n if (form && row.uid) {\r\n // 清理编辑快照(保留当前数据)\r\n if (form.editingSnapshot[row.uid]) {\r\n delete form.editingSnapshot[row.uid];\r\n }\r\n // 更新初始快照为当前值(用于后续 touched 检测)\r\n form.initialSnapshot[row.uid] = this.createRowSnapshot(\r\n row,\r\n form.config.fields\r\n );\r\n // 清除 touched 状态,基于新的 initialSnapshot 重新判断\r\n delete form.rowTouched[row.uid];\r\n }\r\n row.isEdit = false;\r\n row.isAdd = false;\r\n }\r\n\r\n /** 从表单中删除指定行 */\r\n deleteRowFromForm(formName: string, row: ArrayFormRow): boolean {\r\n const form = this.formStore[formName];\r\n if (!form || !row.uid) {\r\n return false;\r\n }\r\n const index = form.data.findIndex((item) => item.uid === row.uid);\r\n if (index === -1) {\r\n return false;\r\n }\r\n form.data.splice(index, 1);\r\n // 清理该行的所有快照、touched 状态和校验结果\r\n delete form.initialSnapshot[row.uid];\r\n delete form.editingSnapshot[row.uid];\r\n delete form.rowTouched[row.uid];\r\n if (form.validationResults) {\r\n delete form.validationResults[row.uid];\r\n }\r\n // 自动更新外部数组引用\r\n this.autoUpdateArrayReference(formName);\r\n return true;\r\n }\r\n\r\n /** 检测字段是否已被触碰 */\r\n private isFieldTouched(\r\n form: ArrayFormStoreItem,\r\n row: ArrayFormRow,\r\n fieldName: string\r\n ): boolean {\r\n // 整个表单已 touched(整个表单提交时)\r\n if (form.allTouched) {\r\n return true;\r\n }\r\n // 当前行已 touched(单行保存时)\r\n if (form.rowTouched[row.uid!]) {\r\n return true;\r\n }\r\n // 检测当前值与初始值是否不同\r\n const initialValue = form.initialSnapshot[row.uid!]?.[fieldName];\r\n const currentValue = row[fieldName];\r\n return !this.isEqual(initialValue, currentValue);\r\n }\r\n\r\n /** 校验指定行的指定字段,未修改时不显示校验状态 */\r\n validateFieldInRow(\r\n formName: string,\r\n row: ArrayFormRow,\r\n fieldName: string\r\n ): \"success\" | \"error\" | \"\" {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return \"\";\r\n }\r\n\r\n const fieldConfig = form.config.fields.find((f) => f.name === fieldName);\r\n if (!fieldConfig) {\r\n return \"\";\r\n }\r\n\r\n // 执行校验\r\n let result: ValidationResult = \"\";\r\n if (fieldConfig.validator) {\r\n result = fieldConfig.validator(row[fieldName], row, fieldName);\r\n }\r\n\r\n // 更新校验结果存储\r\n if (!form.validationResults) {\r\n form.validationResults = {};\r\n }\r\n if (!form.validationResults[row.uid!]) {\r\n form.validationResults[row.uid!] = {};\r\n }\r\n form.validationResults[row.uid!][fieldName] = result;\r\n\r\n // 如果字段未被触碰,不显示校验状态\r\n if (!this.isFieldTouched(form, row, fieldName)) {\r\n return \"\";\r\n }\r\n\r\n return result ? \"error\" : \"success\";\r\n }\r\n\r\n /** 获取指定行指定字段的校验错误信息 */\r\n getFieldErrorMessage(\r\n formName: string,\r\n row: ArrayFormRow,\r\n fieldName: string\r\n ): string {\r\n const form = this.formStore[formName];\r\n if (!form || !row.uid) {\r\n return \"\";\r\n }\r\n // 如果字段未被触碰,不显示错误信息\r\n if (!this.isFieldTouched(form, row, fieldName)) {\r\n return \"\";\r\n }\r\n return form.validationResults?.[row.uid]?.[fieldName] || \"\";\r\n }\r\n\r\n /** 校验指定行的所有字段 */\r\n validateRowAllFields(formName: string, row: ArrayFormRow): boolean {\r\n const form = this.formStore[formName];\r\n if (!form || !row.uid) {\r\n return true;\r\n }\r\n\r\n // 更新初始快照为当前值\r\n form.initialSnapshot[row.uid] = this.createRowSnapshot(\r\n row,\r\n form.config.fields\r\n );\r\n // 标记当前行为 touched(只影响当前行,不影响其他行)\r\n form.rowTouched[row.uid] = true;\r\n\r\n let hasError = false;\r\n\r\n form.config.fields.forEach((fieldConfig) => {\r\n const result = this.validateFieldInRow(formName, row, fieldConfig.name);\r\n if (result === \"error\") {\r\n hasError = true;\r\n }\r\n });\r\n\r\n return !hasError;\r\n }\r\n\r\n /** 自动更新外部数组引用 */\r\n private autoUpdateArrayReference(formName: string): void {\r\n const form = this.formStore[formName];\r\n if (!form || !form.config.targetObject || !form.config.arrayPropertyName) {\r\n return;\r\n }\r\n const newArray = form.data ? [...form.data] : [];\r\n // 更新目标对象的数组属性为新数组引用\r\n (form.config.targetObject as any)[form.config.arrayPropertyName] = newArray;\r\n }\r\n\r\n /** 是否有正在编辑的行 */\r\n hasEditingRow(formName: string): boolean {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return false;\r\n }\r\n return form.data.some((item) => item.isEdit);\r\n }\r\n\r\n // 销毁对应的表单\r\n destory(names: string[]): void {\r\n names.forEach((name) => {\r\n if (this.formStore[name]) {\r\n // 清理表单数据\r\n delete this.formStore[name];\r\n }\r\n });\r\n }\r\n\r\n // 重置表单数组\r\n resetFormArray(name: string): void {\r\n const form = this.formStore[name];\r\n if (!form) {\r\n return;\r\n }\r\n\r\n // 1. 清空数据数组\r\n form.data = [];\r\n\r\n // 2. 清理所有快照\r\n form.initialSnapshot = {};\r\n form.editingSnapshot = {};\r\n\r\n // 3. 清理校验结果\r\n form.validationResults = {};\r\n\r\n // 4. 重置 touched 状态\r\n form.allTouched = false;\r\n form.rowTouched = {};\r\n\r\n // 5. 如果配置了自动更新,更新外部数组引用\r\n this.autoUpdateArrayReference(name);\r\n }\r\n\r\n /** 批量设置表单数据(用于回填数据) */\r\n setFormData(formName: string, data: any[]): void {\r\n const form = this.formStore[formName];\r\n if (!form) {\r\n return;\r\n }\r\n\r\n // 1. 初始化数据(添加 uid、isEdit 等字段)\r\n const initializedData = this.initializeData(data);\r\n\r\n // 2. 更新表单数据\r\n form.data = initializedData;\r\n\r\n // 3. 重新创建初始值快照\r\n form.initialSnapshot = {};\r\n initializedData.forEach((row) => {\r\n form.initialSnapshot[row.uid!] = this.createRowSnapshot(\r\n row,\r\n form.config.fields\r\n );\r\n });\r\n\r\n // 4. 清理编辑快照和校验结果\r\n form.editingSnapshot = {};\r\n form.validationResults = {};\r\n\r\n // 5. 重置 touched 状态\r\n form.allTouched = false;\r\n form.rowTouched = {};\r\n\r\n // 6. 如果配置了自动更新,更新外部数组引用\r\n this.autoUpdateArrayReference(formName);\r\n }\r\n}\r\n","/**\r\n * 自动检测 ant-modal-body 的宽度,并添加 narrow-width 类名\r\n * 当宽度小于 500px 时添加类名,否则移除\r\n */\r\nexport function initModalWidthDetector() {\r\n if (typeof window === 'undefined' || typeof document === 'undefined') {\r\n return;\r\n }\r\n\r\n // 检查单个元素的宽度\r\n function checkElementWidth(element: HTMLElement) {\r\n const width = element.offsetWidth;\r\n if (width < 500) {\r\n element.classList.add('narrow-width');\r\n } else {\r\n element.classList.remove('narrow-width');\r\n }\r\n }\r\n\r\n // 使用 MutationObserver 监听 DOM 变化\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n mutation.addedNodes.forEach((node) => {\r\n if (node.nodeType === Node.ELEMENT_NODE) {\r\n const element = node as HTMLElement;\r\n \r\n // 检查是否是 modal body\r\n if (element.classList?.contains('ant-modal-body')) {\r\n checkElementWidth(element);\r\n observeResize(element);\r\n }\r\n \r\n // 检查子元素中是否有 modal body\r\n const modalBodies = element.querySelectorAll?.('.ant-modal-body');\r\n modalBodies?.forEach((modalBody) => {\r\n checkElementWidth(modalBody as HTMLElement);\r\n observeResize(modalBody as HTMLElement);\r\n });\r\n }\r\n });\r\n });\r\n });\r\n\r\n // 使用 ResizeObserver 监听元素尺寸变化\r\n const resizeObserverMap = new WeakMap<HTMLElement, any>();\r\n \r\n function observeResize(element: HTMLElement) {\r\n if (resizeObserverMap.has(element)) {\r\n return;\r\n }\r\n\r\n if (typeof (window as any).ResizeObserver !== 'undefined') {\r\n const resizeObserver = new (window as any).ResizeObserver(() => {\r\n checkElementWidth(element);\r\n });\r\n resizeObserver.observe(element);\r\n resizeObserverMap.set(element, resizeObserver);\r\n }\r\n }\r\n\r\n // 开始监听 DOM 变化\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n\r\n // 检查已存在的 modal body\r\n document.querySelectorAll('.ant-modal-body').forEach((element) => {\r\n checkElementWidth(element as HTMLElement);\r\n observeResize(element as HTMLElement);\r\n });\r\n}\r\n","/*\r\n * Public API Surface of pro-table\r\n */\r\n\r\nexport * from \"./lib/pro-table.component\";\r\nexport * from \"./lib/pro-table.module\";\r\nexport * from \"./lib/constants\";\r\nexport * from \"./lib/type\";\r\nexport * from \"./lib/tokens\";\r\nexport * from \"./lib/plate-input/plate-prefix-load.service\";\r\nexport * from \"./lib/plate-input/plate-input.component\";\r\nexport * from \"./lib/plate-input/plate-input.module\";\r\nexport * from \"./lib/page-container/page-container.component\";\r\nexport * from \"./lib/page-container/page-container.module\";\r\nexport * from \"./lib/table-search-bar/table-search-bar.component\";\r\nexport * from \"./lib/table-search-bar/table-search-bar-module\";\r\nexport * from \"./lib/directives/trim-input.directive\";\r\nexport * from \"./lib/directives/trim-input.module\";\r\n\r\n// Export antd-form service and types\r\nexport { AntdFormService } from \"./lib/page-public/antd-form\";\r\nexport type {\r\n FieldErrorMessage,\r\n FieldErrorMessages,\r\n FieldConfig,\r\n FormModifyType,\r\n FormConfig,\r\n WatchOptions,\r\n AddFieldsConfigOptions,\r\n AddFieldsConfigResult,\r\n RemoveFieldsConfigOptions,\r\n RemoveFieldsConfigResult,\r\n} from \"./lib/page-public/antd-form\";\r\n\r\n// Export array-form service and types\r\nexport { ArrayFormService } from \"./lib/page-public/array-form\";\r\nexport type {\r\n ValidationResult,\r\n FieldValidator,\r\n FieldConfig as ArrayFieldConfig,\r\n ArrayFormRow,\r\n ArrayFormConfig,\r\n ArrayFormStoreItem,\r\n ArrayFormStore,\r\n} from \"./lib/page-public/array-form\";\r\n\r\n// Export modal width detector\r\nexport { initModalWidthDetector } from \"./lib/utils/modal-width-detector\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ColmunsSettingComponent as ɵa} from './lib/components/colmuns-setting/colmuns-setting.component';\nexport {DynamicSearchFieldComponent as ɵb} from './lib/components/dynamic-search-field/dynamic-search-field.component';"],"names":["InjectionToken","EventEmitter","isObservable","isEqual","hasIn","cloneDeep","isNil","debounce","Component","Optional","Inject","Input","Output","ContentChild","ContentChildren","TemplateRef","NgModule","CommonModule","FormsModule","HttpClientModule","RouterModule","NzCardModule","ReactiveFormsModule","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectorRef","ElementRef","Directive","NgControl","HostListener","NzGridModule","NzInputModule","NzPopoverModule","NzIconModule","NzSpaceModule","Sortable","ViewChild","ComponentFactoryResolver","ViewContainerRef","NzFormModule","NzSelectModule","NzButtonModule","NzTableModule","NzDatePickerModule","NzModalModule","NzCheckboxModule","NzTypographyModule","DragDropModule","NzAutocompleteModule","NzInputNumberModule","NzToolTipModule","Injectable","HttpClient","FormGroup","debounceTime","distinctUntilChanged","FormBuilder","uuidv4"],"mappings":"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"}