cnhis-design-vue 3.3.1-beta.7 → 3.3.1-beta.9

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 (41) hide show
  1. package/es/components/ai-chat/index.d.ts +1 -7
  2. package/es/components/ai-chat/src/Index.vue.d.ts +1 -7
  3. package/es/components/ai-chat/src/components/ChatFooter.vue2.js +1 -1
  4. package/es/components/ai-chat/src/components/ChatMain.d.ts +1 -7
  5. package/es/components/ai-chat/src/components/ChatMain.js +1 -1
  6. package/es/components/ai-chat/style/index.css +1 -1
  7. package/es/components/audio-sdk/index.d.ts +304 -2
  8. package/es/components/audio-sdk/index.js +1 -1
  9. package/es/components/audio-sdk/src/Index.vue.d.ts +304 -0
  10. package/es/components/audio-sdk/src/Index.vue.js +1 -0
  11. package/es/components/audio-sdk/src/Index.vue2.js +1 -0
  12. package/es/components/audio-sdk/src/audioSDK.d.ts +2 -6
  13. package/es/components/audio-sdk/src/audioSDK.js +1 -1
  14. package/es/components/audio-sdk/src/components/form.vue.d.ts +6 -4
  15. package/es/components/audio-sdk/src/components/form.vue2.js +1 -1
  16. package/es/components/audio-sdk/src/components/recording-modal.vue.d.ts +91 -0
  17. package/es/components/audio-sdk/src/components/recording-modal.vue.js +1 -0
  18. package/es/components/audio-sdk/src/components/recording-modal.vue2.js +1 -0
  19. package/es/components/audio-sdk/src/components/recording.vue.d.ts +28 -5
  20. package/es/components/audio-sdk/src/components/recording.vue2.js +1 -1
  21. package/es/components/audio-sdk/src/utils/index.d.ts +4 -0
  22. package/es/components/audio-sdk/src/utils/index.js +1 -0
  23. package/es/components/audio-sdk/src/utils/recordingModal.d.ts +1 -3
  24. package/es/components/audio-sdk/src/utils/recordingModal.js +1 -1
  25. package/es/components/audio-sdk/style/index.css +1 -1
  26. package/es/components/iho-table/src/IhoTable.vue2.js +1 -1
  27. package/es/components/iho-table/src/hooks/tapHooks/index.d.ts +1 -1
  28. package/es/components/iho-table/src/hooks/tapHooks/index.js +1 -1
  29. package/es/components/iho-table/src/hooks/tapHooks/useDataHooks.d.ts +3 -3
  30. package/es/components/iho-table/src/hooks/tapHooks/useDataHooks.js +1 -1
  31. package/es/components/iho-table/src/plugins/filterRenderPlugin/index.js +1 -1
  32. package/es/components/iho-table/src/plugins/highLightSetPlugin.js +1 -1
  33. package/es/components/iho-table/src/plugins/stickyFixedPlugin.js +1 -1
  34. package/es/components/iho-table/src/plugins/varialbleHeightPlugin.js +1 -1
  35. package/es/components/iho-table/src/plugins/verticalTablePlugin/src/utils.js +1 -1
  36. package/es/components/iho-table/src/types/pluginType.d.ts +2 -2
  37. package/es/components/index.css +1 -1
  38. package/es/components/index.d.ts +2 -1
  39. package/es/components/index.js +1 -1
  40. package/es/shared/package.json.js +1 -1
  41. package/package.json +2 -2
