@aplus-frontend/ui 6.40.0 → 7.0.0-beta.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.
Files changed (77) hide show
  1. package/es/src/ag-grid/editable/form-item.vue.mjs +1 -0
  2. package/es/src/ag-grid/editable/index.vue.mjs +1 -0
  3. package/es/src/ag-grid/editable/interface.d.ts +1 -0
  4. package/es/src/ag-grid/hooks/use-columns-def.mjs +27 -26
  5. package/es/src/ag-grid/hooks/use-editable-columns.mjs +65 -59
  6. package/es/src/ag-grid/index.vue.mjs +38 -33
  7. package/es/src/ag-grid/interface.d.ts +12 -1
  8. package/es/src/ag-grid/theme.d.ts +2 -1
  9. package/es/src/ag-grid/theme.mjs +12 -11
  10. package/es/src/ap-action/item/index.vue2.mjs +14 -12
  11. package/es/src/ap-action/style/index.d.ts +8 -0
  12. package/es/src/ap-action/style/index.js +61 -0
  13. package/es/src/ap-action/style/index.mjs +74 -0
  14. package/es/src/ap-grid/utils/col.mjs +91 -82
  15. package/es/src/config-provider/config-provider-props.d.ts +7 -0
  16. package/es/src/config-provider/config-provider-props.mjs +6 -0
  17. package/es/src/config-provider/config-provider.d.ts +7 -0
  18. package/es/src/config-provider/config-provider.mjs +11 -10
  19. package/es/src/config-provider/hooks/use-global-config.d.ts +4 -0
  20. package/es/src/config-provider/hooks/use-global-config.mjs +27 -22
  21. package/es/src/config-provider/hooks/use-token.d.ts +4 -0
  22. package/es/src/config-provider/hooks/use-token.mjs +6 -0
  23. package/es/src/config-provider/index.d.ts +10 -0
  24. package/es/src/design-token/constants.d.ts +2 -0
  25. package/es/src/design-token/constants.mjs +44 -0
  26. package/es/src/design-token/interface.d.ts +123 -0
  27. package/es/src/style/index.d.ts +3 -0
  28. package/es/src/style/index.js +12 -0
  29. package/es/src/style/index.mjs +13 -0
  30. package/es/src/utils/cssinjs/index.d.ts +8 -0
  31. package/es/src/utils/cssinjs/index.mjs +56 -0
  32. package/es/src/version.d.ts +1 -1
  33. package/es/src/version.mjs +1 -1
  34. package/lib/src/ag-grid/editable/form-item.vue.js +1 -1
  35. package/lib/src/ag-grid/editable/index.vue.js +1 -1
  36. package/lib/src/ag-grid/editable/interface.d.ts +1 -0
  37. package/lib/src/ag-grid/hooks/use-columns-def.js +1 -1
  38. package/lib/src/ag-grid/hooks/use-editable-columns.js +1 -1
  39. package/lib/src/ag-grid/index.vue.js +1 -1
  40. package/lib/src/ag-grid/interface.d.ts +12 -1
  41. package/lib/src/ag-grid/theme.d.ts +2 -1
  42. package/lib/src/ag-grid/theme.js +1 -1
  43. package/lib/src/ap-action/item/index.vue2.js +1 -1
  44. package/lib/src/ap-action/style/index.cjs +61 -0
  45. package/lib/src/ap-action/style/index.d.ts +8 -0
  46. package/lib/src/ap-action/style/index.js +1 -0
  47. package/lib/src/ap-grid/utils/col.js +1 -1
  48. package/lib/src/config-provider/config-provider-props.d.ts +7 -0
  49. package/lib/src/config-provider/config-provider-props.js +1 -1
  50. package/lib/src/config-provider/config-provider.d.ts +7 -0
  51. package/lib/src/config-provider/config-provider.js +1 -1
  52. package/lib/src/config-provider/hooks/use-global-config.d.ts +4 -0
  53. package/lib/src/config-provider/hooks/use-global-config.js +1 -1
  54. package/lib/src/config-provider/hooks/use-token.d.ts +4 -0
  55. package/lib/src/config-provider/hooks/use-token.js +1 -0
  56. package/lib/src/config-provider/index.d.ts +10 -0
  57. package/lib/src/design-token/constants.d.ts +2 -0
  58. package/lib/src/design-token/constants.js +1 -0
  59. package/lib/src/design-token/interface.d.ts +123 -0
  60. package/lib/src/style/index.cjs +12 -0
  61. package/lib/src/style/index.d.ts +3 -0
  62. package/lib/src/style/index.js +1 -0
  63. package/lib/src/utils/cssinjs/index.d.ts +8 -0
  64. package/lib/src/utils/cssinjs/index.js +1 -0
  65. package/lib/src/version.d.ts +1 -1
  66. package/lib/src/version.js +1 -1
  67. package/package.json +3 -1
  68. package/theme/ag-grid/index.css +0 -56
  69. package/theme/ag-grid-modal/index.css +0 -56
  70. package/theme/ap-action/item.css +0 -56
  71. package/theme/ap-action/item.less +1 -58
  72. package/theme/ap-grid/index.css +0 -56
  73. package/theme/ap-table/ap-table.css +0 -56
  74. package/theme/ap-table-modal/index.css +0 -56
  75. package/theme/editable-table/index.css +0 -56
  76. package/theme/index.css +0 -56
  77. package/theme/index.less +1 -1
@@ -0,0 +1,6 @@
1
+ import { inject as e, ref as n } from "vue";
2
+ const o = Symbol("designTokenContextKey"), r = () => e(o, n({}));
3
+ export {
4
+ o as designTokenContextKey,
5
+ r as useToken
6
+ };
@@ -7,6 +7,7 @@ import { ButtonSize } from '@aplus-frontend/antdv/es/button';
7
7
  import { ThemeConfig, InputConfig, PaginationConfig, FormConfig, SelectConfig, CascaderConfig, DatePickerConfig, RangePickerConfig, TreeSelectConfig, TextAreaConfig, InputNumberConfig, MentionsConfig, TimePickerConfig, CardConfig } from '@aplus-frontend/antdv/es/config-provider/context';
8
8
  import { ApGridRowSelection, AgGridRowSelection, ViewCacheOption } from '..';
9
9
  import { LocaleType } from '../locale';
10
+ import { FullToken } from '../design-token/interface';
10
11
  import { ApiType, ApUploadConfig, ApDescriptionsConfig, ValueTypeRenderConfig, downloadCenterTriggerConfig, ExportField, SearchFormGlobalConfig } from './constants';
11
12
  export * from './config-provider-props';
12
13
  export * from './constants';
