@taocompany/magic-grid 0.11.6 → 0.11.8

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.
Files changed (40) hide show
  1. package/README.md +4275 -4275
  2. package/dist/components/MagicGrid/MagicGrid.vue.d.ts.map +1 -1
  3. package/dist/components/MagicGrid/useMagicGrid.d.ts.map +1 -1
  4. package/dist/core/api/gridApi.d.ts +2 -2
  5. package/dist/core/api/gridApi.d.ts.map +1 -1
  6. package/dist/core/column/applyHeaderCells.d.ts +2 -0
  7. package/dist/core/column/applyHeaderCells.d.ts.map +1 -1
  8. package/dist/core/column/headerIcons.d.ts +2 -2
  9. package/dist/core/column/headerIcons.d.ts.map +1 -1
  10. package/dist/core/editing/validationFeedback.d.ts.map +1 -1
  11. package/dist/core/row/cellComp.d.ts +3 -3
  12. package/dist/core/row/cellComp.d.ts.map +1 -1
  13. package/dist/core/styling/cellStylePipeline.d.ts +1 -1
  14. package/dist/core/styling/cellStylePipeline.d.ts.map +1 -1
  15. package/dist/core/types/cellColor.d.ts +5 -3
  16. package/dist/core/types/cellColor.d.ts.map +1 -1
  17. package/dist/core/types/cellDisable.d.ts +1 -1
  18. package/dist/core/types/cellDisable.d.ts.map +1 -1
  19. package/dist/core/types/column.d.ts +1 -1
  20. package/dist/core/types/column.d.ts.map +1 -1
  21. package/dist/getRowDragCommitHierarchy-DoMf_SY8.cjs +2 -0
  22. package/dist/getRowDragCommitHierarchy-DoMf_SY8.cjs.map +1 -0
  23. package/dist/{getRowDragCommitHierarchy-B7IPg3aN.js → getRowDragCommitHierarchy-pWgukMAX.js} +115 -115
  24. package/dist/getRowDragCommitHierarchy-pWgukMAX.js.map +1 -0
  25. package/dist/index.cjs.js +6 -6
  26. package/dist/index.cjs.js.map +1 -1
  27. package/dist/index.es.js +5660 -5630
  28. package/dist/index.es.js.map +1 -1
  29. package/dist/style.css +1 -1
  30. package/dist/types/core.cjs.js +1 -1
  31. package/dist/types/core.d.ts +6 -6
  32. package/dist/types/core.es.js +2 -2
  33. package/dist/types/magic-grid.d.ts +3 -3
  34. package/dist/types/magic-grid.d.ts.map +1 -1
  35. package/dist/validation-BHqm5Flb.js.map +1 -1
  36. package/dist/validation-CD6lt5wS.cjs.map +1 -1
  37. package/package.json +98 -98
  38. package/dist/getRowDragCommitHierarchy-B7IPg3aN.js.map +0 -1
  39. package/dist/getRowDragCommitHierarchy-DcomCUbS.cjs +0 -2
  40. package/dist/getRowDragCommitHierarchy-DcomCUbS.cjs.map +0 -1
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../getRowDragCommitHierarchy-DcomCUbS.cjs");exports.DEFAULT_CELL_EDITOR_CACHE_KEY=e.n,exports.DEFAULT_EDITOR_ALIGN=e.g,exports.DEFAULT_INFINITE_BLOCK_SIZE=e.B,exports.DEFAULT_INFINITE_MAX_BLOCKS_IN_CACHE=e.V,exports.InfiniteRowModelConfigError=e.H,exports.RowMutationPersistError=e.y,exports.generateFocusedRowIds=e.T,exports.generateRowId=e.E,exports.generateSelectedRowIds=e.D,exports.getRowDragCommitHierarchy=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../getRowDragCommitHierarchy-DoMf_SY8.cjs");exports.DEFAULT_CELL_EDITOR_CACHE_KEY=e.n,exports.DEFAULT_EDITOR_ALIGN=e.u,exports.DEFAULT_INFINITE_BLOCK_SIZE=e.P,exports.DEFAULT_INFINITE_MAX_BLOCKS_IN_CACHE=e.F,exports.InfiniteRowModelConfigError=e.I,exports.RowMutationPersistError=e.p,exports.generateFocusedRowIds=e.y,exports.generateRowId=e.b,exports.generateSelectedRowIds=e.x,exports.getRowDragCommitHierarchy=e.t;
@@ -931,7 +931,7 @@ export declare interface Column {
931
931
  readonly useParserForClipboard?: boolean;
932
932
  /** Phase 24 块 13 · 复制是否走 formatter;默认 true */
933
933
  readonly useFormatterForClipboard?: boolean;
934
- /** 必填列(表头始终标红) */
934
+ /** 必填列(表头文字前显示红色 * 星号) */
935
935
  readonly validationRequired?: boolean;
936
936
  /** 是否参与表尾汇总;缺省时:有 summaryAgg 则为 true */
937
937
  readonly summary?: boolean;
@@ -1152,7 +1152,7 @@ export declare interface ColumnDef<TData = RowData> {
1152
1152
  useFormatterForClipboard?: boolean;
1153
1153
  /** async-validator 规则;通过 magic-grid/validation enrichColumnsWithValidation 编译 */
1154
1154
  validationRules?: ValidationRules;
1155
- /** 必填列标记(缺省由 validationRules.required 推导) */
1155
+ /** 必填列;表头文字前显示红色 *(缺省由 validationRules.required 推导) */
1156
1156
  validationRequired?: boolean;
1157
1157
  /** 是否参与表尾汇总;缺省时:有 summaryAgg 则为 true,否则 false */
1158
1158
  summary?: boolean;
@@ -2214,11 +2214,11 @@ export declare interface GridApi extends RowMutationGridApi {
2214
2214
  setRowStyle(rowStyle: RowStyle | undefined): void;
2215
2215
  /** Grid 级可编辑单元格样式;等价于更新 `editable-cell-style` prop。 */
2216
2216
  setEditableCellStyle(style: CellStyle | undefined): void;
2217
- /** 可编辑格 pencil-line 图标开关;等价于 `show-editable-cell-icon` prop。 */
2217
+ /** overlay 可编辑格 pencil-line 图标开关;inline 列不显示;等价于 `show-editable-cell-icon` prop。 */
2218
2218
  setShowEditableCellIcon(show: boolean): void;
2219
2219
  /** Grid 级 disabled 单元格样式;等价于更新 `disabled-cell-style` prop。 */
2220
2220
  setDisabledCellStyle(style: CellStyle | undefined): void;
2221
- /** disabled 格 pencil-off 图标开关;等价于 `show-disabled-cell-icon` prop。 */
2221
+ /** overlay disabled 格 pencil-off 图标开关;inline 列不显示;等价于 `show-disabled-cell-icon` prop。 */
2222
2222
  setShowDisabledCellIcon(show: boolean): void;
2223
2223
  /** API 临时高亮单格;`style=null` 清除 override 并回退声明式规则。 */
2224
2224
  setCellStyle(rowId: RowId, colId: string, style: CellStyle | null): void;
@@ -3194,14 +3194,14 @@ export declare interface MagicGridProps<TData = RowData> {
3194
3194
  * 仅对当前可编辑的表体用户列生效;未配置时不改变现有着色。
3195
3195
  */
3196
3196
  editableCellStyle?: CellStyle;
3197
- /** 可编辑格左侧 pencil-line;默认 false,与 editableCellStyle 独立 */
3197
+ /** 可编辑格左侧 pencil-line;默认 false,与 editableCellStyle 独立;inline 列不显示 */
3198
3198
  showEditableCellIcon?: boolean;
3199
3199
  /**
3200
3200
  * 禁用单元格样式(Grid 级 · 可选)。
3201
3201
  * 仅对当前 disabled 的表体用户列生效;未配置时不改变现有着色。
3202
3202
  */
3203
3203
  disabledCellStyle?: CellStyle;
3204
- /** disabled 格左侧 pencil-off;默认 false,与 disabledCellStyle 独立 */
3204
+ /** disabled 格左侧 pencil-off;默认 false,与 disabledCellStyle 独立;inline 列不显示 */
3205
3205
  showDisabledCellIcon?: boolean;
3206
3206
  }
3207
3207
 
@@ -1,2 +1,2 @@
1
- import { B as e, D as t, E as n, H as r, T as i, V as a, g as o, n as s, t as c, y as l } from "../getRowDragCommitHierarchy-B7IPg3aN.js";
2
- export { s as DEFAULT_CELL_EDITOR_CACHE_KEY, o as DEFAULT_EDITOR_ALIGN, e as DEFAULT_INFINITE_BLOCK_SIZE, a as DEFAULT_INFINITE_MAX_BLOCKS_IN_CACHE, r as InfiniteRowModelConfigError, l as RowMutationPersistError, i as generateFocusedRowIds, n as generateRowId, t as generateSelectedRowIds, c as getRowDragCommitHierarchy };
1
+ import { F as e, I as t, P as n, b as r, n as i, p as a, t as o, u as s, x as c, y as l } from "../getRowDragCommitHierarchy-pWgukMAX.js";
2
+ export { i as DEFAULT_CELL_EDITOR_CACHE_KEY, s as DEFAULT_EDITOR_ALIGN, n as DEFAULT_INFINITE_BLOCK_SIZE, e as DEFAULT_INFINITE_MAX_BLOCKS_IN_CACHE, t as InfiniteRowModelConfigError, a as RowMutationPersistError, l as generateFocusedRowIds, r as generateRowId, c as generateSelectedRowIds, o as getRowDragCommitHierarchy };
@@ -235,7 +235,7 @@ export interface ColumnDef<TData = RowData> {
235
235
  useFormatterForClipboard?: boolean;
236
236
  /** async-validator 规则;通过 magic-grid/validation enrichColumnsWithValidation 编译 */
237
237
  validationRules?: ValidationRules;
238
- /** 必填列标记(缺省由 validationRules.required 推导) */
238
+ /** 必填列;表头文字前显示红色 *(缺省由 validationRules.required 推导) */
239
239
  validationRequired?: boolean;
240
240
  /** 是否参与表尾汇总;缺省时:有 summaryAgg 则为 true,否则 false */
241
241
  summary?: boolean;
@@ -697,14 +697,14 @@ export interface MagicGridProps<TData = RowData> {
697
697
  * 仅对当前可编辑的表体用户列生效;未配置时不改变现有着色。
698
698
  */
699
699
  editableCellStyle?: CellStyle;
700
- /** 可编辑格左侧 pencil-line;默认 false,与 editableCellStyle 独立 */
700
+ /** 可编辑格左侧 pencil-line;默认 false,与 editableCellStyle 独立;inline 列不显示 */
701
701
  showEditableCellIcon?: boolean;
702
702
  /**
703
703
  * 禁用单元格样式(Grid 级 · 可选)。
704
704
  * 仅对当前 disabled 的表体用户列生效;未配置时不改变现有着色。
705
705
  */
706
706
  disabledCellStyle?: CellStyle;
707
- /** disabled 格左侧 pencil-off;默认 false,与 disabledCellStyle 独立 */
707
+ /** disabled 格左侧 pencil-off;默认 false,与 disabledCellStyle 独立;inline 列不显示 */
708
708
  showDisabledCellIcon?: boolean;
709
709
  }
710
710
  /** `#loading` / `#no-rows` / `#no-matching-rows` 插槽 props */
@@ -1 +1 @@
1
- {"version":3,"file":"magic-grid.d.ts","sourceRoot":"","sources":["../../src/types/magic-grid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"magic-grid.d.ts","sourceRoot":"","sources":["../../src/types/magic-grid.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation-BHqm5Flb.js","names":[],"sources":["../src/core/editing/editCommitContext.ts","../src/validation/asyncValidatorAdapter.ts"],"sourcesContent":["/** 编辑会话阶段 */\nexport type EditSessionPhase = 'idle' | 'editing' | 'committing' | 'cancelling'\n\n/** 单次提交上下文:abort 与 commitId 防竞态 */\nexport interface EditCommitContext {\n signal: AbortSignal\n commitId: number\n}\n\nexport class EditCommitAbortedError extends Error {\n readonly name = 'EditCommitAbortedError'\n\n constructor(message = 'Edit commit aborted') {\n super(message)\n }\n}\n\nexport function isEditCommitAborted(error: unknown): error is EditCommitAbortedError {\n return error instanceof EditCommitAbortedError\n}\n\nexport interface EditCommitController {\n context: EditCommitContext\n abort: () => void\n}\n\n/** 创建新的提交控制器;若传入 previous 则先 abort */\nexport function createEditCommitController(\n commitId: number,\n previous?: EditCommitController | null,\n): EditCommitController {\n previous?.abort()\n\n const controller = new AbortController()\n const context: EditCommitContext = {\n signal: controller.signal,\n commitId,\n }\n\n return {\n context,\n abort: () => {\n if (!controller.signal.aborted) {\n controller.abort(new EditCommitAbortedError())\n }\n },\n }\n}\n\nexport function throwIfAborted(signal: AbortSignal): void {\n if (signal.aborted) {\n throw new EditCommitAbortedError()\n }\n}\n\nexport async function onceAborted(signal: AbortSignal): Promise<never> {\n if (signal.aborted) {\n throw new EditCommitAbortedError()\n }\n\n return new Promise((_, reject) => {\n const onAbort = (): void => {\n signal.removeEventListener('abort', onAbort)\n reject(new EditCommitAbortedError())\n }\n\n signal.addEventListener('abort', onAbort)\n })\n}\n","import Schema, {\n type Rule,\n type Rules,\n type ValidateError,\n type ValidateFieldsError,\n} from 'async-validator'\n\nimport { isEditCommitAborted } from '@core/editing/editCommitContext'\nimport type { CellValidator, RowValidator, ValidationSchema } from '@core/types/validation'\nimport type { ColumnDef } from '@types'\n\nexport { default as Schema } from 'async-validator'\n\nfunction formatValidateErrors(errors: ValidateError[]): string[] {\n return errors.map((error) => error.message ?? String(error.field))\n}\n\nfunction raceWithAbort<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T> {\n if (!signal) {\n return promise\n }\n\n if (signal.aborted) {\n return Promise.reject(signal.reason)\n }\n\n return new Promise((resolve, reject) => {\n const onAbort = (): void => {\n signal.removeEventListener('abort', onAbort)\n reject(signal.reason)\n }\n\n signal.addEventListener('abort', onAbort)\n promise.then(\n (value) => {\n signal.removeEventListener('abort', onAbort)\n resolve(value)\n },\n (error) => {\n signal.removeEventListener('abort', onAbort)\n reject(error)\n },\n )\n })\n}\n\nfunction isAsyncFunction(fn: (...args: unknown[]) => unknown): boolean {\n return fn.constructor.name === 'AsyncFunction'\n}\n\n/** magic-grid validationRules 使用 validator;async-validator 异步规则使用 asyncValidator */\nfunction normalizeRule(rule: Rule): Rule {\n const record = rule as Record<string, unknown>\n const customValidator = record.validator\n\n if (typeof customValidator === 'function' && record.asyncValidator == null) {\n if (isAsyncFunction(customValidator as (...args: unknown[]) => unknown)) {\n const { validator, ...rest } = record\n return { ...rest, asyncValidator: validator } as Rule\n }\n }\n\n return rule\n}\n\nfunction normalizeRules(rules: Rule | Rule[]): Rule[] {\n const list = Array.isArray(rules) ? rules : [rules]\n return list.map(normalizeRule)\n}\n\nfunction normalizeSchema(schema: Rules): Rules {\n const normalized: Record<string, Rule | Rule[]> = {}\n\n for (const [field, rules] of Object.entries(schema)) {\n normalized[field] = normalizeRules(rules as Rule | Rule[])\n }\n\n return normalized as Rules\n}\n\nexport async function validateWithSchema(\n schema: Rules,\n source: Record<string, unknown>,\n options?: { signal?: AbortSignal },\n): Promise<string[] | null> {\n const validator = new Schema(normalizeSchema(schema as Rules))\n\n try {\n await raceWithAbort(validator.validate(source), options?.signal)\n return null\n } catch (error) {\n if (isEditCommitAborted(error)) {\n throw error\n }\n\n if (error && typeof error === 'object' && 'errors' in error) {\n const fieldError = error as ValidateFieldsError\n return formatValidateErrors(fieldError.errors ?? [])\n }\n\n if (error instanceof Error) {\n return [error.message]\n }\n\n return ['Validation failed']\n }\n}\n\nexport function createCellValidator(field: string, rules: Rule | Rule[]): CellValidator {\n const schema = { [field]: rules } as Rules\n\n return async (params) => {\n const source = {\n [field]: params.parsedValue,\n }\n return validateWithSchema(schema, source, { signal: params.signal })\n }\n}\n\nexport function createRowValidator(schema: ValidationSchema): RowValidator {\n return async (params) => {\n const source: Record<string, unknown> = { ...params.data }\n for (const [colId, value] of params.draftValues) {\n source[colId] = value\n }\n\n return validateWithSchema(schema as Rules, source, { signal: params.signal })\n }\n}\n\n/** 判断 validationRules 是否包含 required 规则 */\nexport function isValidationRequired(rules?: import('@core/types/validation').ValidationRules): boolean {\n if (!rules) {\n return false\n }\n\n const list = Array.isArray(rules) ? rules : [rules]\n return list.some((rule) => {\n const record = rule as Record<string, unknown>\n return record.required === true\n })\n}\n\n/** 将 ColumnDef.validationRules 编译为 cellValidator(不覆盖已有 cellValidator) */\nexport function enrichColumnsWithValidation(columns: ColumnDef[]): ColumnDef[] {\n return columns.map((column) => {\n const validationRequired =\n column.validationRequired ?? isValidationRequired(column.validationRules)\n\n if (column.cellValidator || !column.validationRules || !column.prop) {\n return validationRequired === column.validationRequired\n ? column\n : { ...column, validationRequired }\n }\n\n const field = column.prop\n return {\n ...column,\n validationRequired,\n cellValidator: createCellValidator(field, column.validationRules as Rule | Rule[]),\n }\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"validation-BHqm5Flb.js","names":[],"sources":["../src/core/editing/editCommitContext.ts","../src/validation/asyncValidatorAdapter.ts"],"sourcesContent":["/** 编辑会话阶段 */\nexport type EditSessionPhase = 'idle' | 'editing' | 'committing' | 'cancelling'\n\n/** 单次提交上下文:abort 与 commitId 防竞态 */\nexport interface EditCommitContext {\n signal: AbortSignal\n commitId: number\n}\n\nexport class EditCommitAbortedError extends Error {\n readonly name = 'EditCommitAbortedError'\n\n constructor(message = 'Edit commit aborted') {\n super(message)\n }\n}\n\nexport function isEditCommitAborted(error: unknown): error is EditCommitAbortedError {\n return error instanceof EditCommitAbortedError\n}\n\nexport interface EditCommitController {\n context: EditCommitContext\n abort: () => void\n}\n\n/** 创建新的提交控制器;若传入 previous 则先 abort */\nexport function createEditCommitController(\n commitId: number,\n previous?: EditCommitController | null,\n): EditCommitController {\n previous?.abort()\n\n const controller = new AbortController()\n const context: EditCommitContext = {\n signal: controller.signal,\n commitId,\n }\n\n return {\n context,\n abort: () => {\n if (!controller.signal.aborted) {\n controller.abort(new EditCommitAbortedError())\n }\n },\n }\n}\n\nexport function throwIfAborted(signal: AbortSignal): void {\n if (signal.aborted) {\n throw new EditCommitAbortedError()\n }\n}\n\nexport async function onceAborted(signal: AbortSignal): Promise<never> {\n if (signal.aborted) {\n throw new EditCommitAbortedError()\n }\n\n return new Promise((_, reject) => {\n const onAbort = (): void => {\n signal.removeEventListener('abort', onAbort)\n reject(new EditCommitAbortedError())\n }\n\n signal.addEventListener('abort', onAbort)\n })\n}\n","import Schema, {\r\n type Rule,\r\n type Rules,\r\n type ValidateError,\r\n type ValidateFieldsError,\r\n} from 'async-validator'\r\n\r\nimport { isEditCommitAborted } from '@core/editing/editCommitContext'\r\nimport type { CellValidator, RowValidator, ValidationSchema } from '@core/types/validation'\r\nimport type { ColumnDef } from '@types'\r\n\r\nexport { default as Schema } from 'async-validator'\r\n\r\nfunction formatValidateErrors(errors: ValidateError[]): string[] {\r\n return errors.map((error) => error.message ?? String(error.field))\r\n}\r\n\r\nfunction raceWithAbort<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T> {\r\n if (!signal) {\r\n return promise\r\n }\r\n\r\n if (signal.aborted) {\r\n return Promise.reject(signal.reason)\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const onAbort = (): void => {\r\n signal.removeEventListener('abort', onAbort)\r\n reject(signal.reason)\r\n }\r\n\r\n signal.addEventListener('abort', onAbort)\r\n promise.then(\r\n (value) => {\r\n signal.removeEventListener('abort', onAbort)\r\n resolve(value)\r\n },\r\n (error) => {\r\n signal.removeEventListener('abort', onAbort)\r\n reject(error)\r\n },\r\n )\r\n })\r\n}\r\n\r\nfunction isAsyncFunction(fn: (...args: unknown[]) => unknown): boolean {\r\n return fn.constructor.name === 'AsyncFunction'\r\n}\r\n\r\n/** magic-grid validationRules 使用 validator;async-validator 异步规则使用 asyncValidator */\r\nfunction normalizeRule(rule: Rule): Rule {\r\n const record = rule as Record<string, unknown>\r\n const customValidator = record.validator\r\n\r\n if (typeof customValidator === 'function' && record.asyncValidator == null) {\r\n if (isAsyncFunction(customValidator as (...args: unknown[]) => unknown)) {\r\n const { validator, ...rest } = record\r\n return { ...rest, asyncValidator: validator } as Rule\r\n }\r\n }\r\n\r\n return rule\r\n}\r\n\r\nfunction normalizeRules(rules: Rule | Rule[]): Rule[] {\r\n const list = Array.isArray(rules) ? rules : [rules]\r\n return list.map(normalizeRule)\r\n}\r\n\r\nfunction normalizeSchema(schema: Rules): Rules {\r\n const normalized: Record<string, Rule | Rule[]> = {}\r\n\r\n for (const [field, rules] of Object.entries(schema)) {\r\n normalized[field] = normalizeRules(rules as Rule | Rule[])\r\n }\r\n\r\n return normalized as Rules\r\n}\r\n\r\nexport async function validateWithSchema(\r\n schema: Rules,\r\n source: Record<string, unknown>,\r\n options?: { signal?: AbortSignal },\r\n): Promise<string[] | null> {\r\n const validator = new Schema(normalizeSchema(schema as Rules))\r\n\r\n try {\r\n await raceWithAbort(validator.validate(source), options?.signal)\r\n return null\r\n } catch (error) {\r\n if (isEditCommitAborted(error)) {\r\n throw error\r\n }\r\n\r\n if (error && typeof error === 'object' && 'errors' in error) {\r\n const fieldError = error as ValidateFieldsError\r\n return formatValidateErrors(fieldError.errors ?? [])\r\n }\r\n\r\n if (error instanceof Error) {\r\n return [error.message]\r\n }\r\n\r\n return ['Validation failed']\r\n }\r\n}\r\n\r\nexport function createCellValidator(field: string, rules: Rule | Rule[]): CellValidator {\r\n const schema = { [field]: rules } as Rules\r\n\r\n return async (params) => {\r\n const source = {\r\n [field]: params.parsedValue,\r\n }\r\n return validateWithSchema(schema, source, { signal: params.signal })\r\n }\r\n}\r\n\r\nexport function createRowValidator(schema: ValidationSchema): RowValidator {\r\n return async (params) => {\r\n const source: Record<string, unknown> = { ...params.data }\r\n for (const [colId, value] of params.draftValues) {\r\n source[colId] = value\r\n }\r\n\r\n return validateWithSchema(schema as Rules, source, { signal: params.signal })\r\n }\r\n}\r\n\r\n/** 判断 validationRules 是否包含 required 规则 */\r\nexport function isValidationRequired(rules?: import('@core/types/validation').ValidationRules): boolean {\r\n if (!rules) {\r\n return false\r\n }\r\n\r\n const list = Array.isArray(rules) ? rules : [rules]\r\n return list.some((rule) => {\r\n const record = rule as Record<string, unknown>\r\n return record.required === true\r\n })\r\n}\r\n\r\n/** 将 ColumnDef.validationRules 编译为 cellValidator(不覆盖已有 cellValidator) */\r\nexport function enrichColumnsWithValidation(columns: ColumnDef[]): ColumnDef[] {\r\n return columns.map((column) => {\r\n const validationRequired =\r\n column.validationRequired ?? isValidationRequired(column.validationRules)\r\n\r\n if (column.cellValidator || !column.validationRules || !column.prop) {\r\n return validationRequired === column.validationRequired\r\n ? column\r\n : { ...column, validationRequired }\r\n }\r\n\r\n const field = column.prop\r\n return {\r\n ...column,\r\n validationRequired,\r\n cellValidator: createCellValidator(field, column.validationRules as Rule | Rule[]),\r\n }\r\n })\r\n}\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation-CD6lt5wS.cjs","names":[],"sources":["../src/core/editing/editCommitContext.ts","../src/validation/asyncValidatorAdapter.ts"],"sourcesContent":["/** 编辑会话阶段 */\nexport type EditSessionPhase = 'idle' | 'editing' | 'committing' | 'cancelling'\n\n/** 单次提交上下文:abort 与 commitId 防竞态 */\nexport interface EditCommitContext {\n signal: AbortSignal\n commitId: number\n}\n\nexport class EditCommitAbortedError extends Error {\n readonly name = 'EditCommitAbortedError'\n\n constructor(message = 'Edit commit aborted') {\n super(message)\n }\n}\n\nexport function isEditCommitAborted(error: unknown): error is EditCommitAbortedError {\n return error instanceof EditCommitAbortedError\n}\n\nexport interface EditCommitController {\n context: EditCommitContext\n abort: () => void\n}\n\n/** 创建新的提交控制器;若传入 previous 则先 abort */\nexport function createEditCommitController(\n commitId: number,\n previous?: EditCommitController | null,\n): EditCommitController {\n previous?.abort()\n\n const controller = new AbortController()\n const context: EditCommitContext = {\n signal: controller.signal,\n commitId,\n }\n\n return {\n context,\n abort: () => {\n if (!controller.signal.aborted) {\n controller.abort(new EditCommitAbortedError())\n }\n },\n }\n}\n\nexport function throwIfAborted(signal: AbortSignal): void {\n if (signal.aborted) {\n throw new EditCommitAbortedError()\n }\n}\n\nexport async function onceAborted(signal: AbortSignal): Promise<never> {\n if (signal.aborted) {\n throw new EditCommitAbortedError()\n }\n\n return new Promise((_, reject) => {\n const onAbort = (): void => {\n signal.removeEventListener('abort', onAbort)\n reject(new EditCommitAbortedError())\n }\n\n signal.addEventListener('abort', onAbort)\n })\n}\n","import Schema, {\n type Rule,\n type Rules,\n type ValidateError,\n type ValidateFieldsError,\n} from 'async-validator'\n\nimport { isEditCommitAborted } from '@core/editing/editCommitContext'\nimport type { CellValidator, RowValidator, ValidationSchema } from '@core/types/validation'\nimport type { ColumnDef } from '@types'\n\nexport { default as Schema } from 'async-validator'\n\nfunction formatValidateErrors(errors: ValidateError[]): string[] {\n return errors.map((error) => error.message ?? String(error.field))\n}\n\nfunction raceWithAbort<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T> {\n if (!signal) {\n return promise\n }\n\n if (signal.aborted) {\n return Promise.reject(signal.reason)\n }\n\n return new Promise((resolve, reject) => {\n const onAbort = (): void => {\n signal.removeEventListener('abort', onAbort)\n reject(signal.reason)\n }\n\n signal.addEventListener('abort', onAbort)\n promise.then(\n (value) => {\n signal.removeEventListener('abort', onAbort)\n resolve(value)\n },\n (error) => {\n signal.removeEventListener('abort', onAbort)\n reject(error)\n },\n )\n })\n}\n\nfunction isAsyncFunction(fn: (...args: unknown[]) => unknown): boolean {\n return fn.constructor.name === 'AsyncFunction'\n}\n\n/** magic-grid validationRules 使用 validator;async-validator 异步规则使用 asyncValidator */\nfunction normalizeRule(rule: Rule): Rule {\n const record = rule as Record<string, unknown>\n const customValidator = record.validator\n\n if (typeof customValidator === 'function' && record.asyncValidator == null) {\n if (isAsyncFunction(customValidator as (...args: unknown[]) => unknown)) {\n const { validator, ...rest } = record\n return { ...rest, asyncValidator: validator } as Rule\n }\n }\n\n return rule\n}\n\nfunction normalizeRules(rules: Rule | Rule[]): Rule[] {\n const list = Array.isArray(rules) ? rules : [rules]\n return list.map(normalizeRule)\n}\n\nfunction normalizeSchema(schema: Rules): Rules {\n const normalized: Record<string, Rule | Rule[]> = {}\n\n for (const [field, rules] of Object.entries(schema)) {\n normalized[field] = normalizeRules(rules as Rule | Rule[])\n }\n\n return normalized as Rules\n}\n\nexport async function validateWithSchema(\n schema: Rules,\n source: Record<string, unknown>,\n options?: { signal?: AbortSignal },\n): Promise<string[] | null> {\n const validator = new Schema(normalizeSchema(schema as Rules))\n\n try {\n await raceWithAbort(validator.validate(source), options?.signal)\n return null\n } catch (error) {\n if (isEditCommitAborted(error)) {\n throw error\n }\n\n if (error && typeof error === 'object' && 'errors' in error) {\n const fieldError = error as ValidateFieldsError\n return formatValidateErrors(fieldError.errors ?? [])\n }\n\n if (error instanceof Error) {\n return [error.message]\n }\n\n return ['Validation failed']\n }\n}\n\nexport function createCellValidator(field: string, rules: Rule | Rule[]): CellValidator {\n const schema = { [field]: rules } as Rules\n\n return async (params) => {\n const source = {\n [field]: params.parsedValue,\n }\n return validateWithSchema(schema, source, { signal: params.signal })\n }\n}\n\nexport function createRowValidator(schema: ValidationSchema): RowValidator {\n return async (params) => {\n const source: Record<string, unknown> = { ...params.data }\n for (const [colId, value] of params.draftValues) {\n source[colId] = value\n }\n\n return validateWithSchema(schema as Rules, source, { signal: params.signal })\n }\n}\n\n/** 判断 validationRules 是否包含 required 规则 */\nexport function isValidationRequired(rules?: import('@core/types/validation').ValidationRules): boolean {\n if (!rules) {\n return false\n }\n\n const list = Array.isArray(rules) ? rules : [rules]\n return list.some((rule) => {\n const record = rule as Record<string, unknown>\n return record.required === true\n })\n}\n\n/** 将 ColumnDef.validationRules 编译为 cellValidator(不覆盖已有 cellValidator) */\nexport function enrichColumnsWithValidation(columns: ColumnDef[]): ColumnDef[] {\n return columns.map((column) => {\n const validationRequired =\n column.validationRequired ?? isValidationRequired(column.validationRules)\n\n if (column.cellValidator || !column.validationRules || !column.prop) {\n return validationRequired === column.validationRequired\n ? column\n : { ...column, validationRequired }\n }\n\n const field = column.prop\n return {\n ...column,\n validationRequired,\n cellValidator: createCellValidator(field, column.validationRules as Rule | Rule[]),\n }\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"validation-CD6lt5wS.cjs","names":[],"sources":["../src/core/editing/editCommitContext.ts","../src/validation/asyncValidatorAdapter.ts"],"sourcesContent":["/** 编辑会话阶段 */\nexport type EditSessionPhase = 'idle' | 'editing' | 'committing' | 'cancelling'\n\n/** 单次提交上下文:abort 与 commitId 防竞态 */\nexport interface EditCommitContext {\n signal: AbortSignal\n commitId: number\n}\n\nexport class EditCommitAbortedError extends Error {\n readonly name = 'EditCommitAbortedError'\n\n constructor(message = 'Edit commit aborted') {\n super(message)\n }\n}\n\nexport function isEditCommitAborted(error: unknown): error is EditCommitAbortedError {\n return error instanceof EditCommitAbortedError\n}\n\nexport interface EditCommitController {\n context: EditCommitContext\n abort: () => void\n}\n\n/** 创建新的提交控制器;若传入 previous 则先 abort */\nexport function createEditCommitController(\n commitId: number,\n previous?: EditCommitController | null,\n): EditCommitController {\n previous?.abort()\n\n const controller = new AbortController()\n const context: EditCommitContext = {\n signal: controller.signal,\n commitId,\n }\n\n return {\n context,\n abort: () => {\n if (!controller.signal.aborted) {\n controller.abort(new EditCommitAbortedError())\n }\n },\n }\n}\n\nexport function throwIfAborted(signal: AbortSignal): void {\n if (signal.aborted) {\n throw new EditCommitAbortedError()\n }\n}\n\nexport async function onceAborted(signal: AbortSignal): Promise<never> {\n if (signal.aborted) {\n throw new EditCommitAbortedError()\n }\n\n return new Promise((_, reject) => {\n const onAbort = (): void => {\n signal.removeEventListener('abort', onAbort)\n reject(new EditCommitAbortedError())\n }\n\n signal.addEventListener('abort', onAbort)\n })\n}\n","import Schema, {\r\n type Rule,\r\n type Rules,\r\n type ValidateError,\r\n type ValidateFieldsError,\r\n} from 'async-validator'\r\n\r\nimport { isEditCommitAborted } from '@core/editing/editCommitContext'\r\nimport type { CellValidator, RowValidator, ValidationSchema } from '@core/types/validation'\r\nimport type { ColumnDef } from '@types'\r\n\r\nexport { default as Schema } from 'async-validator'\r\n\r\nfunction formatValidateErrors(errors: ValidateError[]): string[] {\r\n return errors.map((error) => error.message ?? String(error.field))\r\n}\r\n\r\nfunction raceWithAbort<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T> {\r\n if (!signal) {\r\n return promise\r\n }\r\n\r\n if (signal.aborted) {\r\n return Promise.reject(signal.reason)\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const onAbort = (): void => {\r\n signal.removeEventListener('abort', onAbort)\r\n reject(signal.reason)\r\n }\r\n\r\n signal.addEventListener('abort', onAbort)\r\n promise.then(\r\n (value) => {\r\n signal.removeEventListener('abort', onAbort)\r\n resolve(value)\r\n },\r\n (error) => {\r\n signal.removeEventListener('abort', onAbort)\r\n reject(error)\r\n },\r\n )\r\n })\r\n}\r\n\r\nfunction isAsyncFunction(fn: (...args: unknown[]) => unknown): boolean {\r\n return fn.constructor.name === 'AsyncFunction'\r\n}\r\n\r\n/** magic-grid validationRules 使用 validator;async-validator 异步规则使用 asyncValidator */\r\nfunction normalizeRule(rule: Rule): Rule {\r\n const record = rule as Record<string, unknown>\r\n const customValidator = record.validator\r\n\r\n if (typeof customValidator === 'function' && record.asyncValidator == null) {\r\n if (isAsyncFunction(customValidator as (...args: unknown[]) => unknown)) {\r\n const { validator, ...rest } = record\r\n return { ...rest, asyncValidator: validator } as Rule\r\n }\r\n }\r\n\r\n return rule\r\n}\r\n\r\nfunction normalizeRules(rules: Rule | Rule[]): Rule[] {\r\n const list = Array.isArray(rules) ? rules : [rules]\r\n return list.map(normalizeRule)\r\n}\r\n\r\nfunction normalizeSchema(schema: Rules): Rules {\r\n const normalized: Record<string, Rule | Rule[]> = {}\r\n\r\n for (const [field, rules] of Object.entries(schema)) {\r\n normalized[field] = normalizeRules(rules as Rule | Rule[])\r\n }\r\n\r\n return normalized as Rules\r\n}\r\n\r\nexport async function validateWithSchema(\r\n schema: Rules,\r\n source: Record<string, unknown>,\r\n options?: { signal?: AbortSignal },\r\n): Promise<string[] | null> {\r\n const validator = new Schema(normalizeSchema(schema as Rules))\r\n\r\n try {\r\n await raceWithAbort(validator.validate(source), options?.signal)\r\n return null\r\n } catch (error) {\r\n if (isEditCommitAborted(error)) {\r\n throw error\r\n }\r\n\r\n if (error && typeof error === 'object' && 'errors' in error) {\r\n const fieldError = error as ValidateFieldsError\r\n return formatValidateErrors(fieldError.errors ?? [])\r\n }\r\n\r\n if (error instanceof Error) {\r\n return [error.message]\r\n }\r\n\r\n return ['Validation failed']\r\n }\r\n}\r\n\r\nexport function createCellValidator(field: string, rules: Rule | Rule[]): CellValidator {\r\n const schema = { [field]: rules } as Rules\r\n\r\n return async (params) => {\r\n const source = {\r\n [field]: params.parsedValue,\r\n }\r\n return validateWithSchema(schema, source, { signal: params.signal })\r\n }\r\n}\r\n\r\nexport function createRowValidator(schema: ValidationSchema): RowValidator {\r\n return async (params) => {\r\n const source: Record<string, unknown> = { ...params.data }\r\n for (const [colId, value] of params.draftValues) {\r\n source[colId] = value\r\n }\r\n\r\n return validateWithSchema(schema as Rules, source, { signal: params.signal })\r\n }\r\n}\r\n\r\n/** 判断 validationRules 是否包含 required 规则 */\r\nexport function isValidationRequired(rules?: import('@core/types/validation').ValidationRules): boolean {\r\n if (!rules) {\r\n return false\r\n }\r\n\r\n const list = Array.isArray(rules) ? rules : [rules]\r\n return list.some((rule) => {\r\n const record = rule as Record<string, unknown>\r\n return record.required === true\r\n })\r\n}\r\n\r\n/** 将 ColumnDef.validationRules 编译为 cellValidator(不覆盖已有 cellValidator) */\r\nexport function enrichColumnsWithValidation(columns: ColumnDef[]): ColumnDef[] {\r\n return columns.map((column) => {\r\n const validationRequired =\r\n column.validationRequired ?? isValidationRequired(column.validationRules)\r\n\r\n if (column.cellValidator || !column.validationRules || !column.prop) {\r\n return validationRequired === column.validationRequired\r\n ? column\r\n : { ...column, validationRequired }\r\n }\r\n\r\n const field = column.prop\r\n return {\r\n ...column,\r\n validationRequired,\r\n cellValidator: createCellValidator(field, column.validationRules as Rule | Rule[]),\r\n }\r\n })\r\n}\r\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,98 +1,98 @@
1
- {
2
- "name": "@taocompany/magic-grid",
3
- "version": "0.11.6",
4
- "description": "A high-performance virtual table component library for Vue 3",
5
- "type": "module",
6
- "license": "MIT",
7
- "author": "songjiuzhang <jiuzhang.song@taoandcompany02.com>",
8
- "keywords": [
9
- "vue",
10
- "vue3",
11
- "virtual-table",
12
- "virtual-grid",
13
- "component-library",
14
- "magic-grid"
15
- ],
16
- "exports": {
17
- ".": {
18
- "types": "./dist/index.d.ts",
19
- "import": "./dist/index.es.js",
20
- "require": "./dist/index.cjs.js"
21
- },
22
- "./types/core": {
23
- "types": "./dist/types/core.d.ts",
24
- "import": "./dist/types/core.es.js",
25
- "require": "./dist/types/core.cjs.js"
26
- },
27
- "./types/validation": {
28
- "types": "./dist/types/validation.d.ts",
29
- "import": "./dist/types/validation.es.js",
30
- "require": "./dist/types/validation.cjs.js"
31
- },
32
- "./validation": {
33
- "types": "./dist/validation.d.ts",
34
- "import": "./dist/validation.es.js",
35
- "require": "./dist/validation.cjs.js"
36
- },
37
- "./style.css": "./dist/style.css"
38
- },
39
- "main": "./dist/index.cjs.js",
40
- "module": "./dist/index.es.js",
41
- "types": "./dist/index.d.ts",
42
- "files": [
43
- "dist"
44
- ],
45
- "sideEffects": [
46
- "dist/style.css",
47
- "**/*.css"
48
- ],
49
- "publishConfig": {
50
- "access": "public",
51
- "registry": "https://registry.npmjs.org/"
52
- },
53
- "engines": {
54
- "node": ">=20.19"
55
- },
56
- "packageManager": "pnpm@12.5.1",
57
- "scripts": {
58
- "dev": "vite --config vite.config.playground.ts",
59
- "build": "vue-tsc -p tsconfig.build.json --noEmit && vite build && node --experimental-strip-types scripts/bundle-types.ts",
60
- "build:playground": "vite build --config vite.config.playground.ts",
61
- "preview": "vite preview --config vite.config.playground.ts",
62
- "typecheck": "vue-tsc -p tsconfig.build.json --noEmit",
63
- "test": "vitest",
64
- "test:run": "vitest run",
65
- "test:perf": "vitest run --include 'src/__tests__/**/*.perf.test.ts'",
66
- "test:coverage": "vitest run --coverage",
67
- "prepublishOnly": "pnpm run build",
68
- "deploy:dev": "node --experimental-strip-types scripts/deploy-dev.ts",
69
- "publish:dev": "node --experimental-strip-types scripts/publish-dev.ts",
70
- "docs:api": "node --experimental-strip-types scripts/generate-docs-api-entries.ts"
71
- },
72
- "peerDependencies": {
73
- "async-validator": "^4.2.0",
74
- "vue": "^3.5.0"
75
- },
76
- "devDependencies": {
77
- "@microsoft/api-extractor": "^7.55.0",
78
- "@vitejs/plugin-vue": "^6.0.8",
79
- "@vitest/coverage-v8": "^4.1.10",
80
- "@vue/test-utils": "^2.4.11",
81
- "@vue/tsconfig": "^0.8.1",
82
- "async-validator": "^4.2.5",
83
- "element-plus": "^2.14.3",
84
- "happy-dom": "^20.11.1",
85
- "less": "^4.8.1",
86
- "shiki": "^4.4.3",
87
- "typescript": "^5.9.3",
88
- "vite": "^8.2.0",
89
- "vite-plugin-dts": "^5.0.3",
90
- "vitest": "^4.1.10",
91
- "vue": "^3.5.40",
92
- "vue-router": "^4.6.4",
93
- "vue-tsc": "^3.2.0"
94
- },
95
- "dependencies": {
96
- "@lucide/vue": "^1.28.0"
97
- }
98
- }
1
+ {
2
+ "name": "@taocompany/magic-grid",
3
+ "version": "0.11.8",
4
+ "description": "A high-performance virtual table component library for Vue 3",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "songjiuzhang <jiuzhang.song@taoandcompany02.com>",
8
+ "keywords": [
9
+ "vue",
10
+ "vue3",
11
+ "virtual-table",
12
+ "virtual-grid",
13
+ "component-library",
14
+ "magic-grid"
15
+ ],
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.es.js",
20
+ "require": "./dist/index.cjs.js"
21
+ },
22
+ "./types/core": {
23
+ "types": "./dist/types/core.d.ts",
24
+ "import": "./dist/types/core.es.js",
25
+ "require": "./dist/types/core.cjs.js"
26
+ },
27
+ "./types/validation": {
28
+ "types": "./dist/types/validation.d.ts",
29
+ "import": "./dist/types/validation.es.js",
30
+ "require": "./dist/types/validation.cjs.js"
31
+ },
32
+ "./validation": {
33
+ "types": "./dist/validation.d.ts",
34
+ "import": "./dist/validation.es.js",
35
+ "require": "./dist/validation.cjs.js"
36
+ },
37
+ "./style.css": "./dist/style.css"
38
+ },
39
+ "main": "./dist/index.cjs.js",
40
+ "module": "./dist/index.es.js",
41
+ "types": "./dist/index.d.ts",
42
+ "files": [
43
+ "dist"
44
+ ],
45
+ "sideEffects": [
46
+ "dist/style.css",
47
+ "**/*.css"
48
+ ],
49
+ "publishConfig": {
50
+ "access": "public",
51
+ "registry": "https://registry.npmjs.org/"
52
+ },
53
+ "engines": {
54
+ "node": ">=20.19"
55
+ },
56
+ "packageManager": "pnpm@12.5.1",
57
+ "scripts": {
58
+ "dev": "vite --config vite.config.playground.ts",
59
+ "build": "vue-tsc -p tsconfig.build.json --noEmit && vite build && node --experimental-strip-types scripts/bundle-types.ts",
60
+ "build:playground": "vite build --config vite.config.playground.ts",
61
+ "preview": "vite preview --config vite.config.playground.ts",
62
+ "typecheck": "vue-tsc -p tsconfig.build.json --noEmit",
63
+ "test": "vitest",
64
+ "test:run": "vitest run",
65
+ "test:perf": "vitest run --include 'src/__tests__/**/*.perf.test.ts'",
66
+ "test:coverage": "vitest run --coverage",
67
+ "prepublishOnly": "pnpm run build",
68
+ "deploy:dev": "node --experimental-strip-types scripts/deploy-dev.ts",
69
+ "publish:dev": "node --experimental-strip-types scripts/publish-dev.ts",
70
+ "docs:api": "node --experimental-strip-types scripts/generate-docs-api-entries.ts"
71
+ },
72
+ "peerDependencies": {
73
+ "async-validator": "^4.2.0",
74
+ "vue": "^3.5.0"
75
+ },
76
+ "devDependencies": {
77
+ "@microsoft/api-extractor": "^7.55.0",
78
+ "@vitejs/plugin-vue": "^6.0.8",
79
+ "@vitest/coverage-v8": "^4.1.10",
80
+ "@vue/test-utils": "^2.4.11",
81
+ "@vue/tsconfig": "^0.8.1",
82
+ "async-validator": "^4.2.5",
83
+ "element-plus": "^2.14.3",
84
+ "happy-dom": "^20.11.1",
85
+ "less": "^4.8.1",
86
+ "shiki": "^4.4.3",
87
+ "typescript": "^5.9.3",
88
+ "vite": "^8.2.0",
89
+ "vite-plugin-dts": "^5.0.3",
90
+ "vitest": "^4.1.10",
91
+ "vue": "^3.5.40",
92
+ "vue-router": "^4.6.4",
93
+ "vue-tsc": "^3.2.0"
94
+ },
95
+ "dependencies": {
96
+ "@lucide/vue": "^1.28.0"
97
+ }
98
+ }