@@ -4,12 +4,10 @@ export declare class RecordingModal {
4
4
  rendered: boolean;
5
5
  target: HTMLElement | null;
6
6
  modalType: string;
7
- show({ instance, modalType, onClose, createMedicalRecord, toEdit, props }: {
7
+ show({ instance, modalType, onClose, props }: {
8
8
  instance?: ComponentInternalInstance;
9
9
  onClose: () => void;
10
10
  modalType?: string;
11
- createMedicalRecord?: (data: AnyObject) => void;
12
- toEdit?: () => void;
13
11
  props: AnyObject;
14
12
  }): void;
15
13
  hide(): void;
@@ -1 +1 @@
1
- import{ref as e,render as t,createVNode as n,withCtx as o,nextTick as r,mergeProps as i}from"vue";import{createProviderWrapper as s}from"../../../../shared/utils/index.js";import l from"../components/recording.vue.js";import d from"../components/form.vue.js";class a{constructor(){this.rendered=!1,this.target=null,this.modalType="recording"}show({instance:a,modalType:u,onClose:c,createMedicalRecord:h,toEdit:m,props:p}){if(this.modalType=u||"recording",this.rendered)return;this.rendered=!0;const v=document.createElement("div"),f=e(!1),g=s(a),w=this;function y(){const e={to:v,onClose:c,onAfterLeave:c};return"recording"===w.modalType?n(l,i({show:f.value,"onUpdate:show":e=>f.value=e,onEdit:C},e,{content:p.contentRef.value,showBtn:p.showBtn}),null):n(d,i({show:f.value,"onUpdate:show":e=>f.value=e,onFinish:T},e,{data:p.data,configs:p.configs}),null)}var E;function C(){null==m||m()}function T(e){null==h||h(e)}t(n(g,null,{default:o((()=>y()),a)}),v),E=v,document.body.appendChild(E),w.target=E,r((()=>f.value=!0))}hide(){var e;(null==(e=this.target)?void 0:e.parentElement)&&(this.rendered=!1,this.target.parentElement.removeChild(this.target),this.target=null)}}export{a as RecordingModal};
1
+ import{ref as e,render as t,createVNode as r,withCtx as o,mergeProps as n,nextTick as d}from"vue";import{createProviderWrapper as l}from"../../../../shared/utils/index.js";import s from"../components/recording-modal.vue.js";class i{constructor(){this.rendered=!1,this.target=null,this.modalType="recording"}show({instance:i,modalType:a,onClose:h,props:m}){if(this.modalType=a||"recording",this.rendered)return;this.rendered=!0;const u=document.createElement("div"),p=e(!1),c=l(i),v=this;var g;t(r(c,null,{default:o((()=>r(s,n({show:p.value,"onUpdate:show":e=>p.value=e},{to:u,onClose:h,onAfterLeave:h},{content:m.contentRef.value}),null)),i)}),u),g=u,document.body.appendChild(g),v.target=g,d((()=>p.value=!0))}hide(){var e;(null==(e=this.target)?void 0:e.parentElement)&&(this.rendered=!1,this.target.parentElement.removeChild(this.target),this.target=null)}}export{i as RecordingModal};
@@ -1 +1 @@
1
- .c-recording-wrapper{align-items:center;background-color:#fff;border-radius:10px;display:flex;flex-flow:column nowrap;height:350px;justify-content:center;padding:20px;width:500px}@keyframes toScale{0%{transform:translateX(-50%) translateY(-50%) scale(1)}to{transform:translateX(-50%) translateY(-50%) scale(1.5)}}.c-recording-wrapper .content{-webkit-box-orient:vertical;-webkit-line-clamp:3;display:-webkit-box;font-size:18px;overflow:hidden;text-align:center}.c-recording-wrapper .icon-box{background-color:#5585f5;cursor:pointer;margin:20px auto;position:relative}.c-recording-wrapper .icon-box,.c-recording-wrapper .icon-box:before{align-items:center;border-radius:50%;display:flex;height:90px;justify-content:center;width:90px}.c-recording-wrapper .icon-box:before{animation:toScale 1s infinite;background-color:#5585f54d;content:"";left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) scale(1);transform-origin:center center}.c-recording-wrapper .btns{display:flex;margin-top:10px}.c-recording-wrapper .btns .n-button:first-child{margin-right:30px}.n-dialog.n-modal.c-audio-form{padding:16px;width:auto}.n-dialog.n-modal.c-audio-form .n-form{min-width:500px;padding:0 5px}
1
+ .c-recording-wrapper{align-items:center;background-color:#fff;border-radius:10px;display:flex;flex-flow:column nowrap;height:350px;justify-content:center;padding:20px;width:500px}@keyframes toScale{0%{transform:translateX(-50%) translateY(-50%) scale(1)}to{transform:translateX(-50%) translateY(-50%) scale(1.5)}}.c-recording-wrapper .content{-webkit-box-orient:vertical;-webkit-line-clamp:3;display:-webkit-box;font-size:18px;overflow:hidden;text-align:center}.c-recording-wrapper .icon-box{background-color:#5585f5;cursor:pointer;margin:30px auto;position:relative}.c-recording-wrapper .icon-box,.c-recording-wrapper .icon-box:before{align-items:center;border-radius:50%;display:flex;height:90px;justify-content:center;width:90px}.c-recording-wrapper .icon-box:before{animation:toScale 1s infinite;background-color:#5585f54d;content:"";left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) scale(1);transform-origin:center center}.c-recording-wrapper .title{height:50px;width:100%}.c-recording-wrapper .title h5{font-size:15px}.c-recording-wrapper .btns{display:flex;margin-top:10px}.c-recording-wrapper .btns .n-button:first-child{margin-right:30px}.c-recording-sdk-wrapper{height:100%;padding:20px;width:100%}.c-recording-sdk-wrapper .c-recording-wrapper{height:100%;width:100%}
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,provide as o,computed as a,toRaw as l,nextTick as n,watch as i,resolveComponent as r,openBlock as s,createElementBlock as u,mergeProps as d,unref as c,createBlock as f,resolveDynamicComponent as m,createElementVNode as v,normalizeStyle as p,createVNode as h,withCtx as g,createSlots as b,renderList as x,createCommentVNode as y,renderSlot as k,normalizeProps as C,guardReactiveProps as $}from"vue";import{useTheme as D,createOpacityColor as j}from"../../../shared/hooks/useTheme.js";import{useDebounceFn as w}from"@vueuse/core";import"date-fns";import{isString as T,isEqualWith as I,isFunction as R,pick as S}from"lodash-es";import{useFormAsyncQueue as q,presetRequestHandler as H}from"../../../shared/hooks/useFormRequest/index.js";import{hex2rgba as L,widthAppend as P,uuidGenerator as _}from"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{NConfigProvider as A}from"naive-ui";import{useVersion as B}from"../../../shared/hooks/useVersion.js";import"../../../shared/hooks/useScrollLoading.js";import{VxeTableEventNameList as F,InjectionIhoTableXeInstance as M,InjectionIhoTableLoading as O,InjectionIhoTableEmits as E,InjectionTableAsyncQueue as W,InjectionIhoTableAnnotation as N,InjectionIhoTableUUID as V,InjectionIhoTableInstance as z,InjectionIhoTableConfig as G,InjectionIhoTableFieldList as J,InjectionIhoTableHandler as K,InjectionIhoTableGlobProps as Q}from"./constants/index.js";import{createTableHooks as U,applyTableConfigHooks as X,applyTableFieldHooks as Y,createTableEventHandlers as Z,createDomInsertComponent as ee,createDataTransfer as te}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as oe}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as ae}from"./utils/index.js";const le=["id"];var ne=e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object},requestInstance:{type:Object},uniqueCacheData:{type:Boolean,default:!1},parallelism:{type:Number,default:3},developMode:{type:Boolean,default:!1}},emits:["formChange","settingClick","formClick","keyboard","rowDrag",...F],setup(e,{expose:F,emit:ne}){var ie,re;const se=e,ue=t();o(M,ue);const de=t(!1),ce=a((()=>{var e;return(null==(e=se.tableConfig)?void 0:e.loading)||de.value}));o(O,de);const fe=D({"--c-border-color":"#d0d0d0","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#e6e6e6","--c-stripe-color":"#f6f6f6"}),me=a((()=>{var e,t,o;const a={...fe.value};return a["--c-primary-color-opacity3"]=j(...L(a["--c-primary-color"]+""),.3),a["--c-scrollbar-width"]=P(null!=(o=null==(t=null==(e=ue.value)?void 0:e.reactData)?void 0:t.scrollbarWidth)?o:0),a})),ve=a((()=>{var e,t;const o=null!=(t=null==(e=se.tableConfig)?void 0:e.height)?t:"100%";return{height:"auto"===o?"100%":T(o)&&(o.includes("calc")||o.endsWith("%"))?o:P(o)}})),pe=oe(),he=function(e,...t){ne(e,...t);const o=c(ke)[ae(e)];R(o)&&o(...t),pe.trigger(e,...t)};o(E,he);const ge=q(a((()=>se.requestInstance)),a((()=>!!se.uniqueCacheData))).create(se.parallelism,{beforeRequest:(e,t)=>t,afterRequest:(e,t)=>H(t)});o(W,ge);const be=U();o(N,a((()=>se.annotation)));const xe=_();o(V,xe);const ye=t();o(z,ye);const ke=t({uuid:null!=(re=null==(ie=se.tableConfig)?void 0:ie.uuid)?re:xe});o(G,ke);const Ce=w($e,10);function $e(){var e,t;ke.value=X(be,{...se.tableConfig,uuid:null!=(t=null==(e=se.tableConfig)?void 0:e.uuid)?t:xe},{$table:ye,emits:he,globProps:se,loading:de,$xeTable:ue})}const De=a((()=>{if(!ke.value.tableRowHeight)return{};const e=P(ke.value.rowConfig.height);return{Input:{heightLarge:e,heightMedium:e,heightSmall:e,heightTiny:e},InternalSelection:{heightLarge:e,heightMedium:e,heightSmall:e,heightTiny:e}}})),je=t([]);o(J,je);const we=w(Te,10);function Te(){const e=Y(be,se.fieldList,ke.value,{$table:ye,emits:he,loading:de,globProps:se,$xeTable:ue});I(e,l(je.value),((e,t)=>{if(R(e)&&R(t))return e.toString()===t.toString()}))||(je.value=e)}const Ie=te(be,ke,ye);let Re=null;function Se(e){Re=e}async function qe(){await n(),null==Re||Re(),Re=null}const He=t([]);async function Le(){var e,t,o,a;const l=await Ie(se.tableData),i=null==(e=ye.value)?void 0:e.getTableData().fullData;if(i){let e=0;if(!(i.some((t=>{var o;if(!(null==(o=ye.value)?void 0:o.isInsertByRow(t))){if(t!==l[e])return!0;e++}}))||e!==l.length))return void qe()}He.value=l,(null==(t=ke.value.treeConfig)?void 0:t.expandAll)?(await n(),null==(o=ye.value)||o.setAllTreeExpand(!0)):null==(a=ye.value)||a.recalculate(!0),qe()}const Pe={updateTableDataRef:w(Le,10),updateConfigRef:Ce,updateFieldListRef:we};o(K,Pe),o(Q,se);const _e=Z({hooks:be,config:ke,$table:ye,context:Pe,emits:he,globProps:se,loading:de,$xeTable:ue}),Ae=a((()=>({...ke.value,..._e})));let Be=!1,Fe=!1,Me=!1;const Oe=w((()=>{Be&&$e(),Fe&&Te(),Me&&Le(),Be=!1,Fe=!1,Me=!1}),10);i((()=>se.tableConfig),(()=>{Be=!0,Fe=!0,Me=!0,Oe()}),{deep:!0}),i((()=>se.fieldList),(()=>{Fe=!0,Me=!0,Oe()}),{deep:!0}),i([()=>[...se.tableData],()=>{var e;return null==(e=se.tableData)?void 0:e.length}],(()=>{Me=!0,Oe()})),$e(),Te(),Le();const{header:Ee,footer:We}=ee(be);function Ne(e){return S(e,["row","rowIndex","$rowIndex","column","columnIndex","$columnIndex","_columnIndex","checked","disabled","indeterminate"])}return F({$table:ye,async loadData(e){var t;null==(t=ye.value)||t.loadData(await Ie(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),tableDataResolved:()=>new Promise(Se),reload(){var e,t;null==(e=ye.value)||e.loadColumn([]),null==(t=ye.value)||t.loadData([]),$e(),Te(),Le()},verticalTable:{update:()=>{}},...be.exposeHooks.expose.call({},ke,{$table:ye,emits:he,globProps:se,loading:de,$xeTable:ue,...Pe})}),be.setupHooks.setup.call(ke,je,{$table:ye,emits:he,globProps:se,loading:de,$xeTable:ue}),(e,t)=>{const o=r("vxe-grid");return s(),u("section",d({class:"iho-table",id:c(xe),style:c(me)},c(B)()),[(s(),f(m(c(Ee)))),v("section",{style:p(c(ve))},[h(c(A),{abstract:"",namespace:"vxe-table--ignore-clear","theme-overrides":c(De)},{default:g((()=>[h(o,d({ref_key:"$table",ref:ye},c(Ae),{columns:je.value,data:He.value,loading:c(ce)}),b({_:2},[x(e.$slots,((t,o)=>({name:o,fn:g((t=>[y(" 实际上所有的vxe-grid插槽都支持 "),k(e.$slots,o,C($(Ne(t))))]))})))]),1040,["columns","data","loading"])])),_:3},8,["theme-overrides"])],4),(s(),f(m(c(We))))],16,le)}}});export{ne as default};
1
+ import{defineComponent as e,ref as t,provide as o,computed as a,toRaw as l,nextTick as n,watch as i,resolveComponent as r,openBlock as s,createElementBlock as u,mergeProps as d,unref as c,createBlock as f,resolveDynamicComponent as m,createElementVNode as v,normalizeStyle as p,createVNode as h,withCtx as g,createSlots as b,renderList as x,createCommentVNode as y,renderSlot as k,normalizeProps as $,guardReactiveProps as C}from"vue";import{useTheme as D,createOpacityColor as T}from"../../../shared/hooks/useTheme.js";import{useDebounceFn as j}from"@vueuse/core";import"date-fns";import{isString as w,isEqualWith as I,isFunction as R,pick as S}from"lodash-es";import{useFormAsyncQueue as q,presetRequestHandler as H}from"../../../shared/hooks/useFormRequest/index.js";import{hex2rgba as L,widthAppend as P,uuidGenerator as _}from"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{NConfigProvider as A}from"naive-ui";import{useVersion as B}from"../../../shared/hooks/useVersion.js";import"../../../shared/hooks/useScrollLoading.js";import{VxeTableEventNameList as F,InjectionIhoTableXeInstance as M,InjectionIhoTableLoading as O,InjectionIhoTableEmits as E,InjectionTableAsyncQueue as W,InjectionIhoTableAnnotation as N,InjectionIhoTableUUID as V,InjectionIhoTableInstance as z,InjectionIhoTableConfig as G,InjectionIhoTableFieldList as J,InjectionIhoTableHandler as K,InjectionIhoTableGlobProps as Q}from"./constants/index.js";import{createTableHooks as U,applyTableConfigHooks as X,applyTableFieldHooks as Y,createTableEventHandlers as Z,createDomInsertComponent as ee,createDataTransfer as te}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as oe}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as ae}from"./utils/index.js";const le=["id"];var ne=e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object},requestInstance:{type:Object},uniqueCacheData:{type:Boolean,default:!1},parallelism:{type:Number,default:3},developMode:{type:Boolean,default:!1}},emits:["formChange","settingClick","formClick","keyboard","rowDrag",...F],setup(e,{expose:F,emit:ne}){var ie,re;const se=e,ue=t();o(M,ue);const de=t(!1),ce=a((()=>{var e;return(null==(e=se.tableConfig)?void 0:e.loading)||de.value}));o(O,de);const fe=D({"--c-border-color":"#d0d0d0","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#e6e6e6","--c-stripe-color":"#f6f6f6"}),me=a((()=>{var e,t,o;const a={...fe.value};return a["--c-primary-color-opacity3"]=T(...L(a["--c-primary-color"]+""),.3),a["--c-scrollbar-width"]=P(null!=(o=null==(t=null==(e=ue.value)?void 0:e.reactData)?void 0:t.scrollbarWidth)?o:0),a})),ve=a((()=>{var e,t;const o=null!=(t=null==(e=se.tableConfig)?void 0:e.height)?t:"100%";return{height:"auto"===o?"100%":w(o)&&(o.includes("calc")||o.endsWith("%"))?o:P(o)}})),pe=oe(),he=function(e,...t){ne(e,...t);const o=c(ke)[ae(e)];R(o)&&o(...t),pe.trigger(e,...t)};o(E,he);const ge=q(a((()=>se.requestInstance)),a((()=>!!se.uniqueCacheData))).create(se.parallelism,{beforeRequest:(e,t)=>t,afterRequest:(e,t)=>H(t)});o(W,ge);const be=U();o(N,a((()=>se.annotation)));const xe=_();o(V,xe);const ye=t();o(z,ye);const ke=t({uuid:null!=(re=null==(ie=se.tableConfig)?void 0:ie.uuid)?re:xe});o(G,ke);const $e=j(Ce,10);function Ce(){var e,t;ke.value=X(be,{...se.tableConfig,uuid:null!=(t=null==(e=se.tableConfig)?void 0:e.uuid)?t:xe},{$table:ye,emits:he,globProps:se,loading:de,$xeTable:ue})}const De=a((()=>{if(!ke.value.tableRowHeight)return{};const e=P(ke.value.rowConfig.height);return{Input:{heightLarge:e,heightMedium:e,heightSmall:e,heightTiny:e},InternalSelection:{heightLarge:e,heightMedium:e,heightSmall:e,heightTiny:e}}})),Te=t([]);o(J,Te);const je=j(we,10);function we(){const e=Y(be,se.fieldList,ke.value,{$table:ye,emits:he,loading:de,globProps:se,$xeTable:ue});I(e,l(Te.value),((e,t)=>{if(R(e)&&R(t))return e.toString()===t.toString()}))||(Te.value=e)}const Ie=te(be,ke,{$table:ye,emits:he,loading:de,globProps:se,$xeTable:ue});let Re=null;function Se(e){Re=e}async function qe(){await n(),null==Re||Re(),Re=null}const He=t([]);async function Le(){var e,t,o,a;const l=await Ie(se.tableData),i=null==(e=ye.value)?void 0:e.getTableData().fullData;if(i){let e=0;if(!(i.some((t=>{var o;if(!(null==(o=ye.value)?void 0:o.isInsertByRow(t))){if(t!==l[e])return!0;e++}}))||e!==l.length))return void qe()}He.value=l,(null==(t=ke.value.treeConfig)?void 0:t.expandAll)?(await n(),null==(o=ye.value)||o.setAllTreeExpand(!0)):null==(a=ye.value)||a.recalculate(!0),qe()}const Pe={updateTableDataRef:j(Le,10),updateConfigRef:$e,updateFieldListRef:je};o(K,Pe),o(Q,se);const _e=Z({hooks:be,config:ke,$table:ye,context:Pe,emits:he,globProps:se,loading:de,$xeTable:ue}),Ae=a((()=>({...ke.value,..._e})));let Be=!1,Fe=!1,Me=!1;const Oe=j((()=>{Be&&Ce(),Fe&&we(),Me&&Le(),Be=!1,Fe=!1,Me=!1}),10);i((()=>se.tableConfig),(()=>{Be=!0,Fe=!0,Me=!0,Oe()}),{deep:!0}),i((()=>se.fieldList),(()=>{Fe=!0,Me=!0,Oe()}),{deep:!0}),i([()=>[...se.tableData],()=>{var e;return null==(e=se.tableData)?void 0:e.length}],(()=>{Me=!0,Oe()})),Ce(),we(),Le();const{header:Ee,footer:We}=ee(be);function Ne(e){return S(e,["row","rowIndex","$rowIndex","column","columnIndex","$columnIndex","_columnIndex","checked","disabled","indeterminate"])}return F({$table:ye,async loadData(e){var t;null==(t=ye.value)||t.loadData(await Ie(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),tableDataResolved:()=>new Promise(Se),reload(){var e,t;null==(e=ye.value)||e.loadColumn([]),null==(t=ye.value)||t.loadData([]),Ce(),we(),Le()},verticalTable:{update:()=>{}},...be.exposeHooks.expose.call({},ke,{$table:ye,emits:he,globProps:se,loading:de,$xeTable:ue,...Pe})}),be.setupHooks.setup.call(ke,Te,{$table:ye,emits:he,globProps:se,loading:de,$xeTable:ue}),(e,t)=>{const o=r("vxe-grid");return s(),u("section",d({class:"iho-table",id:c(xe),style:c(me)},c(B)()),[(s(),f(m(c(Ee)))),v("section",{style:p(c(ve))},[h(c(A),{abstract:"",namespace:"vxe-table--ignore-clear","theme-overrides":c(De)},{default:g((()=>[h(o,d({ref_key:"$table",ref:ye},c(Ae),{columns:Te.value,data:He.value,loading:c(ce)}),b({_:2},[x(e.$slots,((t,o)=>({name:o,fn:g((t=>[y(" 实际上所有的vxe-grid插槽都支持 "),k(e.$slots,o,$(C(Ne(t))))]))})))]),1040,["columns","data","loading"])])),_:3},8,["theme-overrides"])],4),(s(),f(m(c(We))))],16,le)}}});export{ne as default};
@@ -85,7 +85,7 @@ export declare function createTableEventHandlers({ hooks, config, $table, emits,
85
85
  onActiveCellChangeEnd: import("vxe-table").VxeTableEvents.ActiveCellChangeEnd | undefined;
86
86
  onPageChange: unknown;
87
87
  };
88
- export declare function createDataTransfer(hooks: TableHooks, config: MaybeRef<IhoTableConfig>, $table: MaybeRef<Nullable<VxeTableInstance>>): (data: AnyObject[]) => Promise<AnyObject[]>;
88
+ export declare function createDataTransfer(hooks: TableHooks, config: MaybeRef<IhoTableConfig>, handler: MaybeRef<IhoTableHandlerContext>): (data: AnyObject[]) => Promise<AnyObject[]>;
89
89
  export declare function createDomInsertComponent(hooks: TableHooks): {
90
90
  header: any;
91
91
  footer: any;
@@ -1 +1 @@
1
- import{arrayed as e}from"../../../../../shared/utils/index.js";import{cloneDeep as o,isArray as t}from"lodash-es";import{unref as r,defineComponent as s}from"vue";import{VxeEventListenerNameList as n}from"../../constants/index.js";import{eventListener2EventName as i,eventName2EventListener as a}from"../../utils/index.js";import{useConfigHooks as l}from"./useConfigHooks.js";import{useDataHooks as f}from"./useDataHooks.js";import{useDomInsertHooks as c}from"./useDomInsertHooks.js";import{useEventHooks as d}from"./useEventHooks.js";import{useExposeHooks as u}from"./useExposeHooks.js";import{useFieldHooks as m}from"./useFieldHooks.js";import{useSetupHooks as p}from"./useSetupHooks.js";const k=(()=>{let e=null;return()=>e||(e=Object.freeze({configHooks:l().create(),fieldHooks:m().create(),eventHooks:d().create(),dataHooks:f().create(),setupHooks:p().create(),domInsertHooks:c().create(),exposeHooks:u().create()}))})();function H(e,t,r){const s=e.configHooks.config.call(o(t),r);return["rowConfig","editConfig","columnConfig","resizableConfig","seqConfig","sortConfig","filterConfig","radioConfig","checkboxConfig","expandConfig","treeConfig","mouseConfig","menuConfig","keyboardConfig","scrollY","scrollX","editRules"].forEach((o=>{s[o]=e.configHooks[o].call(s[o],s,r)})),s}function g(r,s,n,i){r.fieldHooks.fieldStart.promise(n,i);let a=function o(s){return s.reduce(((s,a,l)=>{const f=[],c=[];let d=!1;return a=r.fieldHooks.field.call(a,{index:l,remove(){d=!0},insertAfter(o){c.push(...e(o))},insertBefore(o){f.push(...e(o))}},n,i),s.push(...f),d||(s.push(a),t(a.children)&&(a.children=o(a.children))),s.push(...c),s}),[])}(o(s));return a=r.fieldHooks.fieldList.call(a,n,i),r.fieldHooks.fieldEnd.promise(n,i),a}function h({hooks:e,config:o,$table:t,emits:s,context:l,globProps:f,loading:c,$xeTable:d}){return n.reduce(((n,u)=>(n[u]=n=>function(n,u){var m;const p=i(n);if(!(u=e.eventHooks.beforeEvent.call(u,r(o),{$table:r(t),emits:s,globProps:f,loading:c,$xeTable:d,...l},p)))return;Reflect.get(u,"eventName")?(s(u.eventName,u),n=a(u.eventName)):s(p,u);null==(m=e.eventHooks[n])||m.promise(u,r(o),{$table:r(t),globProps:f,emits:s,loading:c,$xeTable:d,...l})}(u,n),n)),{})}function b(o,t,s){return async n=>{o.dataHooks.dataStart.promise(r(t));let i=await n.reduce((async(n,i,a)=>{const l=[],f=[];let c=!1;await o.dataHooks.data.promise(i,r(t),{index:a,$table:s,insertBefore(o){l.push(...e(o))},insertAfter(o){f.push(...e(o))},remove(){c=!0}});const d=await n;return d.push(...l),!c&&d.push(i),d.push(...f),d}),Promise.resolve([]));return i=o.dataHooks.dataList.call(i,r(t)),o.dataHooks.dataEnd.promise(r(t)),i}}function C(e){return{header:s({name:"IhoTableHeader",render:()=>e.domInsertHooks.header.call([])}),footer:s({name:"IhoTableFooter",render:()=>e.domInsertHooks.footer.call([])})}}export{H as applyTableConfigHooks,g as applyTableFieldHooks,b as createDataTransfer,C as createDomInsertComponent,h as createTableEventHandlers,k as createTableHooks};
1
+ import{arrayed as e}from"../../../../../shared/utils/index.js";import{cloneDeep as o,isArray as t}from"lodash-es";import{unref as r,defineComponent as s}from"vue";import{VxeEventListenerNameList as n}from"../../constants/index.js";import{eventListener2EventName as i,eventName2EventListener as a}from"../../utils/index.js";import{useConfigHooks as l}from"./useConfigHooks.js";import{useDataHooks as f}from"./useDataHooks.js";import{useDomInsertHooks as c}from"./useDomInsertHooks.js";import{useEventHooks as d}from"./useEventHooks.js";import{useExposeHooks as u}from"./useExposeHooks.js";import{useFieldHooks as m}from"./useFieldHooks.js";import{useSetupHooks as p}from"./useSetupHooks.js";const k=(()=>{let e=null;return()=>e||(e=Object.freeze({configHooks:l().create(),fieldHooks:m().create(),eventHooks:d().create(),dataHooks:f().create(),setupHooks:p().create(),domInsertHooks:c().create(),exposeHooks:u().create()}))})();function H(e,t,r){const s=e.configHooks.config.call(o(t),r);return["rowConfig","editConfig","columnConfig","resizableConfig","seqConfig","sortConfig","filterConfig","radioConfig","checkboxConfig","expandConfig","treeConfig","mouseConfig","menuConfig","keyboardConfig","scrollY","scrollX","editRules"].forEach((o=>{s[o]=e.configHooks[o].call(s[o],s,r)})),s}function g(r,s,n,i){r.fieldHooks.fieldStart.promise(n,i);let a=function o(s){return s.reduce(((s,a,l)=>{const f=[],c=[];let d=!1;return a=r.fieldHooks.field.call(a,{index:l,remove(){d=!0},insertAfter(o){c.push(...e(o))},insertBefore(o){f.push(...e(o))}},n,i),s.push(...f),d||(s.push(a),t(a.children)&&(a.children=o(a.children))),s.push(...c),s}),[])}(o(s));return a=r.fieldHooks.fieldList.call(a,n,i),r.fieldHooks.fieldEnd.promise(n,i),a}function h({hooks:e,config:o,$table:t,emits:s,context:l,globProps:f,loading:c,$xeTable:d}){return n.reduce(((n,u)=>(n[u]=n=>function(n,u){var m;const p=i(n);if(!(u=e.eventHooks.beforeEvent.call(u,r(o),{$table:r(t),emits:s,globProps:f,loading:c,$xeTable:d,...l},p)))return;Reflect.get(u,"eventName")?(s(u.eventName,u),n=a(u.eventName)):s(p,u);null==(m=e.eventHooks[n])||m.promise(u,r(o),{$table:r(t),globProps:f,emits:s,loading:c,$xeTable:d,...l})}(u,n),n)),{})}function b(o,t,s){return async n=>{o.dataHooks.dataStart.promise(r(s),r(t));let i=await n.reduce((async(n,i,a)=>{const l=[],f=[];let c=!1;await o.dataHooks.data.promise(i,r(t),{index:a,$table:r(s).$table,insertBefore(o){l.push(...e(o))},insertAfter(o){f.push(...e(o))},remove(){c=!0}});const d=await n;return d.push(...l),!c&&d.push(i),d.push(...f),d}),Promise.resolve([]));return i=o.dataHooks.dataList.call(i,r(t)),o.dataHooks.dataEnd.promise(r(s),r(t)),i}}function C(e){return{header:s({name:"IhoTableHeader",render:()=>e.domInsertHooks.header.call([])}),footer:s({name:"IhoTableFooter",render:()=>e.domInsertHooks.footer.call([])})}}export{H as applyTableConfigHooks,g as applyTableFieldHooks,b as createDataTransfer,C as createDomInsertComponent,h as createTableEventHandlers,k as createTableHooks};
@@ -1,8 +1,8 @@
1
1
  import { AnyObject } from '../../../../../shared/types';
2
2
  import { AsyncParallelHook, AsyncSeriesHook, SyncWaterfallHook } from '../../../../../shared/utils/tapable';
3
- import { AbstractDataHooks } from '../../../../../components/iho-table/src/types';
3
+ import { AbstractDataHooks, IhoTableHandlerContext } from '../../../../../components/iho-table/src/types';
4
4
  declare class TableDataHooks extends AbstractDataHooks {
5
- readonly dataStart: AsyncParallelHook<[import("../../../../../components/iho-table/src/types").IhoTableConfig], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
5
+ readonly dataStart: AsyncParallelHook<[IhoTableHandlerContext, import("../../../../../components/iho-table/src/types").IhoTableConfig], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
6
6
  readonly data: AsyncSeriesHook<[AnyObject, import("../../../../../components/iho-table/src/types").IhoTableConfig, {
7
7
  remove(): void;
8
8
  $table: import("@vueuse/shared").MaybeRef<import("../../../../../shared/types").Nullable<import("vxe-table").VxeTableInstance>>;
@@ -10,7 +10,7 @@ declare class TableDataHooks extends AbstractDataHooks {
10
10
  insertBefore(data: import("../../../../../shared/types").ArrayAble<AnyObject>): void;
11
11
  insertAfter(data: import("../../../../../shared/types").ArrayAble<AnyObject>): void;
12
12
  }], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
13
- readonly dataEnd: AsyncParallelHook<[import("../../../../../components/iho-table/src/types").IhoTableConfig], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
13
+ readonly dataEnd: AsyncParallelHook<[IhoTableHandlerContext, import("../../../../../components/iho-table/src/types").IhoTableConfig], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
14
14
  readonly dataList: SyncWaterfallHook<[AnyObject[], import("../../../../../components/iho-table/src/types").IhoTableConfig], import("../../../../../shared/utils/tapable").UnsetAdditionalOptions>;
15
15
  }
16
16
  export declare function useDataHooks(): {
@@ -1 +1 @@
1
- import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import t from"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import a from"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import s from"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import{AbstractDataHooks as o}from"../../types/pluginType.js";class e extends o{constructor(){super(...arguments),this.dataStart=new a(["config"]),this.data=new s(["rowData","context","config"]),this.dataEnd=new a(["config"]),this.dataList=new t(["dataList","config"])}}function r(){return{create:function(){return new e}}}export{r as useDataHooks};
1
+ import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import t from"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import a from"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import s from"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import{AbstractDataHooks as o}from"../../types/pluginType.js";class e extends o{constructor(){super(...arguments),this.dataStart=new a(["config","context"]),this.data=new s(["rowData","context","config"]),this.dataEnd=new a(["config","context"]),this.dataList=new t(["dataList","config"])}}function r(){return{create:function(){return new e}}}export{r as useDataHooks};
@@ -1 +1 @@
1
- import{createVNode as e}from"vue";import{jsonParse as l,arrayed as i}from"../../../../../shared/utils/index.js";import{isObject as t}from"@vue/shared";import{promiseTimeout as r}from"@vueuse/shared";import{isArray as o,isString as n,first as u,findLastIndex as d}from"lodash-es";import"../../../index.js";import{useUUIDMap as s,IhoTableRenderHelper as a,isCompatibleColumn as f,createIhoTableFilterMethod as v}from"../../utils/index.js";import c from"./filter.vue.js";import{defineTablePlugin as p}from"../../hooks/useTablePlugin.js";function m(){const m="filterRenderPlugin";return p({name:m,vxe(l){l.renderer.mixin({[m]:{showFilterFooter:!1,renderFilter:(l,i)=>e(c,{payload:i,key:i.column.field},null)}})},apply(e){const{getItemFromUUID:c,setItemFromUUID:p,removeItemFromUUID:g}=s((()=>[]),!1);e.fieldHooks.field.tap(m,((e,i,r,{$table:d})=>{var s,c,p,h,g,b,k,y,F,x;const R=null==(s=e.editRender)?void 0:s.props;if(!t(R))return e;if(!a.hasOptionFilter(R))return e;e.editRender={...e.editRender,props:{...null==(c=e.editRender)?void 0:c.props,sortable:e.sortable}},e.filterRender={name:m};const j=null==(p=d.value)?void 0:p.getColumnByField(e.field),C={};let O;if(j&&o(j.filters)&&j.filters.forEach((e=>{e&&(C[`${e.label}_${e.value}`]=e.checked)})),f(R))O=null!=(h=R.options)?h:[];else{const e=null==(b=null==(g=R.settingObj)?void 0:g.showSetting)?void 0:b.reduce(((e,l)=>{var i,t,r;return l&&l.change_text&&null!=(null==(t=null==(i=l.filter)?void 0:i[0])?void 0:t.value)&&e.push({label:l.change_text,value:l.filter[0].value,data:null!=(r=l.filter[0].keyword)?r:l.filter[0].value}),e}),[]);if(null==e?void 0:e.length)O=e;else{O=null!=(F=null==(y=null==(k=(t(R.fieldSetting)?R.fieldSetting:n(R.fieldSetting)?l(R.fieldSetting||""):{}).mapping)?void 0:k.mappingFiled)?void 0:y.reduce(((e,l)=>{var i;const r=u(l.value);return t(r)&&e.push({label:l.key||r.key,value:r.value,data:null!=(i=r.keyword)?i:r.value}),e}),[]))?F:[]}}if(e.filters=O.reduce(((e,l)=>(t(l)&&e.push({...l,checked:!!C[`${l.label}_${l.value}`]}),e)),[]),!e.filterMethod){const l=null==(x=r.treeConfig)?void 0:x.children;e.filterMethod=v(l)}return r.filterConfig={iconMatch:"iho-table--iconfont iho-table-icon-filter",iconNone:"iho-table--iconfont iho-table-icon-filter",...r.filterConfig},e})),e.fieldHooks.fieldList.tap(m,((e,l)=>l.uuid?(p(l.uuid,e),e):e)),e.fieldHooks.fieldEnd.tapPromise(m,(async(e,{$table:l})=>{var i;try{if(!l.value||!e.uuid)return;const t=c(e.uuid);if(null==(i=e.sortConfig)?void 0:i.multiple){const e=t.reduce(((e,i)=>{var t;const r=null==(t=i.editRender)?void 0:t.props;if(!i.sortable)return e;if(r&&h(r.isOrder)){const t=l.value.getColumnByField(i.field);e.push({field:i.field,order:(null==t?void 0:t.order)?t.order:r.isOrder})}return e}),[]);if(!e.length)return;await r(200),await l.value.sort(e)}else d(t,(e=>{var i;const t=null==(i=e.editRender)?void 0:i.props;if(t&&h(t.isOrder))return e&&l.value.sort(e.field,t.isOrder),!0}))}finally{e.uuid&&g(e.uuid)}})),e.exposeHooks.expose.tap(m,((e,l,{$table:t})=>(Object.assign(e,{setSort(e,l){t.value&&t.value.sort(e,l)},setFilter(e,l){if(!t.value)return;const r=t.value.getColumnByField(e);if(!r||!o(r.filters))return;const n=i(l);r.filters.forEach((e=>{e.checked=n.includes(e.value)})),t.value.updateData()}}),e)))}})}function h(e){return["asc","desc",null].includes(e)}export{m as filterRenderPlugin};
1
+ import{createVNode as e,onBeforeUnmount as l}from"vue";import{jsonParse as t,arrayed as i}from"../../../../../shared/utils/index.js";import{isObject as r}from"@vue/shared";import{isArray as o,isString as n,first as u,findLastIndex as d}from"lodash-es";import"../../../index.js";import{useUUIDMap as a,IhoTableRenderHelper as s,isCompatibleColumn as f,createIhoTableFilterMethod as v}from"../../utils/index.js";import c from"./filter.vue.js";import{defineTablePlugin as p}from"../../hooks/useTablePlugin.js";function m(){const m="filterRenderPlugin";return p({name:m,vxe(l){l.renderer.mixin({[m]:{showFilterFooter:!1,renderFilter:(l,t)=>e(c,{payload:t,key:t.column.field},null)}})},apply(e){const{getItemFromUUID:c,setItemFromUUID:p,removeItemFromUUID:g}=a((()=>[]),!1);e.fieldHooks.field.tap(m,((e,l,i,{$table:d})=>{var a,c,p,h,g,b,k,F,x,y;const O=null==(a=e.editRender)?void 0:a.props;if(!r(O))return e;if(!s.hasOptionFilter(O))return e;e.editRender={...e.editRender,props:{...null==(c=e.editRender)?void 0:c.props,sortable:e.sortable}},e.filterRender={name:m};const R=null==(p=d.value)?void 0:p.getColumnByField(e.field),$={};let j;if(R&&o(R.filters)&&R.filters.forEach((e=>{e&&($[`${e.label}_${e.value}`]=e.checked)})),f(O))j=null!=(h=O.options)?h:[];else{const e=null==(b=null==(g=O.settingObj)?void 0:g.showSetting)?void 0:b.reduce(((e,l)=>{var t,i,r;return l&&l.change_text&&null!=(null==(i=null==(t=l.filter)?void 0:t[0])?void 0:i.value)&&e.push({label:l.change_text,value:l.filter[0].value,data:null!=(r=l.filter[0].keyword)?r:l.filter[0].value}),e}),[]);if(null==e?void 0:e.length)j=e;else{j=null!=(x=null==(F=null==(k=(r(O.fieldSetting)?O.fieldSetting:n(O.fieldSetting)?t(O.fieldSetting||""):{}).mapping)?void 0:k.mappingFiled)?void 0:F.reduce(((e,l)=>{var t;const i=u(l.value);return r(i)&&e.push({label:l.key||i.key,value:i.value,data:null!=(t=i.keyword)?t:i.value}),e}),[]))?x:[]}}if(e.filters=j.reduce(((e,l)=>(r(l)&&e.push({...l,checked:!!$[`${l.label}_${l.value}`]}),e)),[]),!e.filterMethod){const l=null==(y=i.treeConfig)?void 0:y.children;e.filterMethod=v(l)}return i.filterConfig={iconMatch:"iho-table--iconfont iho-table-icon-filter",iconNone:"iho-table--iconfont iho-table-icon-filter",...i.filterConfig},e})),e.fieldHooks.fieldList.tap(m,((e,l)=>l.uuid?(p(l.uuid,e),e):e)),e.dataHooks.dataEnd.tapPromise(m,(async({$xeTable:e,$table:l},t)=>{var i;if(!l.value||!t.uuid)return;const r=c(t.uuid);if(null==(i=t.sortConfig)?void 0:i.multiple){const e=r.reduce(((e,t)=>{var i;const r=null==(i=t.editRender)?void 0:i.props;if(!t.sortable)return e;if(r&&h(r.isOrder)){const i=l.value.getColumnByField(t.field);(null==i?void 0:i.order)!==r.isOrder&&e.push({field:t.field,order:(null==i?void 0:i.order)?i.order:r.isOrder})}return e}),[]);if(!e.length)return;await l.value.sort(e)}else d(r,(e=>{var t;const i=null==(t=e.editRender)?void 0:t.props;if(i&&h(i.isOrder))return e&&l.value.sort(e.field,i.isOrder),!0}))})),e.setupHooks.setup.tap(m,((e,t)=>{l((()=>{e.value.uuid&&g(e.value.uuid)}))})),e.exposeHooks.expose.tap(m,((e,l,{$table:t})=>(Object.assign(e,{setSort(e,l){t.value&&t.value.sort(e,l)},setFilter(e,l){if(!t.value)return;const r=t.value.getColumnByField(e);if(!r||!o(r.filters))return;const n=i(l);r.filters.forEach((e=>{e.checked=n.includes(e.value)})),t.value.updateData()}}),e)))}})}function h(e){return["asc","desc",null].includes(e)}export{m as filterRenderPlugin};
@@ -1 +1 @@
1
- import{traverse as o,hex2rgba as r}from"../../../../shared/utils/index.js";import{isFunction as t}from"lodash-es";import"../../index.js";import{useUUIDMap as e,mergeVxeClass as i}from"../utils/index.js";import{defineTablePlugin as n}from"../hooks/useTablePlugin.js";function s(){const s="highLightSetPlugin",{getItemFromUUID:u,removeItemFromUUID:l,setItemFromUUID:a}=e((()=>!1));return n({name:s,apply(e){e.dataHooks.data.tapPromise(s,(async(r,t)=>{if(!t.uuid||u(t.uuid))return;let e=!1;o(r,((o,r)=>{(o.rowColor||o.fontColor)&&(e=!0,r())}),["children","childrenList"]),e&&a(t.uuid,!0)})),e.dataHooks.dataEnd.tap(s,(o=>{if(!o.uuid||!u(o.uuid))return;const e=o.rowStyle;o.rowStyle=function(o){if(o.row.rowColor||o.row.fontColor){const[i,n,s,u]=r(o.row.rowColor||"",.2),l={"--row-background-color":`rgba(${i}, ${n}, ${s}, ${u})`,color:o.row.fontColor};return t(e)?Object.assign(l,e(o)):l}return t(e)?e(o):null};const n=o.rowClassName;o.rowClassName=i((o=>o.row.rowColor?"row--custom":null),n),l(o.uuid)}))}})}export{s as highLightSetPlugin};
1
+ import{traverse as o,hex2rgba as r}from"../../../../shared/utils/index.js";import{isFunction as t}from"lodash-es";import"../../index.js";import{useUUIDMap as e,mergeVxeClass as i}from"../utils/index.js";import{defineTablePlugin as n}from"../hooks/useTablePlugin.js";function s(){const s="highLightSetPlugin",{getItemFromUUID:u,removeItemFromUUID:l,setItemFromUUID:a}=e((()=>!1));return n({name:s,apply(e){e.dataHooks.data.tapPromise(s,(async(r,t)=>{if(!t.uuid||u(t.uuid))return;let e=!1;o(r,((o,r)=>{(o.rowColor||o.fontColor)&&(e=!0,r())}),["children","childrenList"]),e&&a(t.uuid,!0)})),e.dataHooks.dataEnd.tap(s,((o,e)=>{if(!e.uuid||!u(e.uuid))return;const n=e.rowStyle;e.rowStyle=function(o){if(o.row.rowColor||o.row.fontColor){const[e,i,s,u]=r(o.row.rowColor||"",.2),l={"--row-background-color":`rgba(${e}, ${i}, ${s}, ${u})`,color:o.row.fontColor};return t(n)?Object.assign(l,n(o)):l}return t(n)?n(o):null};const s=e.rowClassName;e.rowClassName=i((o=>o.row.rowColor?"row--custom":null),s),l(e.uuid)}))}})}export{s as highLightSetPlugin};
@@ -1 +1 @@
1
- import{onBeforeUnmount as e,createVNode as l,defineComponent as t,inject as i,computed as r,watch as d,onMounted as o}from"vue";import{traverse as u}from"../../../../shared/utils/index.js";import{promiseTimeout as n}from"@vueuse/shared";import{last as a,first as s}from"lodash-es";import"../../index.js";import{LOWEST_PRIORITY as f,InjectionIhoTableConfig as h,InjectionIhoTableXeInstance as c}from"../constants/index.js";import{useUUIDMap as v,mergeVxeStyle as g,mergeVxeClass as m}from"../utils/index.js";import{defineTablePlugin as x}from"../hooks/useTablePlugin.js";function p(){const p="stickyFixedPlugin";return x({name:p,apply(x){const{getItemFromUUID:y,removeItemFromUUID:b}=v((()=>({$xeTable:null,left:[],noFixed:[],right:[]}))),{getItemFromUUID:B,removeItemFromUUID:L}=v((()=>({tableBody:null,tableHeader:null,leftBorderLeftEle:null,leftBorderTopEle:null,leftShadowEle:null,rightBorderLeftEle:null,rightBorderTopEle:null})),!1);function E(e){const l=B(e),{leftShadowEle:t,rightBorderLeftEle:i,tableBody:r}=l;r&&(t&&(r.scrollLeft>0?t.classList.add("scrolling--middle"):null==t||t.classList.remove("scrolling--middle")),i&&(Math.ceil(r.scrollLeft)<r.scrollWidth-r.clientWidth?i.classList.add("scrolling--middle"):null==i||i.classList.remove("scrolling--middle")))}function F(e){const l=B(e),{tableBody:t,leftBorderLeftEle:i,leftShadowEle:r,leftBorderTopEle:d,rightBorderTopEle:o,rightBorderLeftEle:u,tableHeader:n}=l;if(!t||!n)return;const{$xeTable:f,left:h,right:c}=y(e);if(i&&d&&r)if(f){const e=h.map((e=>f.getColumnByField(e.field))).reduce(((e,l)=>e+((null==l?void 0:l.resizeWidth)||(null==l?void 0:l.renderWidth)||40)),0);r.style.left=e-4+"px",d.style.width=e-1+"px"}else{const e=a(null==n?void 0:n.querySelectorAll("th.iho-table--fixed-left"));e&&(r.style.left=e.offsetLeft+e.clientWidth-4+"px",d.style.width=e.offsetLeft+e.clientWidth-1+"px")}if(o&&u){const e=t.scrollHeight>t.clientHeight;if(f){const l=c.map((e=>f.getColumnByField(e.field))).reduce(((e,l)=>e+((null==l?void 0:l.resizeWidth)||(null==l?void 0:l.renderWidth)||40)),0);u.style.right=l-3+(e?10:0)+"px",o.style.width=l+(e?10:0)+"px",e&&o.style.setProperty("--c-header-height",n.clientHeight-2+"px")}else{const l=s(null==n?void 0:n.querySelectorAll("th.iho-table--fixed-right"));l&&(u.style.right=10+t.clientWidth-l.offsetLeft-(e?0:10)+"px",o.style.width=t.clientWidth-l.offsetLeft+(e?10:0)+"px",e&&o.style.setProperty("--c-header-height",n.clientHeight-2+"px"))}}}x.configHooks.config.tap(p,((e,{$table:l})=>{var t;if(!(null==(t=e.stickyFixedConfig)?void 0:t.enable)||!e.uuid)return e;const i=e=>{if(!l.value)return{left:0,right:0};return{left:l.value.getColumns().slice(0,e).reduce(((e,l)=>e+(l.resizeWidth||l.renderWidth)),0),right:l.value.getColumns().slice(e+1).reduce(((e,l)=>e+(l.resizeWidth||l.renderWidth)),0)}},r=y(e.uuid);function d(e){return r.left.some((l=>l.field===e.field))||r.right.some((l=>l.field===e.field))}return e.cellStyle=g((({_columnIndex:e,column:l})=>{if(d(l))return{"--iho-table-fixed-left":i(e).left,"--iho-table-fixed-right":i(e).right}}),e.cellStyle),e.headerCellStyle=g((({_columnIndex:e,column:l})=>{if(d(l))return{"--iho-table-fixed-left":i(e).left,"--iho-table-fixed-right":i(e).right}}),e.headerCellStyle),e})),x.fieldHooks.fieldList.tap({name:p,stage:f},((e,l)=>{var t;if(!(null==(t=l.stickyFixedConfig)?void 0:t.enable)||!l.uuid)return e;const i=y(l.uuid);return i.left=[],i.noFixed=[],i.right=[],u(e,(e=>{e.fixed?(i[e.fixed].push(e),e.className=m(e.className,`iho-table--fixed-${e.fixed}`),e.headerClassName=m(e.headerClassName,`iho-table--fixed-${e.fixed}`)):i.noFixed.push(e),e.fixed=void 0})),[...i.left||[],...i.noFixed||[],...i.right||[]]})),x.setupHooks.setup.tap(p,(l=>{e((()=>{var e;(null==(e=l.value)?void 0:e.uuid)&&(L(l.value.uuid),b(l.value.uuid))}))})),x.dataHooks.dataEnd.tap(p,(async e=>{var l;(null==(l=e.stickyFixedConfig)?void 0:l.enable)&&e.uuid&&(await n(100),F(e.uuid))})),x.eventHooks.onScroll.tap(p,(({isX:e},l)=>{var t;e&&(null==(t=l.stickyFixedConfig)?void 0:t.enable)&&l.uuid&&E(l.uuid)})),x.eventHooks.onResizableChange.tap(p,((e,l)=>{var t;(null==(t=l.stickyFixedConfig)?void 0:t.enable)&&l.uuid&&E(l.uuid)}));const k=t({setup(){const e=i(h),t=i(c),u=r((()=>{const l=y(e.value.uuid);return!(!l.left||!l.left.length)})),a=r((()=>{const l=y(e.value.uuid);return!(!l.right||!l.right.length)})),s=l=>{B(e.value.uuid).leftBorderLeftEle=l},f=l=>{B(e.value.uuid).leftBorderTopEle=l},v=l=>{B(e.value.uuid).leftShadowEle=l},g=l=>{B(e.value.uuid).rightBorderLeftEle=l},m=l=>{B(e.value.uuid).rightBorderTopEle=l};function x(){if(y(e.value.uuid).$xeTable=t.value,!t.value||!e.value.uuid)return;const{refTableBody:l,refTableHeader:i}=t.value.getRefMaps();if(!l.value)return;const r=B(e.value.uuid);r.tableBody=l.value.$el,r.tableHeader=i.value.$el,E(e.value.uuid),F(e.value.uuid)}return d([()=>y(e.value.uuid).left,()=>y(e.value.uuid).right],x),o((async()=>{await n(100),x()})),()=>[u.value?[l("div",{class:"iho-table__fixedLeftBorderLeft",ref:s},null),l("div",{class:"iho-table__fixedLeftBorderTop",ref:f},null),l("div",{class:"iho-table__fixedLeftShadow",ref:v},null)]:null,a.value?[l("div",{class:"iho-table__fixedRightBorderLeft",ref:g},null),l("div",{class:"iho-table__fixedRightBorderTop",ref:m},null)]:null]}}),C=t({setup(){const e=i(h);return()=>{var t,i;return(null==(i=null==(t=e.value)?void 0:t.stickyFixedConfig)?void 0:i.enable)?l(k,null,null):null}}});x.domInsertHooks.header.tap(p,(e=>(e.push(l(C,null,null)),e)))}})}export{p as stickyFixedPlugin};
1
+ import{onBeforeUnmount as e,createVNode as l,defineComponent as t,inject as i,computed as r,watch as d,onMounted as o}from"vue";import{traverse as u}from"../../../../shared/utils/index.js";import{promiseTimeout as n}from"@vueuse/shared";import{last as a,first as s}from"lodash-es";import"../../index.js";import{LOWEST_PRIORITY as f,InjectionIhoTableConfig as h,InjectionIhoTableXeInstance as c}from"../constants/index.js";import{useUUIDMap as v,mergeVxeStyle as g,mergeVxeClass as m}from"../utils/index.js";import{defineTablePlugin as x}from"../hooks/useTablePlugin.js";function p(){const p="stickyFixedPlugin";return x({name:p,apply(x){const{getItemFromUUID:y,removeItemFromUUID:b}=v((()=>({$xeTable:null,left:[],noFixed:[],right:[]}))),{getItemFromUUID:B,removeItemFromUUID:L}=v((()=>({tableBody:null,tableHeader:null,leftBorderLeftEle:null,leftBorderTopEle:null,leftShadowEle:null,rightBorderLeftEle:null,rightBorderTopEle:null})),!1);function E(e){const l=B(e),{leftShadowEle:t,rightBorderLeftEle:i,tableBody:r}=l;r&&(t&&(r.scrollLeft>0?t.classList.add("scrolling--middle"):null==t||t.classList.remove("scrolling--middle")),i&&(Math.ceil(r.scrollLeft)<r.scrollWidth-r.clientWidth?i.classList.add("scrolling--middle"):null==i||i.classList.remove("scrolling--middle")))}function F(e){const l=B(e),{tableBody:t,leftBorderLeftEle:i,leftShadowEle:r,leftBorderTopEle:d,rightBorderTopEle:o,rightBorderLeftEle:u,tableHeader:n}=l;if(!t||!n)return;const{$xeTable:f,left:h,right:c}=y(e);if(i&&d&&r)if(f){const e=h.map((e=>f.getColumnByField(e.field))).reduce(((e,l)=>e+((null==l?void 0:l.resizeWidth)||(null==l?void 0:l.renderWidth)||40)),0);r.style.left=e-4+"px",d.style.width=e-1+"px"}else{const e=a(null==n?void 0:n.querySelectorAll("th.iho-table--fixed-left"));e&&(r.style.left=e.offsetLeft+e.clientWidth-4+"px",d.style.width=e.offsetLeft+e.clientWidth-1+"px")}if(o&&u){const e=t.scrollHeight>t.clientHeight;if(f){const l=c.map((e=>f.getColumnByField(e.field))).reduce(((e,l)=>e+((null==l?void 0:l.resizeWidth)||(null==l?void 0:l.renderWidth)||40)),0);u.style.right=l-3+(e?10:0)+"px",o.style.width=l+(e?10:0)+"px",e&&o.style.setProperty("--c-header-height",n.clientHeight-2+"px")}else{const l=s(null==n?void 0:n.querySelectorAll("th.iho-table--fixed-right"));l&&(u.style.right=10+t.clientWidth-l.offsetLeft-(e?0:10)+"px",o.style.width=t.clientWidth-l.offsetLeft+(e?10:0)+"px",e&&o.style.setProperty("--c-header-height",n.clientHeight-2+"px"))}}}x.configHooks.config.tap(p,((e,{$table:l})=>{var t;if(!(null==(t=e.stickyFixedConfig)?void 0:t.enable)||!e.uuid)return e;const i=e=>{if(!l.value)return{left:0,right:0};return{left:l.value.getColumns().slice(0,e).reduce(((e,l)=>e+(l.resizeWidth||l.renderWidth)),0),right:l.value.getColumns().slice(e+1).reduce(((e,l)=>e+(l.resizeWidth||l.renderWidth)),0)}},r=y(e.uuid);function d(e){return r.left.some((l=>l.field===e.field))||r.right.some((l=>l.field===e.field))}return e.cellStyle=g((({_columnIndex:e,column:l})=>{if(d(l))return{"--iho-table-fixed-left":i(e).left,"--iho-table-fixed-right":i(e).right}}),e.cellStyle),e.headerCellStyle=g((({_columnIndex:e,column:l})=>{if(d(l))return{"--iho-table-fixed-left":i(e).left,"--iho-table-fixed-right":i(e).right}}),e.headerCellStyle),e})),x.fieldHooks.fieldList.tap({name:p,stage:f},((e,l)=>{var t;if(!(null==(t=l.stickyFixedConfig)?void 0:t.enable)||!l.uuid)return e;const i=y(l.uuid);return i.left=[],i.noFixed=[],i.right=[],u(e,(e=>{e.fixed?(i[e.fixed].push(e),e.className=m(e.className,`iho-table--fixed-${e.fixed}`),e.headerClassName=m(e.headerClassName,`iho-table--fixed-${e.fixed}`)):i.noFixed.push(e),e.fixed=void 0})),[...i.left||[],...i.noFixed||[],...i.right||[]]})),x.setupHooks.setup.tap(p,(l=>{e((()=>{var e;(null==(e=l.value)?void 0:e.uuid)&&(L(l.value.uuid),b(l.value.uuid))}))})),x.dataHooks.dataEnd.tap(p,(async(e,l)=>{var t;(null==(t=l.stickyFixedConfig)?void 0:t.enable)&&l.uuid&&(await n(100),F(l.uuid))})),x.eventHooks.onScroll.tap(p,(({isX:e},l)=>{var t;e&&(null==(t=l.stickyFixedConfig)?void 0:t.enable)&&l.uuid&&E(l.uuid)})),x.eventHooks.onResizableChange.tap(p,((e,l)=>{var t;(null==(t=l.stickyFixedConfig)?void 0:t.enable)&&l.uuid&&E(l.uuid)}));const k=t({setup(){const e=i(h),t=i(c),u=r((()=>{const l=y(e.value.uuid);return!(!l.left||!l.left.length)})),a=r((()=>{const l=y(e.value.uuid);return!(!l.right||!l.right.length)})),s=l=>{B(e.value.uuid).leftBorderLeftEle=l},f=l=>{B(e.value.uuid).leftBorderTopEle=l},v=l=>{B(e.value.uuid).leftShadowEle=l},g=l=>{B(e.value.uuid).rightBorderLeftEle=l},m=l=>{B(e.value.uuid).rightBorderTopEle=l};function x(){if(y(e.value.uuid).$xeTable=t.value,!t.value||!e.value.uuid)return;const{refTableBody:l,refTableHeader:i}=t.value.getRefMaps();if(!l.value)return;const r=B(e.value.uuid);r.tableBody=l.value.$el,r.tableHeader=i.value.$el,E(e.value.uuid),F(e.value.uuid)}return d([()=>y(e.value.uuid).left,()=>y(e.value.uuid).right],x),o((async()=>{await n(100),x()})),()=>[u.value?[l("div",{class:"iho-table__fixedLeftBorderLeft",ref:s},null),l("div",{class:"iho-table__fixedLeftBorderTop",ref:f},null),l("div",{class:"iho-table__fixedLeftShadow",ref:v},null)]:null,a.value?[l("div",{class:"iho-table__fixedRightBorderLeft",ref:g},null),l("div",{class:"iho-table__fixedRightBorderTop",ref:m},null)]:null]}}),C=t({setup(){const e=i(h);return()=>{var t,i;return(null==(i=null==(t=e.value)?void 0:t.stickyFixedConfig)?void 0:i.enable)?l(k,null,null):null}}});x.domInsertHooks.header.tap(p,(e=>(e.push(l(C,null,null)),e)))}})}export{p as stickyFixedPlugin};
@@ -1 +1 @@
1
- import{unref as e,onBeforeUnmount as t,shallowReactive as o,createVNode as l,defineComponent as n,inject as r,ref as a,computed as s,provide as i,watch as u,onMounted as c,h as d}from"vue";import{traverse as p,widthAppend as f}from"../../../../shared/utils/index.js";import{doAnimation as m}from"../../../../shared/utils/anime.js";import{useThrottleFn as h}from"@vueuse/core";import{promiseTimeout as g}from"@vueuse/shared";import{last as v,isFunction as x,isNumber as y}from"lodash-es";import"../../index.js";import{InjectionIhoTableUUID as b}from"../constants/index.js";import{useUUIDMap as I,isVariableHeightColumn as w}from"../utils/index.js";import{defineTablePlugin as T}from"../hooks/useTablePlugin.js";class D{constructor(){this.records={},this.maxRecords=o(new Map)}set(e,t,o){if(this.records[e]||(this.records[e]={}),this.records[e][t]===o)return;this.records[e][t]=o;const l=Math.max(...Object.values(this.records[e]),0);this.maxRecords.get(e)!==l&&this.maxRecords.set(e,l)}getMax(e){return this.maxRecords.get(e)||0}}const{getItemFromUUID:R,removeItemFromUUID:M}=I((()=>new D),!0),{getItemFromUUID:S,removeItemFromUUID:H,setItemFromUUID:U}=I((()=>null)),{getItemFromUUID:C,removeItemFromUUID:$,setItemFromUUID:k}=I((()=>{}));let F={};function j(t,o,{scrollTop:l=0}){var n,r;const{uuid:a,rowConfig:s={}}=o;if(!a)return;const i=R(a),{oSize:u=0,gt:c=100}=null!=(n=C(a))?n:{},{internalData:d,reactData:p}=t,{scrollYStore:f,elemStore:m,afterFullData:h,fullDataRowIdData:g}=d;if(c>h.length)return;const y=null!=(r=s.height)?r:36,b=m["main-body-wrapper"],I=b?e(b):null;let w=I?Math.max(8,Math.ceil(I.clientHeight/y)+2+u):8;const T=[0];let D=0;if(l&&h.find(((e,o)=>{const n=t.getRowSeq(e),r=(v(T)||0)+Math.max(y,i.getMax(n));if(T.push(r),r>l)return D=Math.max(0,o-u),w+=Math.min(D,u),!0})),D>0&&x(o.spanMethod)){const{spanMethod:e}=o,l={rowspan:1,colspan:1};for(;D>0;){if(!t.getColumns().some(((t,o)=>{const{rowspan:n,colspan:r}=e({column:t,columnIndex:o,$columnIndex:o,row:h[D],rowIndex:D,$rowIndex:D,_rowIndex:D,isHidden:!t.visible,fixed:t.fixed,type:t.type,visibleData:h})||l;if(0===n&&0===r)return D--,!0})))break}}const M=`${T[D]}px`,S=`${h.reduce(((e,o)=>{const l=t.getRowSeq(o);return e+Math.max(y,i.getMax(l))}),0)}px`;["main","left","right"].forEach((t=>{const o=m[`${t}-body-table`],n=o?e(o):null;n&&(n.style.marginTop=M,n.scrollTop=l),["header","body","footer"].forEach((o=>{const l=m[`${t}-${o}-ySpace`],n=l?e(l):null;n&&(n.style.height=S)}))}));const H=Math.min(h.length,D+w);if(f.startIndex===D&&f.endIndex===H)return;f.startIndex=D,f.endIndex=H;const U=h.slice(f.startIndex,f.endIndex);U.forEach(((e,o)=>{const l=t.getRowid(e),n=g[l];n&&(n.$index=o)})),p.tableData.length=0,p.tableData.push(...U)}const Y=h(j,300);function E(){const o="variableHeightRendererPlugin";return T({name:o,vxe(e){F=n({props:{payload:{type:Object,required:!0}},setup(t){const o=r(b),n=r("$xetable"),p=a(),m=R(o),h=s((()=>t.payload.row[t.payload.column.field]));function v(){const{row:e,column:o}=t.payload,l=n.getRowSeq(e);if(!m||null==l||!p.value)return;const r=p.value.clientHeight;m.set(l,o.field,r)}i("updateCellHeight",v),u([()=>t.payload.rowIndex,()=>t.payload.column.field,h,()=>t.payload.column.renderWidth],(async()=>{await g(0),v()})),c((()=>{n&&!S(o)&&U(o,n),v()}));const I=s((()=>{var o,l,n,r,a;const s=null!=(l=null==(o=t.payload.column.editRender)?void 0:o.props)?l:{},i=null!=(r=null==(n=s.slots)?void 0:n.default)?r:s.slotFn;if(x(i))return i;const u=null==(a=t.payload.column.editRender)?void 0:a.name;if(u){const o=e.renderer.get(u);if(null==o?void 0:o.renderCell)return()=>o.renderCell(t.payload.column.editRender,t.payload)}return()=>h.value})),w=s((()=>{if(t.payload.column.treeNode)return"";const e=t.payload.column.renderWidth;return y(e)&&e>0?f(e-20-2):""}));return()=>l("div",{ref:p,style:{padding:"7px 0",width:w.value,overflow:"hidden"}},[d(I.value,t.payload)])}})},apply(n){function r(t){const o=S(t.uuid);if(!o)return;t.scrollY={enabled:!1},o.reactData.scrollYLoad=!1;const l=function(t){const o=t.internalData.elemStore["main-body-wrapper"];return o?e(o):null}(o);l&&j(o,t,{scrollTop:l.scrollTop})}function a(e){if(!e.uuid)return;const t=C(e.uuid);t&&(e.scrollY=t),setTimeout((()=>r(e)),300)}function s(e){return l(F,{payload:e},null)}n.dataHooks.dataStart.tap(o,a),n.eventHooks.onFilterChange.tap(o,((e,t)=>a(t))),n.eventHooks.onSortChange.tap(o,((e,t)=>a(t))),n.eventHooks.onToggleTreeExpand.tap(o,((e,t)=>a(t))),n.eventHooks.onResizableChange.tap(o,(async({column:e},t)=>{e.editRender&&e.editRender.props&&w(e.editRender.props)&&a(t)})),n.eventHooks.onScroll.tap(o,h(((e,t)=>{if(e.isX)return;const{uuid:o}=t;if(!o)return;const l=S(o);l&&j(l,t,e)}),100,!0,!0)),n.fieldHooks.field.tap(o,(e=>{if(w(e)){e.slots={...e.slots,default:s};const t=e.className,o="variable-height";e.className=t?function(e){return x(t)?[t(e),o]:[t,o]}:o}return e})),n.fieldHooks.fieldList.tap(o,((t,o,{$table:l})=>(o.uuid&&p(t,((t,n)=>{var a,s;if(w(t)){const t=null!=(s=null==(a=o.rowConfig)?void 0:a.height)?s:36,i=R(o.uuid),u=o.cellStyle;if(o.cellStyle=function(e){const o={};if(l.value){const n=Math.max(t,i.getMax(l.value.getRowSeq(e.row)));o.height=`${n}px`}return Object.assign(o,u?x(u)?u(e):u:null)},o.sortableConfig&&o.sortableConfig.enable){const t=o.sortableConfig.onEnd;o.sortableConfig.onEnd=function(l){const n=S(o.uuid);if(n){const{internalData:{elemStore:t}}=n,l=t["main-table-body"];l&&e(l)&&j(n,o,{scrollTop:e(l).scrollTop})}x(t)&&t(l)}}o.scrollY={...o.scrollY,mode:"default"},o.onWheel=function(t){let o=null,l=0,n=!0;return function(r){if(!t.uuid)return;const a=S(t.uuid);if(!a)return;const{internalData:s}=a,{isHover:i}=t.rowConfig||{},{deltaX:u,deltaY:c}=r,{refTableLeftBody:d,refTableRightBody:p,refTableBody:f}=a.getRefMaps(),h=c,g=u,v=h<0,x=e(f),y=x?x.$el:null;if(!y)return;if(v?y.scrollTop<=0:y.scrollTop>=y.scrollHeight-y.clientHeight)return;const b=y.scrollTop+h,I=y.scrollLeft+g;if(b===s.lastScrollTop)return;r.preventDefault(),s.lastScrollTop=b,s.lastScrollLeft=I,s.lastScrollTime=Date.now(),i&&a.clearHoverRow();const w=d.value,T=p.value,D=w?w.$el:null,R=T?T.$el:null,M=Math.min(100,Math.abs(Math.floor(h/2)));n&&(l=y.scrollTop,n=!1),l+=M*(v?-1:1),o&&o(),o=m(y.scrollTop,l,400,(e=>{y.scrollTop=e,D&&(D.scrollTop=e),R&&(R.scrollTop=e)}),"easeOutCubic",(()=>{l=y.scrollTop,n=!0})),Y(a,t,y)}}(o),setTimeout((()=>{k(o.uuid,o.scrollY),r(o)}),300),n()}})),t))),n.setupHooks.setup.tap(o,(e=>{t((()=>{e.value.uuid&&(M(e.value.uuid),H(e.value.uuid),$(e.value.uuid))}))}))}})}export{E as variableHeightRendererPlugin};
1
+ import{unref as e,onBeforeUnmount as t,shallowReactive as o,createVNode as l,defineComponent as n,inject as r,ref as a,computed as s,provide as i,watch as u,onMounted as c,h as d}from"vue";import{traverse as p,widthAppend as f}from"../../../../shared/utils/index.js";import{doAnimation as m}from"../../../../shared/utils/anime.js";import{useThrottleFn as h}from"@vueuse/core";import{promiseTimeout as g}from"@vueuse/shared";import{last as v,isFunction as x,isNumber as y}from"lodash-es";import"../../index.js";import{InjectionIhoTableUUID as b}from"../constants/index.js";import{useUUIDMap as I,isVariableHeightColumn as w}from"../utils/index.js";import{defineTablePlugin as T}from"../hooks/useTablePlugin.js";class D{constructor(){this.records={},this.maxRecords=o(new Map)}set(e,t,o){if(this.records[e]||(this.records[e]={}),this.records[e][t]===o)return;this.records[e][t]=o;const l=Math.max(...Object.values(this.records[e]),0);this.maxRecords.get(e)!==l&&this.maxRecords.set(e,l)}getMax(e){return this.maxRecords.get(e)||0}}const{getItemFromUUID:R,removeItemFromUUID:M}=I((()=>new D),!0),{getItemFromUUID:S,removeItemFromUUID:H,setItemFromUUID:U}=I((()=>null)),{getItemFromUUID:C,removeItemFromUUID:$,setItemFromUUID:k}=I((()=>{}));let F={};function j(t,o,{scrollTop:l=0}){var n,r;const{uuid:a,rowConfig:s={}}=o;if(!a)return;const i=R(a),{oSize:u=0,gt:c=100}=null!=(n=C(a))?n:{},{internalData:d,reactData:p}=t,{scrollYStore:f,elemStore:m,afterFullData:h,fullDataRowIdData:g}=d;if(c>h.length)return;const y=null!=(r=s.height)?r:36,b=m["main-body-wrapper"],I=b?e(b):null;let w=I?Math.max(8,Math.ceil(I.clientHeight/y)+2+u):8;const T=[0];let D=0;if(l&&h.find(((e,o)=>{const n=t.getRowSeq(e),r=(v(T)||0)+Math.max(y,i.getMax(n));if(T.push(r),r>l)return D=Math.max(0,o-u),w+=Math.min(D,u),!0})),D>0&&x(o.spanMethod)){const{spanMethod:e}=o,l={rowspan:1,colspan:1};for(;D>0;){if(!t.getColumns().some(((t,o)=>{const{rowspan:n,colspan:r}=e({column:t,columnIndex:o,$columnIndex:o,row:h[D],rowIndex:D,$rowIndex:D,_rowIndex:D,isHidden:!t.visible,fixed:t.fixed,type:t.type,visibleData:h})||l;if(0===n&&0===r)return D--,!0})))break}}const M=`${T[D]}px`,S=`${h.reduce(((e,o)=>{const l=t.getRowSeq(o);return e+Math.max(y,i.getMax(l))}),0)}px`;["main","left","right"].forEach((t=>{const o=m[`${t}-body-table`],n=o?e(o):null;n&&(n.style.marginTop=M,n.scrollTop=l),["header","body","footer"].forEach((o=>{const l=m[`${t}-${o}-ySpace`],n=l?e(l):null;n&&(n.style.height=S)}))}));const H=Math.min(h.length,D+w);if(f.startIndex===D&&f.endIndex===H)return;f.startIndex=D,f.endIndex=H;const U=h.slice(f.startIndex,f.endIndex);U.forEach(((e,o)=>{const l=t.getRowid(e),n=g[l];n&&(n.$index=o)})),p.tableData.length=0,p.tableData.push(...U)}const Y=h(j,300);function E(){const o="variableHeightRendererPlugin";return T({name:o,vxe(e){F=n({props:{payload:{type:Object,required:!0}},setup(t){const o=r(b),n=r("$xetable"),p=a(),m=R(o),h=s((()=>t.payload.row[t.payload.column.field]));function v(){const{row:e,column:o}=t.payload,l=n.getRowSeq(e);if(!m||null==l||!p.value)return;const r=p.value.clientHeight;m.set(l,o.field,r)}i("updateCellHeight",v),u([()=>t.payload.rowIndex,()=>t.payload.column.field,h,()=>t.payload.column.renderWidth],(async()=>{await g(0),v()})),c((()=>{n&&!S(o)&&U(o,n),v()}));const I=s((()=>{var o,l,n,r,a;const s=null!=(l=null==(o=t.payload.column.editRender)?void 0:o.props)?l:{},i=null!=(r=null==(n=s.slots)?void 0:n.default)?r:s.slotFn;if(x(i))return i;const u=null==(a=t.payload.column.editRender)?void 0:a.name;if(u){const o=e.renderer.get(u);if(null==o?void 0:o.renderCell)return()=>o.renderCell(t.payload.column.editRender,t.payload)}return()=>h.value})),w=s((()=>{if(t.payload.column.treeNode)return"";const e=t.payload.column.renderWidth;return y(e)&&e>0?f(e-20-2):""}));return()=>l("div",{ref:p,style:{padding:"7px 0",width:w.value,overflow:"hidden"}},[d(I.value,t.payload)])}})},apply(n){function r(t){const o=S(t.uuid);if(!o)return;t.scrollY={enabled:!1},o.reactData.scrollYLoad=!1;const l=function(t){const o=t.internalData.elemStore["main-body-wrapper"];return o?e(o):null}(o);l&&j(o,t,{scrollTop:l.scrollTop})}function a(e){if(!e.uuid)return;const t=C(e.uuid);t&&(e.scrollY=t),setTimeout((()=>r(e)),300)}function s(e){return l(F,{payload:e},null)}n.dataHooks.dataStart.tap(o,((e,t)=>a(t))),n.eventHooks.onFilterChange.tap(o,((e,t)=>a(t))),n.eventHooks.onSortChange.tap(o,((e,t)=>a(t))),n.eventHooks.onToggleTreeExpand.tap(o,((e,t)=>a(t))),n.eventHooks.onResizableChange.tap(o,(async({column:e},t)=>{e.editRender&&e.editRender.props&&w(e.editRender.props)&&a(t)})),n.eventHooks.onScroll.tap(o,h(((e,t)=>{if(e.isX)return;const{uuid:o}=t;if(!o)return;const l=S(o);l&&j(l,t,e)}),100,!0,!0)),n.fieldHooks.field.tap(o,(e=>{if(w(e)){e.slots={...e.slots,default:s};const t=e.className,o="variable-height";e.className=t?function(e){return x(t)?[t(e),o]:[t,o]}:o}return e})),n.fieldHooks.fieldList.tap(o,((t,o,{$table:l})=>(o.uuid&&p(t,((t,n)=>{var a,s;if(w(t)){const t=null!=(s=null==(a=o.rowConfig)?void 0:a.height)?s:36,i=R(o.uuid),u=o.cellStyle;if(o.cellStyle=function(e){const o={};if(l.value){const n=Math.max(t,i.getMax(l.value.getRowSeq(e.row)));o.height=`${n}px`}return Object.assign(o,u?x(u)?u(e):u:null)},o.sortableConfig&&o.sortableConfig.enable){const t=o.sortableConfig.onEnd;o.sortableConfig.onEnd=function(l){const n=S(o.uuid);if(n){const{internalData:{elemStore:t}}=n,l=t["main-table-body"];l&&e(l)&&j(n,o,{scrollTop:e(l).scrollTop})}x(t)&&t(l)}}o.scrollY={...o.scrollY,mode:"default"},o.onWheel=function(t){let o=null,l=0,n=!0;return function(r){if(!t.uuid)return;const a=S(t.uuid);if(!a)return;const{internalData:s}=a,{isHover:i}=t.rowConfig||{},{deltaX:u,deltaY:c}=r,{refTableLeftBody:d,refTableRightBody:p,refTableBody:f}=a.getRefMaps(),h=c,g=u,v=h<0,x=e(f),y=x?x.$el:null;if(!y)return;if(v?y.scrollTop<=0:y.scrollTop>=y.scrollHeight-y.clientHeight)return;const b=y.scrollTop+h,I=y.scrollLeft+g;if(b===s.lastScrollTop)return;r.preventDefault(),s.lastScrollTop=b,s.lastScrollLeft=I,s.lastScrollTime=Date.now(),i&&a.clearHoverRow();const w=d.value,T=p.value,D=w?w.$el:null,R=T?T.$el:null,M=Math.min(100,Math.abs(Math.floor(h/2)));n&&(l=y.scrollTop,n=!1),l+=M*(v?-1:1),o&&o(),o=m(y.scrollTop,l,400,(e=>{y.scrollTop=e,D&&(D.scrollTop=e),R&&(R.scrollTop=e)}),"easeOutCubic",(()=>{l=y.scrollTop,n=!0})),Y(a,t,y)}}(o),setTimeout((()=>{k(o.uuid,o.scrollY),r(o)}),300),n()}})),t))),n.setupHooks.setup.tap(o,(e=>{t((()=>{e.value.uuid&&(M(e.value.uuid),H(e.value.uuid),$(e.value.uuid))}))}))}})}export{E as variableHeightRendererPlugin};
@@ -1 +1 @@
1
- import{traverse as e,findAncestor as n,getStringWidth as t}from"../../../../../../shared/utils/index.js";import{isString as r,isNumber as i,constant as o,isFunction as a,noop as l,range as d,property as u}from"lodash-es";import{IhoTableRenderHelper as c}from"../../../utils/index.js";import{VERTICAL_CELL_TYPE as f}from"./constants.js";function s(e){var n;return!!(null==(n=e.verticalConfig)?void 0:n.enable)}function p(e){return!!r(e)&&e.startsWith("header_")}function h(e){return!!r(e)&&e.startsWith("body_")}function _(e){var n;return r(e)?+(null!=(n=e.split("_")[1])?n:-1):-1}function m(n,t){const r=[];return e(n,((n,i,o)=>{n.parent=o,n.children||(!function(n,t){if(!n.parent)return n[`header_${t}`]=n.title,void d(t+1).forEach((e=>{n[`header_${e}_colspan`]=e===t?t+1:0,n[`header_${e}_rowspan`]=e===t?1:0}));let r=0,i=n;const o=[n];for(;i.parent;)r++,i=i.parent,o.unshift(i);d(t+1).forEach((i=>{var a,l;const d=o[i];if(!d)return n[`header_${i}`]="",n[`header_${i}_colspan`]=0,void(n[`header_${i}_rowspan`]=0);n[`header_${i}`]=null!=(l=null==(a=o[i])?void 0:a.title)?l:"",n[`header_${i}_colspan`]=i<r?1:t-r+1,n[`header_${i}_rowspan`]=function(n){if(!n.children)return 1;let t=0;return e(n.children,(e=>{e.children||t++})),t}(d)}))}(n,t),r.push(n))})),r.forEach(((e,n)=>{const i=r[n-1];i&&Object.entries(e).forEach((([n,r])=>{n.match(/^header_(\d+)$/)&&r===i[n]&&r&&n!==`header_${t}`&&(e[`${n}_colspan`]=0,e[`${n}_rowspan`]=0)}))})),r}const g=Object.freeze({rowspan:1,colspan:1});function x(e,n,t){var r,i;if(!p(e.column.field)){if(!n||!t)return g;const r=n(j(e,t));return r?{rowspan:r.colspan,colspan:r.rowspan}:g}return{rowspan:null!=(r=e.row[e.column.field+"_rowspan"])?r:1,colspan:null!=(i=e.row[e.column.field+"_colspan"])?i:1}}const w=({cell:e}={})=>{const n=e&&e.querySelector("input,.n-input__input-el,.n-input__textarea-el");return n&&n.click(),n};function $(n,r){let i=120;return e(r,((e,r,o,a)=>{a===n&&(i=Math.max(i,t(e.title||"")+20+(c.hasTitlePrefix(e)?20:0)))})),Math.ceil(i)}function v(e,n,t){const r=D(t);let u=r.getTableConfig("verticalConfig.headerWidth");u="auto"===u?$:i(u)?o(u):a(u)?u:$;let c=r.getTableConfig("verticalConfig.bodyWidth");c=i(c)?o(c):a(c)?c:l;let s=r.getTableConfig("verticalConfig.bodyMinWidth");return s=i(s)?o(s):a(s)?s:o(120),[...d(n+1).map((e=>({field:`header_${e}`,title:`header_${e}`,width:u(e,t.originalFieldList),fixed:"left",editRender:{name:f,props:{},enable:!1}}))),...e.map(((e,n)=>({field:`body_${n}`,title:`body_${n}`,minWidth:s(n),width:c(n),editRender:{name:f,props:{},enable:!0,autofocus:w}})))]}function b(e){const t=n(e.target,(e=>"TD"===e.tagName||"TH"===e.tagName));if(!t)return;const r=t.className.match(/(body|header)_(\d+)/);if(!r)return;const[i,o,a]=r;return{fieldKey:i,type:o,sequence:+a}}function y(e){return e.originalField}function I(e,n){var t;return null==(t=e.originalData)?void 0:t[n]}function C(e,n){const t=_(n.field),r=y(e);return{row:I(e,t),rowIndex:t,$rowIndex:t,column:r,fixed:r.fixed,type:r.type}}function T(n){const t=[];return e(n,(e=>{"left"===e.fixed&&t.push(e)})),t}function D(e){return{getOriginDataByColumn(n){var t;return null==(t=e.originalData)?void 0:t[_(n.field)]},getTableConfig:n=>u(n)(e.originalTableConfig)}}function W(e,n){return new Proxy({},{get(t,r){var i;if("originalField"===r)return e;if("originalData"===r)return a(n)?n():n;if(p(r))return e[r];if(h(r)){const t=_(r);return"seq"===e.type?t+1:null==(i=n[t])?void 0:i[e.field]}return t[r]},set(t,r,i){if(!p(r)){const t=_(r);t>=0&&n[t]&&(n[t][e.field]=i)}return!0}})}function j({$columnIndex:e,$rowIndex:n,column:t,columnIndex:r,row:i,rowIndex:o,type:a,_columnIndex:l,_rowIndex:d},u){var c;if(t){const f=a;if(a=p(t.field)?"header":"body",i){const s=_(t.field);t=y(i),i="header"===a?void 0:I(i,s),l=r=e="header"===f?n||0:((null==(c=u.fixedLeftVerticalData)?void 0:c.length)||0)+(n||0),d=o=n="header"===a?-1:s}}return{column:t,row:i,_columnIndex:l,_rowIndex:d,columnIndex:r,rowIndex:o,$columnIndex:e,$rowIndex:n,type:a}}w.toString=()=>"input,.n-input__input-el";export{j as basicParamsConvert,m as bindHeaderInfoAndFlatten,W as createDataProxy,v as createVerticalFieldList,D as createVerticalStateHandler,T as findFixedLeftFields,_ as getHeaderDepthByField,C as getOriginBasePayload,y as getOriginFieldFromRowData,I as getOriginRowFromRowData,x as getSpanInfo,b as getVerticalInfoFromEvent,h as isVerticalBody,p as isVerticalHeader,s as isVerticalTable};
1
+ import{traverse as e,findAncestor as n,getStringWidth as t}from"../../../../../../shared/utils/index.js";import{isString as r,isNumber as o,constant as i,isFunction as a,noop as l,range as d,property as u}from"lodash-es";import{IhoTableRenderHelper as c}from"../../../utils/index.js";import{VERTICAL_CELL_TYPE as f}from"./constants.js";function s(e){var n;return!!(null==(n=e.verticalConfig)?void 0:n.enable)}function p(e){return!!r(e)&&e.startsWith("header_")}function h(e){return!!r(e)&&e.startsWith("body_")}function _(e){var n;return r(e)?+(null!=(n=e.split("_")[1])?n:-1):-1}function m(n,t){const r=[];return e(n,((n,o,i)=>{n.parent=i,n.children||(!function(n,t){if(!n.parent)return n[`header_${t}`]=n.title,void d(t+1).forEach((e=>{n[`header_${e}_colspan`]=e===t?t+1:0,n[`header_${e}_rowspan`]=e===t?1:0}));let r=0,o=n;const i=[n];for(;o.parent;)r++,o=o.parent,i.unshift(o);d(t+1).forEach((o=>{var a,l;const d=i[o];if(!d)return n[`header_${o}`]="",n[`header_${o}_colspan`]=0,void(n[`header_${o}_rowspan`]=0);n[`header_${o}`]=null!=(l=null==(a=i[o])?void 0:a.title)?l:"",n[`header_${o}_colspan`]=o<r?1:t-r+1,n[`header_${o}_rowspan`]=function(n){if(!n.children)return 1;let t=0;return e(n.children,(e=>{e.children||t++})),t}(d)}))}(n,t),r.push(n))})),r.forEach(((e,n)=>{const o=r[n-1];o&&Object.entries(e).forEach((([n,r])=>{n.match(/^header_(\d+)$/)&&r===o[n]&&r&&n!==`header_${t}`&&(e[`${n}_colspan`]=0,e[`${n}_rowspan`]=0)}))})),r}const g=Object.freeze({rowspan:1,colspan:1});function w(e,n,t){var r,o;if(!p(e.column.field)){if(!n||!t)return g;const r=n(j(e,t));return r?{rowspan:r.colspan,colspan:r.rowspan}:g}return{rowspan:null!=(r=e.row[e.column.field+"_rowspan"])?r:1,colspan:null!=(o=e.row[e.column.field+"_colspan"])?o:1}}const x=({cell:e,row:n}={})=>{const t=e&&e.querySelector("input,.n-input__input-el,.n-input__textarea-el");if(t){const e=n?y(n):void 0;"INPUT"===(null==e?void 0:e.editRender.name)?t.focus():t.click()}return t};function v(n,r){let o=120;return e(r,((e,r,i,a)=>{a===n&&(o=Math.max(o,t(e.title||"")+20+(c.hasTitlePrefix(e)?20:0)))})),Math.ceil(o)}function $(e,n,t){const r=D(t);let u=r.getTableConfig("verticalConfig.headerWidth");u="auto"===u?v:o(u)?i(u):a(u)?u:v;let c=r.getTableConfig("verticalConfig.bodyWidth");c=o(c)?i(c):a(c)?c:l;let s=r.getTableConfig("verticalConfig.bodyMinWidth");return s=o(s)?i(s):a(s)?s:i(120),[...d(n+1).map((e=>({field:`header_${e}`,title:`header_${e}`,width:u(e,t.originalFieldList),fixed:"left",editRender:{name:f,props:{},enable:!1}}))),...e.map(((e,n)=>({field:`body_${n}`,title:`body_${n}`,minWidth:s(n),width:c(n),editRender:{name:f,props:{},enable:!0,autofocus:x}})))]}function b(e){const t=n(e.target,(e=>"TD"===e.tagName||"TH"===e.tagName));if(!t)return;const r=t.className.match(/(body|header)_(\d+)/);if(!r)return;const[o,i,a]=r;return{fieldKey:o,type:i,sequence:+a}}function y(e){return e.originalField}function I(e,n){var t;return null==(t=e.originalData)?void 0:t[n]}function C(e,n){const t=_(n.field),r=y(e);return{row:I(e,t),rowIndex:t,$rowIndex:t,column:r,fixed:r.fixed,type:r.type}}function T(n){const t=[];return e(n,(e=>{"left"===e.fixed&&t.push(e)})),t}function D(e){return{getOriginDataByColumn(n){var t;return null==(t=e.originalData)?void 0:t[_(n.field)]},getTableConfig:n=>u(n)(e.originalTableConfig)}}function W(e,n){return new Proxy({},{get(t,r){var o;if("originalField"===r)return e;if("originalData"===r)return a(n)?n():n;if(p(r))return e[r];if(h(r)){const t=_(r);return"seq"===e.type?t+1:null==(o=n[t])?void 0:o[e.field]}return t[r]},set(t,r,o){if(!p(r)){const t=_(r);t>=0&&n[t]&&(n[t][e.field]=o)}return!0}})}function j({$columnIndex:e,$rowIndex:n,column:t,columnIndex:r,row:o,rowIndex:i,type:a,_columnIndex:l,_rowIndex:d},u){var c;if(t){const f=a;if(a=p(t.field)?"header":"body",o){const s=_(t.field);t=y(o),o="header"===a?void 0:I(o,s),l=r=e="header"===f?n||0:((null==(c=u.fixedLeftVerticalData)?void 0:c.length)||0)+(n||0),d=i=n="header"===a?-1:s}}return{column:t,row:o,_columnIndex:l,_rowIndex:d,columnIndex:r,rowIndex:i,$columnIndex:e,$rowIndex:n,type:a}}x.toString=()=>"input,.n-input__input-el";export{j as basicParamsConvert,m as bindHeaderInfoAndFlatten,W as createDataProxy,$ as createVerticalFieldList,D as createVerticalStateHandler,T as findFixedLeftFields,_ as getHeaderDepthByField,C as getOriginBasePayload,y as getOriginFieldFromRowData,I as getOriginRowFromRowData,w as getSpanInfo,b as getVerticalInfoFromEvent,h as isVerticalBody,p as isVerticalHeader,s as isVerticalTable};
@@ -151,9 +151,9 @@ type DataHookContext = {
151
151
  };
152
152
  export type WithTableDataContext<T> = [...WithTableConfig<T>, DataHookContext];
153
153
  export declare abstract class AbstractDataHooks {
154
- abstract readonly dataStart: AsyncParallelHook<WithTableConfig>;
154
+ abstract readonly dataStart: AsyncParallelHook<WithTableConfig<IhoTableHandlerContext>>;
155
155
  abstract readonly data: AsyncSeriesHook<WithTableDataContext<[AnyObject]>>;
156
- abstract readonly dataEnd: AsyncParallelHook<WithTableConfig>;
156
+ abstract readonly dataEnd: AsyncParallelHook<WithTableConfig<IhoTableHandlerContext>>;
157
157
  abstract readonly dataList: SyncWaterfallHook<WithTableConfig<[AnyObject[]]>>;
158
158
  }
159
159
  export declare abstract class AbstractSetupHooks {