@@ -160,6 +161,9 @@ export declare const APConfigProvider: {
160
161
  aplusLocale: {
161
162
  type: PropType<LocaleType>;
162
163
  };
164
+ aplusToken: {
165
+ type: PropType<Partial< FullToken>>;
166
+ };
163
167
  namespace: {
164
168
  type: StringConstructor;
165
169
  };
@@ -392,6 +396,9 @@ export declare const APConfigProvider: {
392
396
  aplusLocale: {
393
397
  type: PropType<LocaleType>;
394
398
  };
399
+ aplusToken: {
400
+ type: PropType<Partial< FullToken>>;
401
+ };
395
402
  namespace: {
396
403
  type: StringConstructor;
397
404
  };
@@ -621,6 +628,9 @@ export declare const APConfigProvider: {
621
628
  aplusLocale: {
622
629
  type: PropType<LocaleType>;
623
630
  };
631
+ aplusToken: {
632
+ type: PropType<Partial< FullToken>>;
633
+ };
624
634
  namespace: {
625
635
  type: StringConstructor;
626
636
  };
@@ -0,0 +1,2 @@
1
+ import { BaseToken } from './interface';
2
+ export declare const defaultToken: BaseToken;
@@ -0,0 +1,44 @@
1
+ const o = {
2
+ borderColorBase: "#dee4ed",
3
+ hoverColorBase: "#66a9ff",
4
+ activeColorBase: "#66a9ff",
5
+ colorPrimary: "#0070ff",
6
+ colorPrimaryDisabled: "#cce2ff",
7
+ colorLink: "#0070ff",
8
+ colorLinkHover: "#66a9ff",
9
+ colorLinkDisabled: "#cce2ff",
10
+ colorSuccess: "#2ed1a3",
11
+ colorSuccessDisabled: "#d5f6ed",
12
+ colorError: "#ff4d4f",
13
+ colorErrorDisabled: "#ffdbdc",
14
+ colorWarn: "#ffa940",
15
+ colorWarnDisabled: "#ffeed9",
16
+ textColor1: "#526a90",
17
+ textColor2: "#182948",
18
+ textColor3: "#8896b0",
19
+ textColor4: "#abb7cc",
20
+ colorBg1: "#e9edf3",
21
+ colorBg2: "#f6f9fa",
22
+ colorBg3: "#f3f5f8",
23
+ colorBgDisabled: "#f2f6f9",
24
+ fontSizeSM: 10,
25
+ fontSize: 12,
26
+ fontSizeLG: 14,
27
+ fontSizeXL: 16,
28
+ lineHeightSM: 16,
29
+ lineHeight: 18,
30
+ lineHeightLG: 22,
31
+ borderRadiusXS: 1,
32
+ borderRadius: 4,
33
+ spaceXXS: 2,
34
+ spaceXS: 4,
35
+ spaceSM: 6,
36
+ space: 8,
37
+ spaceMD: 10,
38
+ spaceLG: 12,
39
+ spaceXL: 16,
40
+ spaceXXL: 24
41
+ };
42
+ export {
43
+ o as defaultToken
44
+ };
@@ -0,0 +1,123 @@
1
+ import { ActionToken } from '../ap-action/style';
2
+ import { Recordable } from '../type';
3
+ import { CSSInterpolation } from '@emotion/serialize';
4
+ export type BaseToken = {
5
+ /**
6
+ * 基础边框色
7
+ */
8
+ borderColorBase: string;
9
+ /**
10
+ * 基础hover色
11
+ */
12
+ hoverColorBase: string;
13
+ /**
14
+ * 基础active色
15
+ */
16
+ activeColorBase: string;
17
+ /**
18
+ * 主色
19
+ */
20
+ colorPrimary: string;
21
+ /**
22
+ * 主色禁用色
23
+ */
24
+ colorPrimaryDisabled: string;
25
+ /**
26
+ * 链接色
27
+ */
28
+ colorLink: string;
29
+ /**
30
+ * 链接色-hover
31
+ */
32
+ colorLinkHover: string;
33
+ /**
34
+ * 链接色-禁用
35
+ */
36
+ colorLinkDisabled: string;
37
+ /**
38
+ * 成功色
39
+ */
40
+ colorSuccess: string;
41
+ /**
42
+ * 成功色-禁用
43
+ */
44
+ colorSuccessDisabled: string;
45
+ /**
46
+ * 失败色
47
+ */
48
+ colorError: string;
49
+ /**
50
+ * 失败色-禁用
51
+ */
52
+ colorErrorDisabled: string;
53
+ /**
54
+ * 警告色
55
+ */
56
+ colorWarn: string;
57
+ /**
58
+ * 警告色-禁用
59
+ */
60
+ colorWarnDisabled: string;
61
+ /**
62
+ * 一级文本色
63
+ */
64
+ textColor1: string;
65
+ /**
66
+ * 二级文本色
67
+ */
68
+ textColor2: string;
69
+ /**
70
+ * 三级文本色
71
+ */
72
+ textColor3: string;
73
+ /**
74
+ * 四级文本色
75
+ */
76
+ textColor4: string;
77
+ /**
78
+ * 一级背景色
79
+ */
80
+ colorBg1: string;
81
+ /**
82
+ * 二级背景色
83
+ */
84
+ colorBg2: string;
85
+ /**
86
+ * 三级背景色
87
+ */
88
+ colorBg3: string;
89
+ /**
90
+ * 背景禁用色
91
+ */
92
+ colorBgDisabled: string;
93
+ fontSizeXL: number;
94
+ fontSizeLG: number;
95
+ fontSize: number;
96
+ fontSizeSM: number;
97
+ lineHeightLG: number;
98
+ lineHeight: number;
99
+ lineHeightSM: number;
100
+ borderRadiusXS: number;
101
+ borderRadius: number;
102
+ spaceXXS: number;
103
+ spaceXS: number;
104
+ spaceSM: number;
105
+ space: number;
106
+ spaceMD: number;
107
+ spaceLG: number;
108
+ spaceXL: number;
109
+ spaceXXL: number;
110
+ };
111
+ export type FullToken = BaseToken & {
112
+ components: {
113
+ ApAction: ActionToken;
114
+ };
115
+ };
116
+ export type TokenWithComponentCls<Token> = Token & {
117
+ componentCls: string;
118
+ };
119
+ export type CssVarToken<Token = Recordable> = {
120
+ [key in keyof Token]: Token[key] | string;
121
+ };
122
+ export type GenStyleFunc<Token> = (token: TokenWithComponentCls<Token>) => CSSInterpolation;
123
+ export type GenStyleCallback<Token> = (token: TokenWithComponentCls<Token>) => CSSInterpolation[];
@@ -0,0 +1,3 @@
1
+ import { CSSProperties } from 'vue';
2
+ import { BaseToken } from '../design-token/interface';
3
+ export declare const resetComponent: (token: BaseToken) => CSSProperties;
@@ -0,0 +1,12 @@
1
+ export const resetComponent = (token) => {
2
+ return {
3
+ boxSizing: 'border-box',
4
+ margin: 0,
5
+ padding: 0,
6
+ color: token.textColor2,
7
+ fontSize: token.fontSize,
8
+ fontFamily: 'inherit',
9
+ lineHeight: token.lineHeight,
10
+ listStyle: 'none'
11
+ };
12
+ };
@@ -0,0 +1,13 @@
1
+ const i = (e) => ({
2
+ boxSizing: "border-box",
3
+ margin: 0,
4
+ padding: 0,
5
+ color: e.textColor2,
6
+ fontSize: e.fontSize,
7
+ fontFamily: "inherit",
8
+ lineHeight: e.lineHeight,
9
+ listStyle: "none"
10
+ });
11
+ export {
12
+ i as resetComponent
13
+ };
@@ -0,0 +1,8 @@
1
+ import { BaseToken, GenStyleCallback } from '../../design-token/interface';
2
+ import { Ref } from 'vue';
3
+ type GeneraterOption = {
4
+ skipUnit: string[];
5
+ };
6
+ export declare function camelToKebab(str: string): string;
7
+ export declare function genComponentStyleHook<ComponentToken>(componentName: string, cb: GenStyleCallback<BaseToken & ComponentToken>, componentToken?: Partial<ComponentToken>, option?: GeneraterOption): (prefixCls: string) => Ref<string | undefined, string | undefined>;
8
+ export {};
@@ -0,0 +1,56 @@
1
+ import { omit as b, merge as d } from "lodash-unified";
2
+ import { ref as k, computed as C, watch as i } from "vue";
3
+ import { useToken as g } from "../../config-provider/hooks/use-token.mjs";
4
+ import { injectGlobal as T, css as $ } from "@emotion/css";
5
+ import "../../config-provider/index.mjs";
6
+ import { useGlobalConfig as V } from "../../config-provider/hooks/use-global-config.mjs";
7
+ function v(e, n) {
8
+ return Object.entries(e).reduce((o, [c, r]) => {
9
+ const s = typeof r == "number" && !n?.skipUnit?.includes(c) ? `${r}px` : r;
10
+ return o[l(c)] = s, o;
11
+ }, {});
12
+ }
13
+ function l(e) {
14
+ return "--" + e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
15
+ }
16
+ function S(e) {
17
+ const n = {};
18
+ for (const o in e)
19
+ n[o] = `var(${l(o)})`;
20
+ return n;
21
+ }
22
+ function z(e, n, o, c) {
23
+ return (r) => {
24
+ const s = k(), u = g(), p = V("namespace"), a = C(() => {
25
+ let t = b(u.value || {}, "components");
26
+ return t = {
27
+ ...t,
28
+ ...d(
29
+ o || {},
30
+ u.value.components?.[e] || {}
31
+ )
32
+ }, t;
33
+ });
34
+ return i(
35
+ () => a.value,
36
+ (t) => {
37
+ const m = S(t);
38
+ m.componentCls = `.${p.value}-${r}`;
39
+ const f = n(m);
40
+ T(f);
41
+ },
42
+ { immediate: !0, once: !0 }
43
+ ), i(
44
+ () => a.value,
45
+ (t) => {
46
+ const m = v(t, c);
47
+ s.value = $(m);
48
+ },
49
+ { deep: !0, immediate: !0 }
50
+ ), s;
51
+ };
52
+ }
53
+ export {
54
+ l as camelToKebab,
55
+ z as genComponentStyleHook
56
+ };
@@ -1,2 +1,2 @@
1
- declare const _default: "6.40.0";
1
+ declare const _default: "7.0.0-beta.0";
2
2
  export default _default;
@@ -1,4 +1,4 @@
1
- const e = "6.40.0";
1
+ const e = "7.0.0-beta.0";
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),g=require("../../ap-form/index.js"),r=require("lodash-unified");require("../../config-provider/index.js");const j=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const A=require("../hooks/use-editable-form-item-api.js"),D=require("../../ap-form/context.js"),P=require("../../ap-form/utils/get.js"),k=require("../utils.js"),L=require("../../ap-form/hooks/use-watch.js"),M=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../config-provider/hooks/use-global-config.js"),H=require("../index.vue.js"),K=e.defineComponent({name:"EditableGrid",__name:"form-item",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},rowSelection:{type:Boolean},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{default:66},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},columns:{},defaultValue:{},onChange:{},maxLength:{},onFieldChange:{},label:{},name:{},formItem:{}},setup(w,{expose:y}){const h=e.useSlots(),t=w,{b}=z.useNamespace("editable-aggrid"),s=e.ref(),{internalInstance:u,model:C}=D.useInjectForm(),i=k.getShadowName(t.name);let c;e.onMounted(()=>{const o=t.formItem?.initialValue??P.getModelValue(e.unref(C),t.name);c=r.cloneDeep(o),p(o,"suffix")});const n=e.ref([]),R=L.useWatch(t.name);e.watch(()=>R.value,o=>{r.isEqual(o,n.value)||m(o??c)},{deep:!0});const v=G.useGlobalConfig("valueTypeMap"),x=j.useGetEditableColumns(t,v,i),{add:B,addMultiple:p,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,refreshRowIds:d}=A.useEditableFormItemApi(t,u,n,i);function N(){const o=s.value?._internalGridApi;if(!d.value?.length||!o)return;const a=d.value.map(l=>o.getRowNode(l)).filter(l=>!!l);o.refreshCells({rowNodes:a,force:!0}),d.value=[]}function m(o){n.value=o;const a=M.arrayToObject(o,t.rowKey);u?.setFieldValue(t.name,o),u?.setFieldValue(i,a)}function V(o){const a=o==="end"?n.value.length-1:o;s.value?.scrollToRow(a)}return y({add:B,addMultiple:p,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,setTableData:m,scrollTo:V}),(o,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(g.ApForm).FormItem,{hidden:"",name:o.name},null,8,["name"]),e.createVNode(e.unref(g.ApForm).FormItem,e.mergeProps(e.unref(r.omit)(o.formItem,"initialValue"),{label:o.label}),{default:e.withCtx(()=>[e.createVNode(H.default,e.mergeProps(e.unref(r.omit)(t,["name","maxLength","onChange","defaultValue","formItem"]),{ref_key:"tableRef",ref:s,class:e.unref(b)(),size:"mini",columns:e.unref(x),"data-source":n.value,"search-form":!1,onUpdate:N}),e.createSlots({_:2},[e.renderList(h,(l,f)=>({name:f,fn:e.withCtx(T=>[e.renderSlot(o.$slots,f,e.normalizeProps(e.guardReactiveProps(T||{})))])}))]),1040,["class","columns","data-source"])]),_:3},16,["label"])],64))}});exports.default=K;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),g=require("../../ap-form/index.js"),r=require("lodash-unified");require("../../config-provider/index.js");const j=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const A=require("../hooks/use-editable-form-item-api.js"),D=require("../../ap-form/context.js"),P=require("../../ap-form/utils/get.js"),k=require("../utils.js"),L=require("../../ap-form/hooks/use-watch.js"),M=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../config-provider/hooks/use-global-config.js"),H=require("../index.vue.js"),K=e.defineComponent({name:"EditableGrid",__name:"form-item",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},rowSelection:{type:Boolean},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{default:66},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},theme:{},columns:{},defaultValue:{},onChange:{},maxLength:{},onFieldChange:{},label:{},name:{},formItem:{}},setup(w,{expose:y}){const h=e.useSlots(),t=w,{b}=z.useNamespace("editable-aggrid"),s=e.ref(),{internalInstance:u,model:C}=D.useInjectForm(),i=k.getShadowName(t.name);let c;e.onMounted(()=>{const o=t.formItem?.initialValue??P.getModelValue(e.unref(C),t.name);c=r.cloneDeep(o),m(o,"suffix")});const n=e.ref([]),R=L.useWatch(t.name);e.watch(()=>R.value,o=>{r.isEqual(o,n.value)||p(o??c)},{deep:!0});const v=G.useGlobalConfig("valueTypeMap"),x=j.useGetEditableColumns(t,v,i),{add:B,addMultiple:m,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,refreshRowIds:d}=A.useEditableFormItemApi(t,u,n,i);function N(){const o=s.value?._internalGridApi;if(!d.value?.length||!o)return;const a=d.value.map(l=>o.getRowNode(l)).filter(l=>!!l);o.refreshCells({rowNodes:a,force:!0}),d.value=[]}function p(o){n.value=o;const a=M.arrayToObject(o,t.rowKey);u?.setFieldValue(t.name,o),u?.setFieldValue(i,a)}function V(o){const a=o==="end"?n.value.length-1:o;s.value?.scrollToRow(a)}return y({add:B,addMultiple:m,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,setTableData:p,scrollTo:V}),(o,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(g.ApForm).FormItem,{hidden:"",name:o.name},null,8,["name"]),e.createVNode(e.unref(g.ApForm).FormItem,e.mergeProps(e.unref(r.omit)(o.formItem,"initialValue"),{label:o.label}),{default:e.withCtx(()=>[e.createVNode(H.default,e.mergeProps(e.unref(r.omit)(t,["name","maxLength","onChange","defaultValue","formItem"]),{ref_key:"tableRef",ref:s,class:e.unref(b)(),size:"mini",columns:e.unref(x),"data-source":n.value,"search-form":!1,onUpdate:N}),e.createSlots({_:2},[e.renderList(h,(l,f)=>({name:f,fn:e.withCtx(T=>[e.renderSlot(o.$slots,f,e.normalizeProps(e.guardReactiveProps(T||{})))])}))]),1040,["class","columns","data-source"])]),_:3},16,["label"])],64))}});exports.default=K;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("../../ap-form/index.js"),s=require("lodash-unified");require("../../config-provider/index.js");require("../../hooks/index.js");const O=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const P=require("../hooks/use-editable-api.js"),c=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../hooks/useControllableValue.js"),H=require("../../config-provider/hooks/use-global-config.js"),I=require("../index.vue.js"),L=e.defineComponent({name:"EditableGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},rowSelection:{type:Boolean},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{default:66},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},columns:{},value:{},defaultValue:{},"onUpdate:value":{},onChange:{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{}},emits:["update:value"],setup(m,{expose:y,emit:w}){const g=e.useSlots(),o=m,{b}=z.useNamespace("editable-aggrid"),h=w,u=e.ref(),{value:r,updateValue:p}=G.useControllableValue(o,h),l=e.ref(),v=d.ApForm.useWatch(o.name,l);e.watch(r,a=>{const t=c.arrayToObject(a,o.rowKey);s.isEqual(t,e.unref(v))||l.value?.setFieldValue(o.name,t)},{deep:!0});const C=H.useGlobalConfig("valueTypeMap"),R=O.useGetEditableColumns(o,C),{add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,refreshRowIds:i}=P.useEditableApi(o,l,r,p);function A(){const a=u.value?._internalGridApi;if(!i.value?.length||!a)return;const t=i.value.map(n=>a.getRowNode(n)).filter(n=>!!n);a.refreshCells({rowNodes:t,force:!0}),i.value=[]}function N(){l.value?.resetFields()}function V(a){return a?(s.isArray(a)?a:[a]).map(n=>s.isArray(n)?[o.name,...n]:[o.name,n]):void 0}async function j(a,t){return(await l.value?.validateFields(V(a),t))?.[o.name]}function k(a){p(a);const t=c.arrayToObject(a,o.rowKey);l.value?.setFieldValue(o.name,t)}function D(a){const t=a==="end"?r.value.length-1:a;u.value?.scrollToRow(t)}return y({resetFields:N,validateFields:j,add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,setTableData:k,scrollTo:D}),(a,t)=>(e.openBlock(),e.createBlock(e.unref(d.ApForm),{ref_key:"formRef",ref:l,"initial-values":{[o.name]:e.unref(c.arrayToObject)(e.unref(r),o.rowKey)},style:{height:"100%"}},{default:e.withCtx(()=>[e.createVNode(e.unref(d.ApForm).FormItem,{name:a.name,"no-style":""},{default:e.withCtx(()=>[e.createVNode(I.default,e.mergeProps(e.unref(s.omit)(o,["name","value","onUpdate:value","maxLength","onChange","defaultValue"]),{ref_key:"tableRef",ref:u,class:e.unref(b)(),size:"mini",columns:e.unref(R),"data-source":e.unref(r),"search-form":!1,onUpdate:A}),e.createSlots({_:2},[e.renderList(g,(n,f)=>({name:f,fn:e.withCtx(K=>[e.renderSlot(a.$slots,f,e.normalizeProps(e.guardReactiveProps(K||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=L;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("../../ap-form/index.js"),s=require("lodash-unified");require("../../config-provider/index.js");require("../../hooks/index.js");const O=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const P=require("../hooks/use-editable-api.js"),c=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../hooks/useControllableValue.js"),H=require("../../config-provider/hooks/use-global-config.js"),I=require("../index.vue.js"),L=e.defineComponent({name:"EditableGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},rowSelection:{type:Boolean},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{default:66},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},theme:{},columns:{},value:{},defaultValue:{},"onUpdate:value":{},onChange:{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{}},emits:["update:value"],setup(m,{expose:y,emit:w}){const g=e.useSlots(),o=m,{b}=z.useNamespace("editable-aggrid"),h=w,u=e.ref(),{value:r,updateValue:p}=G.useControllableValue(o,h),l=e.ref(),v=d.ApForm.useWatch(o.name,l);e.watch(r,a=>{const t=c.arrayToObject(a,o.rowKey);s.isEqual(t,e.unref(v))||l.value?.setFieldValue(o.name,t)},{deep:!0});const C=H.useGlobalConfig("valueTypeMap"),R=O.useGetEditableColumns(o,C),{add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,refreshRowIds:i}=P.useEditableApi(o,l,r,p);function A(){const a=u.value?._internalGridApi;if(!i.value?.length||!a)return;const t=i.value.map(n=>a.getRowNode(n)).filter(n=>!!n);a.refreshCells({rowNodes:t,force:!0}),i.value=[]}function N(){l.value?.resetFields()}function V(a){return a?(s.isArray(a)?a:[a]).map(n=>s.isArray(n)?[o.name,...n]:[o.name,n]):void 0}async function j(a,t){return(await l.value?.validateFields(V(a),t))?.[o.name]}function k(a){p(a);const t=c.arrayToObject(a,o.rowKey);l.value?.setFieldValue(o.name,t)}function D(a){const t=a==="end"?r.value.length-1:a;u.value?.scrollToRow(t)}return y({resetFields:N,validateFields:j,add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,setTableData:k,scrollTo:D}),(a,t)=>(e.openBlock(),e.createBlock(e.unref(d.ApForm),{ref_key:"formRef",ref:l,"initial-values":{[o.name]:e.unref(c.arrayToObject)(e.unref(r),o.rowKey)},style:{height:"100%"}},{default:e.withCtx(()=>[e.createVNode(e.unref(d.ApForm).FormItem,{name:a.name,"no-style":""},{default:e.withCtx(()=>[e.createVNode(I.default,e.mergeProps(e.unref(s.omit)(o,["name","value","onUpdate:value","maxLength","onChange","defaultValue"]),{ref_key:"tableRef",ref:u,class:e.unref(b)(),size:"mini",columns:e.unref(R),"data-source":e.unref(r),"search-form":!1,onUpdate:A}),e.createSlots({_:2},[e.renderList(g,(n,f)=>({name:f,fn:e.withCtx(K=>[e.renderSlot(a.$slots,f,e.normalizeProps(e.guardReactiveProps(K||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=L;
@@ -38,6 +38,7 @@ export type EditableAgGridColumnType<RecordType = any, ExtraValueType = 'text',
38
38
  column: AgGridColumnType<RecordType>;
39
39
  editable?: boolean;
40
40
  originalNode?: VNode;
41
+ path: (string | number)[];
41
42
  }) => any;
42
43
  /**
43
44
  * 是否渲染必填标记(只渲染标记不生成校验规则)
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("../../ap-table/utils.js"),T=require("../renderer/index.js"),o=require("lodash-unified"),d=require("vue");require("../components/body-cell/index.vue.js");require("../components/header-cell/index.vue.js");require("../components/tooltip/index.vue.js");require("../../config-provider/index.js");const q=require("../../ap-grid/utils/col.js"),w=require("../../utils/index.js"),P=require("../../config-provider/hooks/use-global-config.js"),S=require("../../config-provider/hooks/use-namespace.js"),D=require("../components/body-cell/index.vue2.js"),R=require("../components/tooltip/index.vue2.js"),C=require("../components/header-cell/index.vue2.js");function I(t){return o.isNumber(t)&&t>1}function G(t,l){if(l.bodyCellTooltip)return o.isFunction(l.bodyCellTooltip)?l.bodyCellTooltip(t.value,t.data):l.bodyCellTooltip;if(l.renderText)return l.renderText({value:t.value,record:t.data,column:l,text:t.value});const u=l.valueType||"text",p=T.rendererMap[u];if(p){const f=x.getTableRenderProps({...l,valueType:u},{value:t.value,text:t.value,record:t.data,column:t.column,rowIndex:t.node?.rowIndex,pinned:t.node?.rowPinned});return p(f)}return x.objectToString(t.value)}const M=(t,l,u)=>{const p=P.useGlobalConfig("valueTypeMap"),c=d.ref(),{em:f}=S.useNamespace("ag-grid"),y=r=>{const i={cellRenderer:D.default,cellRendererParams:{column:r,extraValueType:d.unref(p)}};if(r.customRender)return i;if(r.renderText)return{valueFormatter:s=>r.renderText({value:s.value,record:s.data,column:r,text:s.value})};const a=r.valueType||"text",e=T.rendererMap[a];return e?{valueFormatter:s=>{const n=x.getTableRenderProps({...r,valueType:a},{value:s.value,text:s.value,record:s.data,column:s.column,rowIndex:s.node?.rowIndex,pinned:s.node?.rowPinned});return e(n)}}:i},b=r=>{const i={},a=r.bodyCellTooltip||!r.customRender&&(r.ellipsis===!0||r.ellipsis==="tooltip"||o.isNumber(r.ellipsis)),e=o.isNumber(r.ellipsis)&&r.ellipsis>1,s=o.isNumber(r.ellipsis)?r.ellipsis:1;return i.tooltipValueGetter=a?n=>G(n,r):void 0,i.wrapText=!r.ellipsis||e,i.cellStyle={"--ag-grid-line-clamp":s},i.tooltipComponent=R.default,i.tooltipComponentParams={lineClamp:s,gridWrapperRef:c},i},h=d.computed(()=>{const r=d.unref(t);function i(a){return a.map(e=>{const s={field:q.dataIndexToField(e.dataIndex),colId:w.isDef(e.key)?String(e.key):void 0,sortable:!!e.sorter,comparator:e.sorter===!0?()=>0:e.sorter,headerComponentParams:{column:e},resizable:e.resizable,width:e.width,minWidth:e.minWidth,maxWidth:e.maxWidth,flex:e.width?void 0:1,pinned:e.fixed||null,colSpan:e.colSpan,cellClass:u(n=>{const v=e.cellClass||"",g=o.isFunction(v)?v(n.data,n.node):v;return[`${f("cell",e.align||"left")}`,I(e.ellipsis)?f("cell","multiline"):null,g].flat().filter(Boolean)}),headerStyle:e.headerStyle,headerClass:e.headerClass,autoHeight:!0,...b(e),...y(e)};return e.children?.length?{...s,headerGroupComponent:C.default,headerGroupComponentParams:{column:e},children:i(e.children)}:s})}return i(r)}),_=d.computed(()=>({headerComponent:C.default,resizable:l.columnResizable,suppressMovable:!0,cellDataType:!1}));return{columnDefs:h,defaultColDef:_,gridWrapperRef:c}};exports.useColumnsDef=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("../../ap-table/utils.js"),T=require("../renderer/index.js"),o=require("lodash-unified"),d=require("vue");require("../components/body-cell/index.vue.js");require("../components/header-cell/index.vue.js");require("../components/tooltip/index.vue.js");require("../../config-provider/index.js");const q=require("../../ap-grid/utils/col.js"),w=require("../../utils/index.js"),P=require("../../config-provider/hooks/use-global-config.js"),S=require("../../config-provider/hooks/use-namespace.js"),D=require("../components/body-cell/index.vue2.js"),R=require("../components/tooltip/index.vue2.js"),C=require("../components/header-cell/index.vue2.js");function I(t){return o.isNumber(t)&&t>1}function G(t,i){if(i.bodyCellTooltip)return o.isFunction(i.bodyCellTooltip)?i.bodyCellTooltip(t.value,t.data):i.bodyCellTooltip;if(i.renderText)return i.renderText({value:t.value,record:t.data,column:i,text:t.value});const u=i.valueType||"text",p=T.rendererMap[u];if(p){const f=x.getTableRenderProps({...i,valueType:u},{value:t.value,text:t.value,record:t.data,column:t.column,rowIndex:t.node?.rowIndex,pinned:t.node?.rowPinned});return p(f)}return x.objectToString(t.value)}const M=(t,i,u)=>{const p=P.useGlobalConfig("valueTypeMap"),c=d.ref(),{em:f}=S.useNamespace("ag-grid"),y=r=>{const l={cellRenderer:D.default,cellRendererParams:{column:r,extraValueType:d.unref(p),rowKey:i.rowKey}};if(r.customRender)return l;if(r.renderText)return{valueFormatter:s=>r.renderText({value:s.value,record:s.data,column:r,text:s.value})};const a=r.valueType||"text",e=T.rendererMap[a];return e?{valueFormatter:s=>{const n=x.getTableRenderProps({...r,valueType:a},{value:s.value,text:s.value,record:s.data,column:s.column,rowIndex:s.node?.rowIndex,pinned:s.node?.rowPinned});return e(n)}}:l},b=r=>{const l={},a=r.bodyCellTooltip||!r.customRender&&(r.ellipsis===!0||r.ellipsis==="tooltip"||o.isNumber(r.ellipsis)),e=o.isNumber(r.ellipsis)&&r.ellipsis>1,s=o.isNumber(r.ellipsis)?r.ellipsis:1;return l.tooltipValueGetter=a?n=>G(n,r):void 0,l.wrapText=!r.ellipsis||e,l.cellStyle={"--ag-grid-line-clamp":s},l.tooltipComponent=R.default,l.tooltipComponentParams={lineClamp:s,gridWrapperRef:c},l},h=d.computed(()=>{const r=d.unref(t);function l(a){return a.map(e=>{const s={field:q.dataIndexToField(e.dataIndex),colId:w.isDef(e.key)?String(e.key):void 0,sortable:!!e.sorter,comparator:e.sorter===!0?()=>0:e.sorter,headerComponentParams:{column:e},resizable:e.resizable,width:e.width,minWidth:e.minWidth,maxWidth:e.maxWidth,flex:e.width?void 0:1,pinned:e.fixed||null,colSpan:e.colSpan,cellClass:u(n=>{const v=e.cellClass||"",g=o.isFunction(v)?v(n.data,n.node):v;return[`${f("cell",e.align||"left")}`,I(e.ellipsis)?f("cell","multiline"):null,g].flat().filter(Boolean)}),headerStyle:e.headerStyle,headerClass:e.headerClass,autoHeight:!0,...b(e),...y(e)};return e.children?.length?{...s,headerGroupComponent:C.default,headerGroupComponentParams:{column:e},children:l(e.children)}:s})}return l(r)}),_=d.computed(()=>({headerComponent:C.default,resizable:i.columnResizable,suppressMovable:!0,cellDataType:!1}));return{columnDefs:h,defaultColDef:_,gridWrapperRef:c}};exports.useColumnsDef=M;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("vue"),_=require("lodash-unified"),I=require("../../editable-table/utils.js"),C=require("../../ap-table/utils.js"),F=require("../../ap-grid/utils/editable.js"),$=require("../../utils/index.js"),m=require("../editable/utils.js");function R(t,r,n){t.__skipNextRefresh?t.__skipNextRefresh[r]=n:t.__skipNextRefresh={[r]:n}}function M(t,r,n){t.__prevEditable?t.__prevEditable[r]=n:t.__prevEditable={[r]:n}}const q=(t,r,n)=>{function v(e){return!e.editable||e.children?.length?{}:{customRender({value:o,originalNode:d,params:l,...i}){const u=_.isFunction(e.editable)?e.editable(i.text,i.record,i.rowIndex):!!e.editable;let c=d;if(u){const f=C.updateFormProps(e,C.getFieldProps(e.fieldProps,{value:o,...i})),x={};t.onFieldChange&&(x[`onUpdate:${f.valuePropName||"value"}`]=y=>t.onFieldChange?.(i.rowIndex,e.dataIndex,y));const N=_.isArray(e.dataIndex)?e.dataIndex:[e.dataIndex],k=n?[n]:_.isArray(t.name)?t.name:[t.name],w=m.getRowKey(i.record,i.rowIndex,t.rowKey),E={name:[...k,String(w),...N],...f||{},field:{style:"width: 100%",...f?.field||{},...x,class:I.mergeClass("is-editable",f.class)}};c=F.getFinalEditableNode(e,E,i.record,h.unref(r))}e.customRender&&(c=e.customRender({value:o,...i,editable:u,originalNode:c,index:i.rowIndex,renderIndex:i.rowIndex}));const a=l.node,s=l.column.getColId(),g=a.__prevEditable?.[s];return!a.__skipNextRefresh?.[s]&&$.isDef(g)&&g!==u&&(R(a,s,!0),setTimeout(()=>{l?.api.refreshCells({rowNodes:[l.node],columns:[l.column.getColId()],force:!0}),R(a,s,!1)},0)),M(a,s,u),c}}}return h.computed(()=>{const e=t.columns;if(!e)return[];function b(o){return o.map(d=>({...d,_requireMark:I.getColumnIsRequired(d),children:b(d.children||[]),...v(d)}))}return b(e)})};exports.default=q;exports.useGetEditableColumns=q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const I=require("vue"),b=require("lodash-unified"),C=require("../../editable-table/utils.js"),R=require("../../ap-table/utils.js"),F=require("../../ap-grid/utils/editable.js"),m=require("../../utils/index.js"),M=require("../editable/utils.js");function q(t,r,n){t.__skipNextRefresh?t.__skipNextRefresh[r]=n:t.__skipNextRefresh={[r]:n}}function S(t,r,n){t.__prevEditable?t.__prevEditable[r]=n:t.__prevEditable={[r]:n}}const v=(t,r,n)=>{function N(e){const u=e.editable,a=n?[n]:b.isArray(t.name)?t.name:[t.name];return!u||e.children?.length?{_path:[...a]}:{customRender({value:d,originalNode:k,params:l,...i}){const c=b.isFunction(e.editable)?e.editable(i.text,i.record,i.rowIndex):!!e.editable;let f=k;const w=b.isArray(e.dataIndex)?e.dataIndex:[e.dataIndex],g=M.getRowKey(i.record,i.rowIndex,t.rowKey);if(c){const _=R.updateFormProps(e,R.getFieldProps(e.fieldProps,{value:d,...i})),x={};t.onFieldChange&&(x[`onUpdate:${_.valuePropName||"value"}`]=y=>t.onFieldChange?.(i.rowIndex,e.dataIndex,y));const E={name:[...a,String(g),...w],..._||{},field:{style:"width: 100%",..._?.field||{},...x,class:C.mergeClass("is-editable",_.class)}};f=F.getFinalEditableNode(e,E,i.record,I.unref(r))}e.customRender&&(f=e.customRender({value:d,...i,editable:c,originalNode:f,index:i.rowIndex,renderIndex:i.rowIndex,path:[...a,String(g)]}));const s=l.node,o=l.column.getColId(),h=s.__prevEditable?.[o];return!s.__skipNextRefresh?.[o]&&m.isDef(h)&&h!==c&&(q(s,o,!0),setTimeout(()=>{l?.api.refreshCells({rowNodes:[l.node],columns:[l.column.getColId()],force:!0}),q(s,o,!1)},0)),S(s,o,c),f},_path:[...a]}}return I.computed(()=>{const e=t.columns;if(!e)return[];function u(a){return a.map(d=>({...d,_requireMark:C.getColumnIsRequired(d),children:u(d.children||[]),...N(d)}))}return u(e)})};exports.default=v;exports.useGetEditableColumns=v;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),$e=require("ag-grid-vue3"),$=require("ag-grid-community"),je=require("./utils.js"),j=require("@aplus-frontend/antdv"),i=require("lodash-unified");require("../config-provider/index.js");const Je=require("../ap-form/index.js"),Qe=require("../ap-table/utils.js"),Xe=require("../ap-table/hooks/use-table-paging-ng.js"),Ye=require("./hooks/use-row-selection.js"),Ze=require("./context.js"),eo=require("../ap-table/context.js"),B=require("../ap-grid/constants.js"),oo=require("@aplus-frontend/antdv/es/theme/internal"),to=require("./theme.js"),ro=require("./hooks/use-columns.js"),no=require("./hooks/use-columns-def.js"),ao=require("../utils/index.js"),lo=require("../utils/slot.js"),so=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const uo=require("./hooks/use-virtual-config.js"),io=require("./hooks/use-pinned-row.js"),co=require("./hooks/use-selection-col-def.js");require("./components/row/index.vue.js");const fo=require("../config-provider/hooks/use-namespace.js"),po=require("../config-provider/hooks/use-global-config.js"),mo=require("./components/row/index.vue2.js"),go=require("./components/empty/index.vue2.js"),wo=o.defineComponent({name:"AgGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onChange:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},columns:{},rowSelection:{type:Boolean},card:{type:Boolean},params:{},request:{},defaultData:{},dataSource:{},onLoadingChange:{},onShownColumnsChange:{},searchForm:{type:[Boolean,Object],default:void 0},beforeSearchSubmit:{},pagination:{type:[Boolean,Object],default:void 0},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},manual:{type:Boolean,default:void 0},size:{default:"mini"},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{}},setup(J,{expose:Q}){$.ModuleRegistry.registerModules([$.AllCommunityModule]);const t=J,T=o.useSlots(),{e:R,b:c,be:X}=fo.useNamespace("ag-grid"),C=o.ref(t.size),Y=to.useTheme(C,o.toRef(t,"rowHeight")),Z=uo.default(o.toRef(t,"virtual")),{rowPinnedGridConfig:E,getRowPinnedCellClass:ee}=io.usePinnedRow(o.toRef(t,"summary")),oe=po.useGlobalConfig("apGrid"),l=o.ref(),[,te]=oo.useToken();let y=!!t.dataSource;const D=so.useSearchForm(t),{shownColumns:m,columns:V,columnKeys:re,getTargetColumnByKey:ne}=ro.useColumns(t),{defaultColDef:ae,columnDefs:le,gridWrapperRef:se}=no.useColumnsDef(V,t,ee),b=o.ref({});Ze.useProvideSorter({sorter:b,setSorter(e){b.value=e}});const ue={asc:"ascend",desc:"descend"};function ie(){const e=l.value.getColumns()?.filter(d=>d.getSort()!==void 0),r=o.unref(b)||{};let n=e?.[0];const s=Object.keys(r);if(s.length&&s.every(d=>r[d]===null)){const d=Object.keys(r)[0];d&&(n=l.value?.getColumn(d))}if(!n)return;const u=n.getColDef(),f=n.getSort(),p=ne(u.colId);P(void 0,void 0,{column:u,field:p?.field??u.field??u.colId,order:f?ue[f]:null})}const ce=o.computed(()=>Qe.recursionApColumns(o.unref(m),e=>{if(e.sorter===!0)return e.field??e.dataIndex??e.key}).filter(Boolean)),de=()=>{b.value={};const e=l.value;if(!e)return;const r=e.getColumnState()?.map(n=>({...n,sort:null}));e.applyColumnState({state:r})},fe=o.computed(()=>ao.isDef(t.manual)?t.manual:lo.getValidVNodeList(T.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:g,submit:F,reset:x,data:w,tableProps:z,handleTableChangeOptional:P,submitWith:A,refresh:K,getPaging:pe,setPaging:me,setDataSource:ge}=Xe.useTablePaging({async request(e){if(y=!1,S.value&&!S.value.preserveSelectedRowKeys&&i.isUndefined(t.dataSource)&&I(),!i.isUndefined(t.dataSource)){const n=e.pageSize*(e.current-1);return{data:(t.pagination===!1?t.dataSource:t.dataSource.slice(n,n+e.pageSize))||[],total:t.dataSource.length||0}}const r=await t.request?.(e);return{data:r?.data||[],total:r?.total||0}},namespace:"ap-grid",filterFields:o.ref([]),params:o.toRef(t,"params"),defaultData:t.defaultData,manual:o.unref(fe),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:ce,onClickReset:de}),S=o.computed(()=>{const e=t.rowSelection||oe.value?.rowSelection;if(e)return e===!0?B.DEFAULT_ROW_SELECTION_CONFIG:{...B.DEFAULT_ROW_SELECTION_CONFIG,...e}}),we=co.default(t,m),Se=o.computed(()=>i.isUndefined(t.dataSource)?w.records:t.dataSource),{select:Ce,unSelect:ye,selectedRows:N,selectedRowKeys:he,clearAll:ve,selectMultiByKeys:Re,selectMulti:be,unSelectMulti:ke}=Ye.default({...S.value,dataSource:Se,rowKey:t.rowKey}),Be={checkbox:"multiRow",radio:"singleRow"},Fe=o.computed(()=>{const e=S.value;if(!e)return;const{type:r="checkbox",disabled:n}=e;return{mode:Be[r],isRowSelectable:s=>n?!n(s.data):!0,hideDisabledCheckboxes:e.hideDisabled??!1}});function q(e){return i.isFunction(t.rowKey)?t.rowKey(e):e[t.rowKey]}const k=({api:e=l.value})=>{if(t.onUpdate?.(),!S.value)return;const r=N.value||[];y=!1;const n=[];e.forEachNode(s=>{const h=s.data,u=q(h),f=s.isSelected();r.find(p=>q(p)===u)?!f&&n.push(s):f&&s.setSelected(!1)}),e.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{y=!0},0)},xe=e=>{y&&(e.node.isSelected()?Ce(e.data):ye(e.data),i.isFunction(S.value?.tooltip)&&e.api.refreshCells({rowNodes:[e.node],columns:["ag-Grid-SelectionColumn"],force:!0}))},Ne=()=>{y=!0},I=()=>{ve(),l.value?.deselectAll()};function qe(e){Re(e),o.nextTick(()=>{k({})})}const Ie=o.computed(()=>{const e=t.customRow;return e?{isFullWidthRow:e.isCustomRow,fullWidthCellRenderer:mo.default,fullWidthCellRendererParams:{render:e.render}}:{}});function Te(e){be(e),o.nextTick(()=>{k({})})}function Ee(e){ke(e),o.nextTick(()=>{k({})})}function M(e=!1){const r=e?"getFieldsValueTransformed":"getFieldsValue";return g.value?.apForm?.[r]?.(!0)}function _(e){g.value?.apForm?.setFieldsValue?.(e)}function O(){return g.value?.getSorterItems()||[]}function W(e){g.value?.setSorterItems(e)}function U(){g.value?.resetSorterItems()}function G(e){return e&&String(e)}function De(e){const r=l.value;if(!r)return;const n=r.getColumnState()||[],s=e.map(a=>a.key?String(a.key):a.key).filter(Boolean),h=n.map(a=>{if(!re.value.includes(a.colId))return a;const v=!s.includes(a.colId),H={...a,hide:v},L=e.find(Le=>G(Le.key)===a.colId);return L&&(H.pinned=L.fixed||null),H}),u=new Map(e.map((a,v)=>[G(a.key),v])),f=h.filter(a=>u.has(a.colId)).sort((a,v)=>u.get(a.colId)-u.get(v.colId)),p=[];let d=0;for(const a of h)u.has(a.colId)?p.push(f[d++]):p.push(a);r.applyColumnState({state:p,applyOrder:!0})}eo.useProvideApTable({columns:o.computed(()=>m.value),columnsBackup:o.computed(()=>V.value),size:o.computed(()=>B.sizeMap[C.value]),updateColumns(e){m.value=e,t.onShownColumnsChange?.(e),De(e)},updateSize(e){C.value=B.sizeReverseMap[e]},renderConfig:o.computed(()=>({className:X("table-header","title"),color:te.value.colorTextTertiary})),dataSource:o.computed(()=>o.unref(w).records),getSearchFormValues:M,setSearchFormValues:_,submit:F,submitWith:A,reset:x,refresh:K,getSearchFormSorterItems:O,setSearchFormSorterItems:W,resetSearchFormSorterItems:U});const Ve=o.computed(()=>i.isUndefined(t.loading)?w.loading:t.loading),ze=o.computed(()=>[c(),t.card?null:c("wrapper"),c("adaptive"),c(`size-${C.value}`)].filter(Boolean)),Pe=o.computed(()=>({height:"100%",...t.tableStyle||{}})),Ae=(e,r)=>{P({current:e,pageSize:r})};function Ke(e){const r=e.data;return q(r)}function Me(e,r){(i.isFunction(e)?l.value?.ensureNodeVisible:l.value?.ensureIndexVisible)?.(e,r)}function _e(e,r){l.value?.ensureColumnVisible(e,r)}function Oe(e){t.onRowClicked?.(e.data,e.event)}function We(e){t.onScrollEnd?.(e.direction)}function Ue(e){return l.value?.refreshCells(e)}function Ge(e){return l.value?.redrawRows(e)}const He=e=>{const r=[E.value.getRowClass?.(e)];if(!e.node.rowPinned){const n=i.isFunction(t.rowClassName)?t.rowClassName(e.data,e.rowIndex):t.rowClassName;r.push(n)}return r.flat().filter(Boolean)};return o.watch(()=>t.dataSource,e=>{ge(e)},{immediate:!0,deep:!0}),o.watch(()=>t.size,e=>{C.value=e}),o.watch(()=>o.unref(w).loading,e=>{t.onLoadingChange?.(e)}),Q({submit:F,reset:x,refresh:K,submitWith:A,setSearchFormValues:_,getSearchFormValues:M,getShowColumns:()=>o.unref(m),rowSelection:{selectedRows:o.computed(()=>N.value),setSelectedRowKeys:qe,setSelectedRows:Te,clearAll:I,unSelectRows:Ee},scrollToRow:Me,scrollToColumn:_e,getDataSource:()=>o.unref(w.records),getPaging:pe,setPaging:me,getSearchFormSorterItems:O,setSearchFormSorterItems:W,resetSearchFormSorterItems:U,refreshCells:Ue,redrawRows:Ge,_internalGridApi:o.computed(()=>l.value)}),(e,r)=>(o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(ze.value),style:o.normalizeStyle(e.wrapperStyle)},[o.unref(i.isUndefined)(e.dataSource)&&e.searchForm!==!1&&o.unref(D).length>0?(o.openBlock(),o.createElementBlock("div",{key:0,class:o.normalizeClass(e.card?o.unref(R)("search-wrapper"):null),style:o.normalizeStyle(e.searchFormWrapperStyle)},[o.createVNode(o.unref(Je.ApForm).SearchForm,o.mergeProps(e.searchForm||{},{ref_key:"formRef",ref:g,"custom-reset":"","submit-loading":o.unref(z).loading,onSubmit:o.unref(F),onReset:o.unref(x)}),o.createSlots({default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(D),n=>(o.openBlock(),o.createBlock(o.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[T.searchFormExtra?{name:"extra",fn:o.withCtx(()=>[o.renderSlot(e.$slots,"searchFormExtra")]),key:"0"}:void 0]),1040,["submit-loading","onSubmit","onReset"])],6)):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass([o.unref(R)("table-wrapper"),e.card?o.unref(R)("table-wrapper-card"):null]),style:o.normalizeStyle(e.tableWrapperStyle)},[o.createElementVNode("div",{class:o.normalizeClass(o.unref(c)("header-wrapper"))},[o.renderSlot(e.$slots,"title",{selectedRows:o.unref(N),selectedRowKeys:o.unref(he),shownColumns:o.unref(m),clearAll:I})],2),o.createElementVNode("div",{ref_key:"gridWrapperRef",ref:se,class:o.normalizeClass(o.unref(c)("grid-wrapper"))},[o.createVNode(o.unref($e.AgGridVue),o.mergeProps(o.unref(je.mergeProps)(o.unref(Z),o.unref(E),Ie.value),{"get-row-class":He,style:Pe.value,"row-data":o.unref(w).records,"column-defs":o.unref(le),"default-col-def":o.unref(ae),"suppress-loading-overlay":"","row-selection":Fe.value,"selection-column-def":o.unref(we),"get-row-id":Ke,"get-row-height":t.getRowHeight,theme:o.unref(Y),"tooltip-show-delay":500,"enable-browser-tooltips":e.browserTooltips,"tooltip-interaction":"","row-class-rules":e.rowClassRules,"no-rows-overlay-component":go.default,"suppress-cell-focus":"","dom-layout":e.autoHeight?"autoHeight":"normal",onSortChanged:ie,onGridReady:r[0]||(r[0]=n=>l.value=n.api),onRowDataUpdated:k,onRowSelected:xe,onFirstDataRendered:Ne,onRowClicked:Oe,onBodyScrollEnd:We}),null,16,["style","row-data","column-defs","default-col-def","row-selection","selection-column-def","get-row-height","theme","enable-browser-tooltips","row-class-rules","dom-layout"]),o.withDirectives(o.createElementVNode("div",{class:o.normalizeClass(o.unref(R)("table-loading-wrapper"))},[o.createVNode(o.unref(j.Spin),{delay:300})],2),[[o.vShow,Ve.value]])],2),o.createElementVNode("div",{class:o.normalizeClass(o.unref(c)("pagination-wrapper"))},[e.pagination!==!1?(o.openBlock(),o.createBlock(o.unref(j.Pagination),o.mergeProps({key:0,class:o.unref(c)("pagination")},o.unref(z).pagination,{onChange:Ae}),null,16,["class"])):o.createCommentVNode("",!0)],2)],6)],6))}});exports.default=wo;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),$e=require("ag-grid-vue3"),$=require("ag-grid-community"),je=require("./utils.js"),j=require("@aplus-frontend/antdv"),i=require("lodash-unified");require("../config-provider/index.js");const Je=require("../ap-form/index.js"),Qe=require("../ap-table/utils.js"),Xe=require("../ap-table/hooks/use-table-paging-ng.js"),Ye=require("./hooks/use-row-selection.js"),Ze=require("./context.js"),eo=require("../ap-table/context.js"),B=require("../ap-grid/constants.js"),oo=require("@aplus-frontend/antdv/es/theme/internal"),to=require("./theme.js"),ro=require("./hooks/use-columns.js"),no=require("./hooks/use-columns-def.js"),ao=require("../utils/index.js"),lo=require("../utils/slot.js"),so=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const uo=require("./hooks/use-virtual-config.js"),io=require("./hooks/use-pinned-row.js"),co=require("./hooks/use-selection-col-def.js");require("./components/row/index.vue.js");const fo=require("../config-provider/hooks/use-namespace.js"),mo=require("../config-provider/hooks/use-global-config.js"),po=require("./components/row/index.vue2.js"),go=require("./components/empty/index.vue2.js"),wo=e.defineComponent({name:"AgGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onChange:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},columns:{},rowSelection:{type:Boolean},card:{type:Boolean},params:{},request:{},defaultData:{},dataSource:{},onLoadingChange:{},onShownColumnsChange:{},searchForm:{type:[Boolean,Object],default:void 0},beforeSearchSubmit:{},pagination:{type:[Boolean,Object],default:void 0},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},manual:{type:Boolean,default:void 0},size:{default:"mini"},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},theme:{}},setup(J,{expose:Q}){$.ModuleRegistry.registerModules([$.AllCommunityModule]);const t=J,T=e.useSlots(),{e:R,b:c,be:X}=fo.useNamespace("ag-grid"),C=e.ref(t.size),Y=to.useTheme(C,e.toRef(t,"rowHeight"),e.toRef(t,"theme")),Z=uo.default(e.toRef(t,"virtual")),{rowPinnedGridConfig:E,getRowPinnedCellClass:ee}=io.usePinnedRow(e.toRef(t,"summary")),oe=mo.useGlobalConfig("apGrid"),l=e.ref(),[,te]=oo.useToken();let y=!!t.dataSource;const D=so.useSearchForm(t),{shownColumns:p,columns:V,columnKeys:re,getTargetColumnByKey:ne}=ro.useColumns(t),{defaultColDef:ae,columnDefs:le,gridWrapperRef:se}=no.useColumnsDef(V,t,ee),b=e.ref({});Ze.useProvideSorter({sorter:b,setSorter(o){b.value=o}});const ue={asc:"ascend",desc:"descend"};function ie(){const o=l.value.getColumns()?.filter(d=>d.getSort()!==void 0),r=e.unref(b)||{};let n=o?.[0];const s=Object.keys(r);if(s.length&&s.every(d=>r[d]===null)){const d=Object.keys(r)[0];d&&(n=l.value?.getColumn(d))}if(!n)return;const u=n.getColDef(),f=n.getSort(),m=ne(u.colId);P(void 0,void 0,{column:u,field:m?.field??u.field??u.colId,order:f?ue[f]:null})}const ce=e.computed(()=>Qe.recursionApColumns(e.unref(p),o=>{if(o.sorter===!0)return o.field??o.dataIndex??o.key}).filter(Boolean)),de=()=>{b.value={};const o=l.value;if(!o)return;const r=o.getColumnState()?.map(n=>({...n,sort:null}));o.applyColumnState({state:r})},fe=e.computed(()=>ao.isDef(t.manual)?t.manual:lo.getValidVNodeList(T.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:g,submit:F,reset:x,data:w,tableProps:z,handleTableChangeOptional:P,submitWith:A,refresh:K,getPaging:me,setPaging:pe,setDataSource:ge}=Xe.useTablePaging({async request(o){if(y=!1,S.value&&!S.value.preserveSelectedRowKeys&&i.isUndefined(t.dataSource)&&I(),!i.isUndefined(t.dataSource)){const n=o.pageSize*(o.current-1);return{data:(t.pagination===!1?t.dataSource:t.dataSource.slice(n,n+o.pageSize))||[],total:t.dataSource.length||0}}const r=await t.request?.(o);return{data:r?.data||[],total:r?.total||0}},namespace:"ap-grid",filterFields:e.ref([]),params:e.toRef(t,"params"),defaultData:t.defaultData,manual:e.unref(fe),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:ce,onClickReset:de}),S=e.computed(()=>{const o=t.rowSelection||oe.value?.rowSelection;if(o)return o===!0?B.DEFAULT_ROW_SELECTION_CONFIG:{...B.DEFAULT_ROW_SELECTION_CONFIG,...o}}),we=co.default(t,p),Se=e.computed(()=>i.isUndefined(t.dataSource)?w.records:t.dataSource),{select:Ce,unSelect:ye,selectedRows:N,selectedRowKeys:he,clearAll:ve,selectMultiByKeys:Re,selectMulti:be,unSelectMulti:ke}=Ye.default({...S.value,dataSource:Se,rowKey:t.rowKey}),Be={checkbox:"multiRow",radio:"singleRow"},Fe=e.computed(()=>{const o=S.value;if(!o)return;const{type:r="checkbox",disabled:n}=o;return{mode:Be[r],isRowSelectable:s=>n?!n(s.data):!0,hideDisabledCheckboxes:o.hideDisabled??!1}});function q(o){return i.isFunction(t.rowKey)?t.rowKey(o):o[t.rowKey]}const k=({api:o=l.value})=>{if(t.onUpdate?.(),!S.value)return;const r=N.value||[];y=!1;const n=[];o.forEachNode(s=>{const h=s.data,u=q(h),f=s.isSelected();r.find(m=>q(m)===u)?!f&&n.push(s):f&&s.setSelected(!1)}),o.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{y=!0},0)},xe=o=>{y&&(o.node.isSelected()?Ce(o.data):ye(o.data),i.isFunction(S.value?.tooltip)&&o.api.refreshCells({rowNodes:[o.node],columns:["ag-Grid-SelectionColumn"],force:!0}))},Ne=()=>{y=!0},I=()=>{ve(),l.value?.deselectAll()};function qe(o){Re(o),e.nextTick(()=>{k({})})}const Ie=e.computed(()=>{const o=t.customRow;return o?{isFullWidthRow:o.isCustomRow,fullWidthCellRenderer:po.default,fullWidthCellRendererParams:{render:o.render}}:{}});function Te(o){be(o),e.nextTick(()=>{k({})})}function Ee(o){ke(o),e.nextTick(()=>{k({})})}function M(o=!1){const r=o?"getFieldsValueTransformed":"getFieldsValue";return g.value?.apForm?.[r]?.(!0)}function _(o){g.value?.apForm?.setFieldsValue?.(o)}function O(){return g.value?.getSorterItems()||[]}function W(o){g.value?.setSorterItems(o)}function U(){g.value?.resetSorterItems()}function G(o){return o&&String(o)}function De(o){const r=l.value;if(!r)return;const n=r.getColumnState()||[],s=o.map(a=>a.key?String(a.key):a.key).filter(Boolean),h=n.map(a=>{if(!re.value.includes(a.colId))return a;const v=!s.includes(a.colId),H={...a,hide:v},L=o.find(Le=>G(Le.key)===a.colId);return L&&(H.pinned=L.fixed||null),H}),u=new Map(o.map((a,v)=>[G(a.key),v])),f=h.filter(a=>u.has(a.colId)).sort((a,v)=>u.get(a.colId)-u.get(v.colId)),m=[];let d=0;for(const a of h)u.has(a.colId)?m.push(f[d++]):m.push(a);r.applyColumnState({state:m,applyOrder:!0})}eo.useProvideApTable({columns:e.computed(()=>p.value),columnsBackup:e.computed(()=>V.value),size:e.computed(()=>B.sizeMap[C.value]),updateColumns(o){p.value=o,t.onShownColumnsChange?.(o),De(o)},updateSize(o){C.value=B.sizeReverseMap[o]},renderConfig:e.computed(()=>({className:X("table-header","title"),color:te.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(w).records),getSearchFormValues:M,setSearchFormValues:_,submit:F,submitWith:A,reset:x,refresh:K,getSearchFormSorterItems:O,setSearchFormSorterItems:W,resetSearchFormSorterItems:U});const Ve=e.computed(()=>i.isUndefined(t.loading)?w.loading:t.loading),ze=e.computed(()=>[c(),t.card?null:c("wrapper"),c("adaptive"),c(`size-${C.value}`)].filter(Boolean)),Pe=e.computed(()=>({height:"100%",...t.tableStyle||{}})),Ae=(o,r)=>{P({current:o,pageSize:r})};function Ke(o){const r=o.data;return q(r)}function Me(o,r){(i.isFunction(o)?l.value?.ensureNodeVisible:l.value?.ensureIndexVisible)?.(o,r)}function _e(o,r){l.value?.ensureColumnVisible(o,r)}function Oe(o){t.onRowClicked?.(o.data,o.event)}function We(o){t.onScrollEnd?.(o.direction)}function Ue(o){return l.value?.refreshCells(o)}function Ge(o){return l.value?.redrawRows(o)}const He=o=>{const r=[E.value.getRowClass?.(o)];if(!o.node.rowPinned){const n=i.isFunction(t.rowClassName)?t.rowClassName(o.data,o.rowIndex):t.rowClassName;r.push(n)}return r.flat().filter(Boolean)};return e.watch(()=>t.dataSource,o=>{ge(o)},{immediate:!0,deep:!0}),e.watch(()=>t.size,o=>{C.value=o}),e.watch(()=>e.unref(w).loading,o=>{t.onLoadingChange?.(o)}),Q({submit:F,reset:x,refresh:K,submitWith:A,setSearchFormValues:_,getSearchFormValues:M,getShowColumns:()=>e.unref(p),rowSelection:{selectedRows:e.computed(()=>N.value),setSelectedRowKeys:qe,setSelectedRows:Te,clearAll:I,unSelectRows:Ee},scrollToRow:Me,scrollToColumn:_e,getDataSource:()=>e.unref(w.records),getPaging:me,setPaging:pe,getSearchFormSorterItems:O,setSearchFormSorterItems:W,resetSearchFormSorterItems:U,refreshCells:Ue,redrawRows:Ge,_internalGridApi:e.computed(()=>l.value)}),(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(ze.value),style:e.normalizeStyle(o.wrapperStyle)},[e.unref(i.isUndefined)(o.dataSource)&&o.searchForm!==!1&&e.unref(D).length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.card?e.unref(R)("search-wrapper"):null),style:e.normalizeStyle(o.searchFormWrapperStyle)},[e.createVNode(e.unref(Je.ApForm).SearchForm,e.mergeProps(o.searchForm||{},{ref_key:"formRef",ref:g,"custom-reset":"","submit-loading":e.unref(z).loading,onSubmit:e.unref(F),onReset:e.unref(x)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(D),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[T.searchFormExtra?{name:"extra",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"searchFormExtra")]),key:"0"}:void 0]),1040,["submit-loading","onSubmit","onReset"])],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(R)("table-wrapper"),o.card?e.unref(R)("table-wrapper-card"):null]),style:e.normalizeStyle(o.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(c)("header-wrapper"))},[e.renderSlot(o.$slots,"title",{selectedRows:e.unref(N),selectedRowKeys:e.unref(he),shownColumns:e.unref(p),clearAll:I})],2),e.createElementVNode("div",{ref_key:"gridWrapperRef",ref:se,class:e.normalizeClass(e.unref(c)("grid-wrapper"))},[e.createVNode(e.unref($e.AgGridVue),e.mergeProps(e.unref(je.mergeProps)(e.unref(Z),e.unref(E),Ie.value),{"get-row-class":He,style:Pe.value,"row-data":e.unref(w).records,"column-defs":e.unref(le),"default-col-def":e.unref(ae),"suppress-loading-overlay":"","row-selection":Fe.value,"selection-column-def":e.unref(we),"get-row-id":Ke,"get-row-height":t.getRowHeight,theme:e.unref(Y),"tooltip-show-delay":500,"enable-browser-tooltips":o.browserTooltips,"tooltip-interaction":"","row-class-rules":o.rowClassRules,"no-rows-overlay-component":go.default,"suppress-cell-focus":"","dom-layout":o.autoHeight?"autoHeight":"normal",onSortChanged:ie,onGridReady:r[0]||(r[0]=n=>l.value=n.api),onRowDataUpdated:k,onRowSelected:xe,onFirstDataRendered:Ne,onRowClicked:Oe,onBodyScrollEnd:We}),null,16,["style","row-data","column-defs","default-col-def","row-selection","selection-column-def","get-row-height","theme","enable-browser-tooltips","row-class-rules","dom-layout"]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(R)("table-loading-wrapper"))},[e.createVNode(e.unref(j.Spin),{delay:300})],2),[[e.vShow,Ve.value]])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(c)("pagination-wrapper"))},[o.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(j.Pagination),e.mergeProps({key:0,class:e.unref(c)("pagination")},e.unref(z).pagination,{onChange:Ae}),null,16,["class"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=wo;
@@ -4,7 +4,7 @@ import { TableProps } from '@aplus-frontend/antdv';
4
4
  import { ApFormSearchFormPopoverSorterItem, ApFormSearchFormProps } from '../ap-form/interface';
5
5
  import { Recordable } from '../type';
6
6
  import { SortOrder, TableRowSelection } from '@aplus-frontend/antdv/es/table/interface';
7
- import { ColDef, GridApi, ICellRendererParams, IRowNode, IsFullWidthRowParams, RedrawRowsParams, RefreshCellsParams, RowClassRules, RowHeightParams, RowPinnedType, ScrollDirection } from 'ag-grid-community';
7
+ import { ColDef, GridApi, ICellRendererParams, IRowNode, IsFullWidthRowParams, RedrawRowsParams, RefreshCellsParams, RowClassRules, RowHeightParams, RowPinnedType, ScrollDirection, ThemeDefaultParams } from 'ag-grid-community';
8
8
  import { InternalPagingType } from '../ap-table/hooks/use-table-paging-ng';
9
9
  export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueType extends ApTableValueTypes = ApTableValueTypes, MergedValueType extends ExtraValueType | ValueType = ExtraValueType | ValueType> = MergedValueType extends ExtraValueType | ValueType ? Omit<ExtraProColumnType<RecordType>, 'sorter' | 'rowSpan' | 'customCell' | 'customHeaderCell' | 'minWidth' | 'width' | 'maxWidth' | 'className' | 'class' | 'colSpan'> & {
10
10
  children?: AgGridColumnType<RecordType, ExtraValueType, ValueType>[];
@@ -84,6 +84,7 @@ export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueTyp
84
84
  pinned?: boolean;
85
85
  rowIndex?: number;
86
86
  params?: ICellRendererParams;
87
+ path?: (string | number)[];
87
88
  }) => any;
88
89
  width?: number;
89
90
  minWidth?: number;
@@ -111,6 +112,11 @@ export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueTyp
111
112
  * 自定表头列类名
112
113
  */
113
114
  headerClass?: ColDef<RecordType>['headerClass'];
115
+ /**
116
+ * 当单元格可编辑时,记录表单项的namePath
117
+ * @private 仅限内部使用,请勿传递
118
+ */
119
+ _path?: (string | number)[];
114
120
  } : null;
115
121
  export type AgGridRowSelection<RecordType> = Pick<TableRowSelection<RecordType>, 'type' | 'fixed' | 'columnWidth' | 'defaultSelectedRowKeys'> & {
116
122
  /**
@@ -319,6 +325,11 @@ export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<Re
319
325
  * @since 6.37.0
320
326
  */
321
327
  customRow?: AgGridCustomRowConfig;
328
+ /**
329
+ * 自定义主题
330
+ * @since 6.41.0
331
+ */
332
+ theme?: Partial<ThemeDefaultParams>;
322
333
  };
323
334
  export type AgGridExpose<SearchParamsType = Recordable, RecordType = any> = {
324
335
  /**
@@ -1,3 +1,4 @@
1
1
  import { Ref, ComputedRef } from 'vue';
2
+ import { AgGridProps } from './interface';
2
3
  import { Theme, ThemeDefaultParams } from 'ag-grid-community';
3
- export declare const useTheme: (size: Ref<"medium" | "mini" | undefined>, rowHeight: Ref<undefined | number>) => ComputedRef<Theme<ThemeDefaultParams>>;
4
+ export declare const useTheme: (size: Ref<"medium" | "mini" | undefined>, rowHeight: Ref<undefined | number>, customTheme: Ref<AgGridProps["theme"]>) => ComputedRef<Theme<ThemeDefaultParams>>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@aplus-frontend/antdv/es/theme/internal"),d=require("ag-grid-community"),c=require("vue"),i=(r,o)=>{const[,a]=n.useToken();return c.computed(()=>{const t=r.value==="mini",e=a.value;return d.themeQuartz.withParams({headerHeight:"36px",headerFontSize:"12px",dataFontSize:"12px",rowHeight:o.value,spacing:t?"5px":"6.5px",foregroundColor:e.colorTextBase,wrapperBorder:!1,rowBorder:{color:e.colorBorderSecondary},headerRowBorder:{color:e.colorBorderSecondary},selectedRowBackgroundColor:e.controlItemBgActive,checkboxCheckedBackgroundColor:e.colorPrimary,rowHoverColor:"var(--ap-color-bg-2)",headerBackgroundColor:"var(--ap-table-header-bg)",headerColumnResizeHandleHeight:"50%",headerColumnResizeHandleWidth:"1px",wrapperBorderRadius:"4px"})})};exports.useTheme=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@aplus-frontend/antdv/es/theme/internal"),c=require("ag-grid-community"),l=require("vue"),i=(r,o,a)=>{const[,t]=d.useToken();return l.computed(()=>{const n=r.value==="mini",e=t.value;return c.themeQuartz.withParams({headerHeight:"36px",headerFontSize:"12px",dataFontSize:"12px",foregroundColor:e.colorTextBase,wrapperBorder:!1,rowBorder:{color:e.colorBorderSecondary},headerRowBorder:{color:e.colorBorderSecondary},selectedRowBackgroundColor:e.controlItemBgActive,checkboxCheckedBackgroundColor:e.colorPrimary,rowHoverColor:"var(--ap-color-bg-2)",headerBackgroundColor:"var(--ap-table-header-bg)",headerColumnResizeHandleHeight:"50%",headerColumnResizeHandleWidth:"1px",wrapperBorderRadius:"4px",...a.value||{},rowHeight:o.value,spacing:n?"5px":"6.5px"})})};exports.useTheme=i;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../../config-provider/index.js");const f=require("@aplus-frontend/antdv/es/button/LoadingIcon"),p=require("@aplus-frontend/antdv"),k=require("../../config-provider/hooks/use-namespace.js"),y={key:1},g=e.defineComponent({name:"ApActionItem",__name:"index",props:{text:{},color:{default:"primary"},disabled:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},onAction:{type:Function},onClick:{type:Function},loading:{type:Boolean,default:!1},icon:{},iconFirst:{type:Boolean,default:!1},tooltip:{default:()=>({})}},setup(t){const i=e.useSlots(),a=e.createPropsRestProxy(t,["color","disabled","visible","loading","iconFirst","icon","tooltip"]),{b:u,m:n,e:d}=k.useNamespace("action-item"),r=e.ref(!1),c=e.computed(()=>t.iconFirst&&(t.icon||i.icon));function s(o){e.unref(l)||t.disabled||(a.onClick?.(o),a.onAction&&(r.value=!0,a.onAction(o).finally(()=>r.value=!1)))}const l=e.computed(()=>t.loading||e.unref(r)),m=e.computed(()=>[u(),n(t.color),c.value?n("icon-first"):null,t.disabled?n("disabled"):null,l.value?n("loading"):null].filter(Boolean));return(o,v)=>e.renderSlot(o.$slots,"trigger",{loading:l.value,disabled:o.disabled,onClick:s},()=>[o.visible?(e.openBlock(),e.createElementBlock("span",e.mergeProps({key:0},o.$attrs,{class:m.value,onClick:s}),[l.value?(e.openBlock(),e.createBlock(e.unref(f),{key:0,"prefix-cls":"btn","exist-icon":!1,loading:""})):e.createCommentVNode("",!0),o.icon||i.icon?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(d)("icon-wrapper"))},[e.createVNode(e.unref(p.Tooltip),e.mergeProps({title:c.value?o.text:null},o.tooltip),{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.icon||i.icon)))]),_:1},16,["title"])],2)):e.createCommentVNode("",!0),c.value?e.createCommentVNode("",!0):e.renderSlot(o.$slots,"default",{key:2},()=>[e.isVNode(o.text)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.text),{key:0})):(e.openBlock(),e.createElementBlock("span",y,e.toDisplayString(o.text||""),1))])],16)):e.createCommentVNode("",!0)])}});exports.default=g;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../../config-provider/index.js");const p=require("@aplus-frontend/antdv/es/button/LoadingIcon"),k=require("@aplus-frontend/antdv"),v=require("../style/index.js"),y=require("../../config-provider/hooks/use-namespace.js"),g={key:1},B=e.defineComponent({name:"ApActionItem",__name:"index",props:{text:{},color:{default:"primary"},disabled:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},onAction:{type:Function},onClick:{type:Function},loading:{type:Boolean,default:!1},icon:{},iconFirst:{type:Boolean,default:!1},tooltip:{default:()=>({})}},setup(t){const i=e.useSlots(),a=e.createPropsRestProxy(t,["color","disabled","visible","loading","iconFirst","icon","tooltip"]),{b:u,m:n,e:d}=y.useNamespace("action-item"),r=e.ref(!1),c=e.computed(()=>t.iconFirst&&(t.icon||i.icon)),f=v.default("action");function s(o){e.unref(l)||t.disabled||(a.onClick?.(o),a.onAction&&(r.value=!0,a.onAction(o).finally(()=>r.value=!1)))}const l=e.computed(()=>t.loading||e.unref(r)),m=e.computed(()=>[f.value,u(),n(t.color),c.value?n("icon-first"):null,t.disabled?n("disabled"):null,l.value?n("loading"):null].filter(Boolean));return(o,C)=>e.renderSlot(o.$slots,"trigger",{loading:l.value,disabled:o.disabled,onClick:s},()=>[o.visible?(e.openBlock(),e.createElementBlock("span",e.mergeProps({key:0},o.$attrs,{class:m.value,onClick:s}),[l.value?(e.openBlock(),e.createBlock(e.unref(p),{key:0,"prefix-cls":"btn","exist-icon":!1,loading:""})):e.createCommentVNode("",!0),o.icon||i.icon?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(d)("icon-wrapper"))},[e.createVNode(e.unref(k.Tooltip),e.mergeProps({title:c.value?o.text:null},o.tooltip),{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.icon||i.icon)))]),_:1},16,["title"])],2)):e.createCommentVNode("",!0),c.value?e.createCommentVNode("",!0):e.renderSlot(o.$slots,"default",{key:2},()=>[e.isVNode(o.text)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.text),{key:0})):(e.openBlock(),e.createElementBlock("span",g,e.toDisplayString(o.text||""),1))])],16)):e.createCommentVNode("",!0)])}});exports.default=B;
@@ -0,0 +1,61 @@
1
+ import { resetComponent } from '~/style';
2
+ import { genComponentStyleHook } from '~/utils/cssinjs';
3
+ export const genActionItemStyle = (token) => {
4
+ const { loadingOpacity, colorLink, colorLinkHover, colorSuccess, colorError, colorWarn, componentCls } = token;
5
+ return {
6
+ [`${componentCls}-item`]: {
7
+ display: 'inline-block',
8
+ cursor: 'pointer',
9
+ ...resetComponent(token),
10
+ '&--primary': {
11
+ color: colorLink,
12
+ [`&:not(${componentCls}-item--disabled):hover`]: {
13
+ color: colorLinkHover
14
+ },
15
+ [`&${componentCls}-item--disabled`]: {
16
+ color: token.colorLinkDisabled
17
+ }
18
+ },
19
+ '&--success': {
20
+ color: colorSuccess,
21
+ [`&${componentCls}-item--disabled`]: {
22
+ color: token.colorSuccessDisabled
23
+ }
24
+ },
25
+ '&--error': {
26
+ color: colorError,
27
+ [`&${componentCls}-item--disabled`]: {
28
+ color: token.colorErrorDisabled
29
+ }
30
+ },
31
+ '&--warn': {
32
+ color: colorWarn,
33
+ [`&${componentCls}-item--disabled`]: {
34
+ color: token.colorWarnDisabled
35
+ }
36
+ },
37
+ '&--loading': {
38
+ opacity: loadingOpacity,
39
+ transition: 'opacity 0.2s',
40
+ cursor: 'default',
41
+ '.btn-loading-icon': {
42
+ marginRight: token.spaceXS
43
+ }
44
+ },
45
+ '&--disabled': {
46
+ cursor: 'not-allowed'
47
+ },
48
+ [`${componentCls}-item__icon-wrapper`]: {
49
+ paddingRight: token.spaceXS
50
+ },
51
+ '&--icon-first': {
52
+ [`${componentCls}-item__icon-wrapper`]: {
53
+ paddingRight: 0
54
+ }
55
+ }
56
+ }
57
+ };
58
+ };
59
+ export default genComponentStyleHook('ApAction', (token) => {
60
+ return [genActionItemStyle(token)];
61
+ }, { loadingOpacity: 0.35 });
@@ -0,0 +1,8 @@
1
+ import { BaseToken, GenStyleFunc } from '../../design-token/interface';
2
+ import { Ref } from 'vue';
3
+ export type ActionToken = {
4
+ loadingOpacity: number;
5
+ };
6
+ export declare const genActionItemStyle: GenStyleFunc<BaseToken & ActionToken>;
7
+ declare const _default: (prefixCls: string) => Ref<string | undefined, string | undefined>;
8
+ export default _default;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../style/index.js"),d=require("../../utils/cssinjs/index.js"),e=o=>{const{loadingOpacity:i,colorLink:c,colorLinkHover:l,colorSuccess:t,colorError:n,colorWarn:s,componentCls:r}=o;return{[`${r}-item`]:{display:"inline-block",cursor:"pointer",...a.resetComponent(o),"&--primary":{color:c,[`&:not(${r}-item--disabled):hover`]:{color:l},[`&${r}-item--disabled`]:{color:o.colorLinkDisabled}},"&--success":{color:t,[`&${r}-item--disabled`]:{color:o.colorSuccessDisabled}},"&--error":{color:n,[`&${r}-item--disabled`]:{color:o.colorErrorDisabled}},"&--warn":{color:s,[`&${r}-item--disabled`]:{color:o.colorWarnDisabled}},"&--loading":{opacity:i,transition:"opacity 0.2s",cursor:"default",".btn-loading-icon":{marginRight:o.spaceXS}},"&--disabled":{cursor:"not-allowed"},[`${r}-item__icon-wrapper`]:{paddingRight:o.spaceXS},"&--icon-first":{[`${r}-item__icon-wrapper`]:{paddingRight:0}}}}},p=d.genComponentStyleHook("ApAction",o=>[e(o)],{loadingOpacity:.35});exports.default=p;exports.genActionItemStyle=e;