cnhis-design-vue 3.1.57 → 3.2.1-beta.4

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 (112) hide show
  1. package/es/components/calendar/index.d.ts +13 -12
  2. package/es/components/calendar/src/Calendar.vue.d.ts +13 -12
  3. package/es/components/calendar/src/Calendar.vue2.js +1 -1
  4. package/es/components/callback/src/components/render/popupMaps.d.ts +24 -0
  5. package/es/components/drag-scroll/index.d.ts +2 -0
  6. package/es/components/drag-scroll/index.js +1 -0
  7. package/es/components/drag-scroll/src/index.d.ts +4 -0
  8. package/es/components/drag-scroll/src/index.js +1 -0
  9. package/es/components/drag-scroll/src/types.d.ts +19 -0
  10. package/es/components/drag-scroll/src/types.js +1 -0
  11. package/es/components/fabric-chart/src/constants/index.d.ts +2 -1
  12. package/es/components/fabric-chart/src/constants/index.js +1 -1
  13. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogram.js +1 -1
  14. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogramChart.js +1 -1
  15. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useLeft.js +1 -1
  16. package/es/components/fabric-chart/src/hooks/temperature/useCenter.js +1 -1
  17. package/es/components/fabric-chart/src/interface.d.ts +1 -1
  18. package/es/components/field-set/index.d.ts +1 -1
  19. package/es/components/field-set/src/FieldColor.vue.d.ts +2 -1
  20. package/es/components/field-set/src/FieldSet.vue.d.ts +2 -1
  21. package/es/components/field-set/src/Index.vue.d.ts +1 -1
  22. package/es/components/field-set/src/Index.vue2.js +1 -1
  23. package/es/components/field-set/src/TableStyle.vue.d.ts +4896 -0
  24. package/es/components/field-set/src/TableStyle.vue.js +1 -0
  25. package/es/components/field-set/src/TableStyle.vue2.js +1 -0
  26. package/es/components/field-set/src/components/Row.vue.d.ts +2 -1
  27. package/es/components/field-set/src/components/Row.vue2.js +1 -1
  28. package/es/components/field-set/src/components/table-demo.vue.d.ts +4817 -0
  29. package/es/components/field-set/src/components/table-demo.vue.js +1 -0
  30. package/es/components/field-set/src/components/table-demo.vue2.js +1 -0
  31. package/es/components/field-set/src/types/index.d.ts +1 -1
  32. package/es/components/field-set/style/index.css +1 -1
  33. package/es/components/form-config/index.d.ts +34 -0
  34. package/es/components/form-config/src/FormConfig.vue.d.ts +34 -0
  35. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +14 -0
  36. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +17 -0
  37. package/es/components/form-render/index.d.ts +14 -0
  38. package/es/components/form-render/src/FormRender.vue.d.ts +14 -0
  39. package/es/components/form-render/src/FormRender.vue2.js +1 -1
  40. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +14 -0
  41. package/es/components/form-render/src/components/renderer/index.js +1 -1
  42. package/es/components/form-render/src/components/renderer/select.d.ts +2 -0
  43. package/es/components/form-render/src/components/renderer/select.js +1 -1
  44. package/es/components/form-render/src/components/renderer/simpleComponent.js +1 -1
  45. package/es/components/form-render/src/components/renderer/time.d.ts +7 -0
  46. package/es/components/form-render/src/components/renderer/time.js +1 -0
  47. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +1 -1
  48. package/es/components/form-render/src/hooks/useFieldNormalize.d.ts +6 -4
  49. package/es/components/form-render/src/hooks/useFieldNormalize.js +1 -1
  50. package/es/components/form-render/src/hooks/useFormRenderOptions.js +1 -1
  51. package/es/components/form-render/src/types/index.d.ts +1 -0
  52. package/es/components/form-render/src/utils/business.d.ts +1 -1
  53. package/es/components/form-render/src/utils/business.js +1 -1
  54. package/es/components/iho-table/index.d.ts +10 -0
  55. package/es/components/iho-table/src/IhoTable.vue.d.ts +10 -0
  56. package/es/components/iho-table/src/IhoTable.vue2.js +1 -1
  57. package/es/components/iho-table/src/hooks/tapHooks/index.d.ts +1 -5
  58. package/es/components/iho-table/src/hooks/tapHooks/index.js +1 -1
  59. package/es/components/iho-table/src/hooks/tapHooks/useDataHooks.d.ts +2 -1
  60. package/es/components/iho-table/src/hooks/tapHooks/useDataHooks.js +1 -1
  61. package/es/components/iho-table/src/plugins/dragScrollPlugin.js +1 -1
  62. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue.d.ts +1 -1
  63. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue2.js +1 -1
  64. package/es/components/iho-table/src/plugins/index.js +1 -1
  65. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/index.js +1 -1
  66. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/levelSearchCascadePlugin/index.js +1 -1
  67. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/numberRendererPlugin.js +1 -1
  68. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/index.js +1 -1
  69. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/index.js +1 -1
  70. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue.d.ts +15 -12
  71. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue2.js +1 -1
  72. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/index.js +1 -1
  73. package/es/components/iho-table/src/plugins/varialbleHeightPlugin.js +1 -1
  74. package/es/components/iho-table/src/plugins/verticalTablePlugin/constants.d.ts +1 -0
  75. package/es/components/iho-table/src/plugins/verticalTablePlugin/constants.js +1 -0
  76. package/es/components/iho-table/src/plugins/verticalTablePlugin/index.d.ts +1 -0
  77. package/es/components/iho-table/src/plugins/verticalTablePlugin/index.js +1 -0
  78. package/es/components/iho-table/src/plugins/verticalTablePlugin/renderer.d.ts +5 -0
  79. package/es/components/iho-table/src/plugins/verticalTablePlugin/renderer.js +1 -0
  80. package/es/components/iho-table/src/plugins/verticalTablePlugin/types.d.ts +12 -0
  81. package/es/components/iho-table/src/plugins/verticalTablePlugin/types.js +1 -0
  82. package/es/components/iho-table/src/plugins/verticalTablePlugin/utils.d.ts +14 -0
  83. package/es/components/iho-table/src/plugins/verticalTablePlugin/utils.js +1 -0
  84. package/es/components/iho-table/src/types/index.d.ts +8 -1
  85. package/es/components/iho-table/src/types/pluginType.d.ts +3 -1
  86. package/es/components/iho-table/src/utils/index.d.ts +4 -7
  87. package/es/components/iho-table/src/utils/index.js +1 -1
  88. package/es/components/index.css +1 -1
  89. package/es/components/index.d.ts +1 -0
  90. package/es/components/index.js +1 -1
  91. package/es/components/info-header/index.d.ts +33 -0
  92. package/es/components/info-header/src/InfoHeader.vue.d.ts +33 -0
  93. package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue.d.ts +1 -0
  94. package/es/components/info-header/src/components/infoDescription/DescriptionList.vue.d.ts +1 -0
  95. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +15 -0
  96. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +14 -0
  97. package/es/components/shortcut-setter/index.d.ts +14 -0
  98. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +14 -0
  99. package/es/components/steps-wheel/src/StepsWheel.vue2.js +1 -1
  100. package/es/components/table-export-field/src/components/ExportModal.vue.d.ts +0 -3
  101. package/es/components/table-export-field/src/components/ExportModal.vue2.js +1 -1
  102. package/es/components/table-export-field/style/index.css +1 -1
  103. package/es/components/table-export-field/style/table-export-field-iconfont.ttf +0 -0
  104. package/es/shared/components/InputNumberSlash/InputNumberSlash.js +1 -1
  105. package/es/shared/hooks/selectHooks/useOptionFiltered.d.ts +3 -1
  106. package/es/shared/hooks/selectHooks/useOptionFiltered.js +1 -1
  107. package/es/shared/hooks/selectHooks/useSearchContent.d.ts +1 -1
  108. package/es/shared/hooks/selectHooks/useSearchContent.js +1 -1
  109. package/es/shared/package.json.js +1 -1
  110. package/es/shared/utils/index.d.ts +2 -1
  111. package/es/shared/utils/index.js +1 -1
  112. package/package.json +2 -2
@@ -1 +1 @@
1
- import{createVNode as o,computed as e,mergeProps as r}from"vue";import{isString as n,isArray as t}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as l}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{getLowCodeFieldFromField as d,IhoTableRenderHelper as a,createIhoTableClearActivedInterceptor as s}from"../../../../utils/index.js";import u from"./levelSearchCascade.vue.js";import{defineTablePlugin as c}from"../../../../hooks/useTablePlugin.js";function m(){const m="levelSearchCascadePlugin";return c({name:m,vxe(i){i.renderer.add(l.LEVEL_SEARCH_CASCADE,{renderCell:(e,{column:r,row:l})=>{const i=l[r.field];return n(i)?a(i):t(i)?a(function(o){var e,n,t;const l=d(r);if(!l)return"";const i=(null==(n=null==(e=l.wordbook)?void 0:e.show_key)?void 0:n[0])||(null==(t=l.componentProps)?void 0:t.labelField)||"text";return o.reduce(((o,e,r)=>0===r?e[i]:o+" / "+e[i]),"")}(i)):"";function a(e){return o("span",{title:e,class:"iho-table__colorAndIcon"},[e])}},renderEdit:a.createRenderEdit((({fieldItem:n,row:t,column:l,emitFormClick:i,emitFormChangeWithParams:d,rowIndex:a,columnIndex:s})=>{const c=e({get:()=>t[l.field],set(o){const e=t[l.field];t[l.field]=o,d({oldValue:e})}});return[o(u,r({value:c.value,"onUpdate:value":o=>c.value=o,options:n.options,wordbook:n.wordbook,autograph:n.autograph,onClick:i},n.componentProps,{fieldKey:l.field,payload:{row:t,column:l,rowIndex:a,columnIndex:s}}),null)]}))}),i.interceptor.add("event.clearActived",s(l.LEVEL_SEARCH_CASCADE,(o=>o.classList.contains("search-cascader__menuWrapper"))))},apply(o){i(o).bindAutoFocusConfig(m,l.LEVEL_SEARCH_CASCADE,"input")}})}export{m as levelSearchCascadePlugin};
1
+ import{createVNode as o,computed as e,mergeProps as n}from"vue";import{isString as r,isArray as t}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as l}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{getLowCodeFieldFromField as d,IhoTableRenderHelper as u}from"../../../../utils/index.js";import s from"./levelSearchCascade.vue.js";import{defineTablePlugin as a}from"../../../../hooks/useTablePlugin.js";function c(){const c="levelSearchCascadePlugin";return a({name:c,vxe(i){i.renderer.add(l.LEVEL_SEARCH_CASCADE,{renderCell:(e,{column:n,row:l})=>{const i=l[n.field];return r(i)?u(i):t(i)?u(function(o){var e,r,t;const l=d(n);if(!l)return"";const i=(null==(r=null==(e=l.wordbook)?void 0:e.show_key)?void 0:r[0])||(null==(t=l.componentProps)?void 0:t.labelField)||"text";return o.reduce(((o,e,n)=>0===n?e[i]:o+" / "+e[i]),"")}(i)):"";function u(e){return o("span",{title:e,class:"iho-table__colorAndIcon"},[e])}},renderEdit:u.createRenderEdit((({fieldItem:r,row:t,column:l,emitFormClick:i,emitFormChangeWithParams:d,rowIndex:u,columnIndex:a})=>{const c=e({get:()=>t[l.field],set(o){const e=t[l.field];t[l.field]=o,d({oldValue:e})}});return[o(s,n({value:c.value,"onUpdate:value":o=>c.value=o,options:r.options,wordbook:r.wordbook,autograph:r.autograph,onClick:i},r.componentProps,{fieldKey:l.field,payload:{row:t,column:l,rowIndex:u,columnIndex:a}}),null)]}))})},apply(o){i(o).bindAutoFocusConfig(c,l.LEVEL_SEARCH_CASCADE,"input")}})}export{c as levelSearchCascadePlugin};
@@ -1 +1 @@
1
- import{createVNode as e,mergeProps as o,defineComponent as l,computed as t}from"vue";import n from"../../../../../../shared/components/InputNumberSlash/InputNumberSlash.js";import{isNumber as r}from"lodash-es";import{NInputNumber as a}from"naive-ui";import"../../../../index.js";import{EDITABLE_WIDGET_TYPE as u}from"../../../constants/index.js";import{useAutoFocus as i}from"./hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as s,IhoTableRenderHelper as p}from"../../../utils/index.js";import{defineTablePlugin as m}from"../../../hooks/useTablePlugin.js";const c=l({name:"IhoTableInputNumber",props:{value:[String,Number]},emits:["update:value"],setup(o,{emit:l}){const n=t({get:()=>r(o.value)?o.value:o.value&&r(+o.value)?+o.value:null,set(e){l("update:value",e)}});return()=>e(a,{value:n.value,"onUpdate:value":e=>n.value=e},null)}});function d(){const l="numberRendererPlugin";return m({name:l,vxe(l){l.interceptor.add("event.clearActived",s(u.NUMBER,(e=>e.classList.contains("iho-table_numberInputSlashPopper")))),l.renderer.add(u.NUMBER,{renderCell:p.createDefaultRenderCell(),renderEdit:p.createRenderEdit((({row:l,column:t,fieldItem:r,emitFormClick:a,emitFormChangeWithParams:u,$table:i})=>{var s;const{placeholder:p="请输入"}=r.componentProps||{};function m(e){const o=l[t.field];l[t.field]=e,u({oldValue:o})}const d={clearable:!0,placeholder:p,onBlur:()=>u({type:"blur",oldValue:l[t.field]}),onClick:a};return!0===r.allowSlash||"1"===r.allowSlash?e(n,o({value:l[t.field],onChange:m,onSelect:function(){i.internalData.isActivated=!0}},d,{whiteList:r.whiteList},r.componentProps,{popperProps:{...null==(s=r.componentProps)?void 0:s.popperProps,class:"iho-table_numberInputSlashPopper"}}),null):e(c,o({value:l[t.field],"onUpdate:value":m},d,r.componentProps),null)}))})},apply(e){i(e).bindAutoFocusConfig(l,u.NUMBER,".n-input__input-el",{focusType:"class"})}})}export{d as numberRendererPlugin};
1
+ import{createVNode as e,mergeProps as o,defineComponent as l,computed as n}from"vue";import t from"../../../../../../shared/components/InputNumberSlash/InputNumberSlash.js";import{isNumber as r}from"lodash-es";import{NInputNumber as u}from"naive-ui";import"../../../../index.js";import{EDITABLE_WIDGET_TYPE as a}from"../../../constants/index.js";import{useAutoFocus as i}from"./hooks/useAutoFocus.js";import{IhoTableRenderHelper as s}from"../../../utils/index.js";import{defineTablePlugin as p}from"../../../hooks/useTablePlugin.js";const m=l({name:"IhoTableInputNumber",props:{value:[String,Number]},emits:["update:value"],setup(o,{emit:l}){const t=n({get:()=>r(o.value)?o.value:o.value&&r(+o.value)?+o.value:null,set(e){l("update:value",e)}});return()=>e(u,{value:t.value,"onUpdate:value":e=>t.value=e},null)}});function d(){const l="numberRendererPlugin";return p({name:l,vxe(l){l.renderer.add(a.NUMBER,{renderCell:s.createDefaultRenderCell(),renderEdit:s.createRenderEdit((({row:l,column:n,fieldItem:r,emitFormClick:u,emitFormChangeWithParams:a,$table:i})=>{var s;const{placeholder:p="请输入"}=r.componentProps||{};function d(e){const o=l[n.field];l[n.field]=e,a({oldValue:o})}const c={clearable:!0,placeholder:p,onBlur:()=>a({type:"blur",oldValue:l[n.field]}),onClick:u};return!0===r.allowSlash||"1"===r.allowSlash?e(t,o({value:l[n.field],onChange:d,onSelect:function(){i.internalData.isActivated=!0}},c,{whiteList:r.whiteList},r.componentProps,{popperProps:{...null==(s=r.componentProps)?void 0:s.popperProps,class:"iho-table_numberInputSlashPopper"}}),null):e(m,o({value:l[n.field],"onUpdate:value":d},c,r.componentProps),null)}))})},apply(e){i(e).bindAutoFocusConfig(l,a.NUMBER,".n-input__input-el",{focusType:"class"})}})}export{d as numberRendererPlugin};
@@ -1 +1 @@
1
- import{reactive as e,inject as o,createVNode as t,mergeProps as n,onBeforeUnmount as l}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as r,InjectionIhoTableUUID as s}from"../../../../constants/index.js";import{useAutoFocus as u}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as d,getTitle as a,IhoTableRenderHelper as c,IhoTableUtils as p}from"../../../../utils/index.js";import f from"./editSelect.js";import{getDefaultValue as m,isConnectField as v,getArray as w}from"./selectUtils.js";import{getSelectOptions as h,selectOptionsMap as b}from"../hooks/useSelectOption.js";import{cloneDeep as g,isFunction as y,isEqual as C}from"lodash-es";import{defineTablePlugin as E}from"../../../../hooks/useTablePlugin.js";function x(){const x="selectRendererPlugin",k=e(new Map);function j(e){return!0===e||"1"===e}return E({name:x,vxe(e){e.interceptor.add("event.clearActived",d(r.SELECT,(e=>e.classList.contains("iho-table__selectMenu")))),e.renderer.add(r.SELECT,{renderCell({props:e},{row:n,column:l,$table:r}){var u;const d=o(s),c=h(d,l.field,n,r),p=m(n,e,c),f=i(p).join(","),v=e&&(j(e.variableHeight)||(null==(u=e.componentProps)?void 0:u.indexedText));return[t("span",{title:a(l,f),class:"iho-table__colorAndIcon"},[v?i(p).reduce(((e,o)=>(null!=o&&e.push([o,";",t("br",null,null)]),e)),[]):f])]},renderEdit:c.createRenderEdit((({fieldItem:e,emitFormClick:l,row:i,column:r,$rowIndex:u,$table:d})=>{var a,c,p,m;const v=o(s),w=h(v,r.field,i,d),b=j(null!=(c=null==(a=e.componentProps)?void 0:a.allowModify)?c:e.allowModify),g=j(null!=(m=null==(p=e.componentProps)?void 0:p.allowCreate)?m:e.allowCreate)||b;return[t(f,n({queryOptions:e.queryOptions},e.componentProps,{options:w,column:r,row:i,"row-index":u,value:i[r.field],"onUpdate:value":e=>i[r.field]=e,allowModify:b,allowCreate:g,onClick:l}),null)]}))})},apply(e){async function o(e,o={}){var t,n,l;const i=null==(t=e.editRender)?void 0:t.props;if(!i)return[];let r=w(i.options)||w(null==(n=i.componentProps)?void 0:n.options)||[];if(i.queryOptions)try{const t={column:e,isFullData:!0,...o};r=await(null==(l=i.queryOptions)?void 0:l.call(i,t))}catch(e){console.log(`获取${i.field}_options错误`)}return r}function t(e){return e&&p.getCellType(e)===r.SELECT}u(e).bindAutoFocusConfig(x,r.SELECT,".n-base-selection-input,.n-base-selection-tags"),e.fieldHooks.fieldList.tap(x,((e,{uuid:n})=>{if(n){b.get(n)||b.set(n,{}),k.set(n,g(e));const l=b.get(n);e.forEach((async n=>{var i;const r=null==(i=n.editRender)?void 0:i.props;if(n.field&&r&&t(r)&&!v(e,n.field)){if(y(r.queryOptions)&&l[n.field])return;l[n.field]=[],l[n.field]=await o(n)}}))}return e})),e.dataHooks.data.tap(x,((e,{uuid:n},l)=>{if(!n)return;const i=k.get(n);if(!i||!i.length)return;const r=b.get(n);i.forEach((async n=>{var l;const s=null==(l=n.editRender)?void 0:l.props;if(n.field&&s&&t(s)&&(null==s?void 0:s.connectField)){const t=s.connectField.split(","),l=e[s.columnName];t.forEach((async t=>{const u=null==i?void 0:i.find((e=>e.field===t));if(!u)return;const d=l?`${t}__${s.columnName}-${l}`:t;r[d]||(r[d]=[],r[d]=await o(u,{row:e,connectColumn:n}))}))}}))})),e.setupHooks.setup.tap(x,(e=>{l((()=>{var o;const t=null==(o=e.value)?void 0:o.uuid;t&&(b.delete(t),k.delete(t))}))})),e.eventHooks.onCellDblclick.tap(x,(({$table:e},o,{emits:n})=>{var l;const{column:i,row:r}=e.reactData.editStore.actived;if(!i||!r)return;const s=null==(l=i.editRender)?void 0:l.props,{cellDblclickSelectable:u=!1,multiple:d=!1,valueField:a="value"}=s.componentProps||{};if(!u||!t(s))return;const c=o.uuid&&h(o.uuid,i.field,r,e);if(1!==(null==c?void 0:c.length))return;const p=d?[c[0][a]]:c[0][a],f=r[i.field];e.clearEdit(),C(p,f)||(r[i.field]=p,n("formChange",{column:i,row:r,oldValue:f,value:p,index:e.getRowIndex(r),$table:e,option:c[0]}))}))}})}export{x as selectRendererPlugin};
1
+ import{reactive as e,inject as o,createVNode as n,mergeProps as t,onBeforeUnmount as l}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as r,InjectionIhoTableUUID as s}from"../../../../constants/index.js";import{useAutoFocus as u}from"../hooks/useAutoFocus.js";import{getTitle as d,IhoTableRenderHelper as a,IhoTableUtils as c}from"../../../../utils/index.js";import p from"./editSelect.js";import{getDefaultValue as f,isConnectField as m,getArray as v}from"./selectUtils.js";import{getSelectOptions as w,selectOptionsMap as g}from"../hooks/useSelectOption.js";import{cloneDeep as h,isFunction as y,isEqual as b}from"lodash-es";import{defineTablePlugin as C}from"../../../../hooks/useTablePlugin.js";function x(){const x="selectRendererPlugin",E=e(new Map);function k(e){return!0===e||"1"===e}return C({name:x,vxe(e){e.renderer.add(r.SELECT,{renderCell({props:e},{row:t,column:l,$table:r}){var u;const a=o(s),c=w(a,l.field,t,r),p=f(t,e,c),m=i(p).join(","),v=e&&(k(e.variableHeight)||(null==(u=e.componentProps)?void 0:u.indexedText));return[n("span",{title:d(l,m),class:"iho-table__colorAndIcon"},[v?i(p).reduce(((e,o)=>(null!=o&&e.push([o,";",n("br",null,null)]),e)),[]):m])]},renderEdit:a.createRenderEdit((({fieldItem:e,emitFormClick:l,row:i,column:r,$rowIndex:u,$table:d})=>{var a,c,f,m;const v=o(s),g=w(v,r.field,i,d),h=k(null!=(c=null==(a=e.componentProps)?void 0:a.allowModify)?c:e.allowModify),y=k(null!=(m=null==(f=e.componentProps)?void 0:f.allowCreate)?m:e.allowCreate)||h;return[n(p,t({queryOptions:e.queryOptions},e.componentProps,{options:g,column:r,row:i,"row-index":u,value:i[r.field],"onUpdate:value":e=>i[r.field]=e,allowModify:h,allowCreate:y,onClick:l}),null)]}))})},apply(e){async function o(e,o={}){var n,t,l;const i=null==(n=e.editRender)?void 0:n.props;if(!i)return[];let r=v(i.options)||v(null==(t=i.componentProps)?void 0:t.options)||[];if(i.queryOptions)try{const n={column:e,isFullData:!0,...o};r=await(null==(l=i.queryOptions)?void 0:l.call(i,n))}catch(e){console.log(`获取${i.field}_options错误`)}return r}function n(e){return e&&c.getCellType(e)===r.SELECT}u(e).bindAutoFocusConfig(x,r.SELECT,".n-base-selection-input,.n-base-selection-tags"),e.fieldHooks.fieldList.tap(x,((e,{uuid:t})=>{if(t){g.get(t)||g.set(t,{}),E.set(t,h(e));const l=g.get(t);e.forEach((async t=>{var i;const r=null==(i=t.editRender)?void 0:i.props;if(t.field&&r&&n(r)&&!m(e,t.field)){if(y(r.queryOptions)&&l[t.field])return;l[t.field]=[],l[t.field]=await o(t)}}))}return e})),e.dataHooks.data.tap(x,((e,{uuid:t},l)=>{if(!t)return;const i=E.get(t);if(!i||!i.length)return;const r=g.get(t);i.forEach((async t=>{var l;const s=null==(l=t.editRender)?void 0:l.props;if(t.field&&s&&n(s)&&(null==s?void 0:s.connectField)){const n=s.connectField.split(","),l=e[s.columnName];n.forEach((async n=>{const u=null==i?void 0:i.find((e=>e.field===n));if(!u)return;const d=l?`${n}__${s.columnName}-${l}`:n;r[d]||(r[d]=[],r[d]=await o(u,{row:e,connectColumn:t}))}))}}))})),e.setupHooks.setup.tap(x,(e=>{l((()=>{var o;const n=null==(o=e.value)?void 0:o.uuid;n&&(g.delete(n),E.delete(n))}))})),e.eventHooks.onCellDblclick.tap(x,(({$table:e},o,{emits:t})=>{var l;const{column:i,row:r}=e.reactData.editStore.actived;if(!i||!r)return;const s=null==(l=i.editRender)?void 0:l.props,{cellDblclickSelectable:u=!1,multiple:d=!1,valueField:a="value"}=s.componentProps||{};if(!u||!n(s))return;const c=o.uuid&&w(o.uuid,i.field,r,e);if(1!==(null==c?void 0:c.length))return;const p=d?[c[0][a]]:c[0][a],f=r[i.field];e.clearEdit(),b(p,f)||(r[i.field]=p,t("formChange",{column:i,row:r,oldValue:f,value:p,index:e.getRowIndex(r),$table:e,option:c[0]}))}))}})}export{x as selectRendererPlugin};
@@ -1 +1 @@
1
- import{reactive as e,inject as t,createVNode as a,toRaw as o,h as r,onBeforeUnmount as n}from"vue";import{traverse as i,arrayed as u}from"../../../../../../../shared/utils/index.js";import{isFunction as l,isObject as s,isArray as d,compact as p,range as c,uniq as f,flatten as _}from"lodash-es";import{NInput as m}from"naive-ui";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as E,InjectionIhoTableUUID as A,InjectionIhoTableHandler as h}from"../../../../constants/index.js";import{useAutoFocus as v}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as R,getLowCodeFieldFromField as g,IhoTableRenderHelper as T,getRowHeight as D,getColumnRenderWidth as w,parseMergeField as b}from"../../../../utils/index.js";import P from"./editSeparate.vue.js";import{contentSeparate as $,getLengthDiffArray as x,getColumnInfoMaxLength as C,generateSeparateRowData as S,isSeparateColumn as k}from"./separateUtils.js";import{getSeparateInfo as H,setSeparateInfo as j,deleteSeparateInfo as M}from"../../../../utils/separateMap.js";import{defineTablePlugin as O}from"../../../../hooks/useTablePlugin.js";function F(){const F="separateRendererPlugins",I=e(new Map);return O({name:F,vxe(e){e.interceptor.add("event.clearActived",R(E.SEPARATE,(e=>e.classList.contains("v-binder-follower-content")))),e.renderer.add(E.SEPARATE,{renderCell(e,{column:o,row:r}){var n,i;const u=t(A),l=null!=(i=null==(n=H(u,r))?void 0:n.separateData)?i:{},s=g(o),d=(null==s?void 0:s.separateFormatter)?s.separateFormatter(l[o.field]):l[o.field];return a("section",{class:"iho-table__ellipsis iho-table__colorAndIcon",title:d},[d])},renderEdit:T.createRenderEdit((({fieldItem:e,column:n,row:i,emitFormClick:u})=>{var d,p;const c=t(A),f=H(c,i),_=D(),E={};let v=null!=(p=null==(d=e.componentProps)?void 0:d.separateSlot)?p:e.separateSlot;return v&&(v=o(v),E.menu=l(v)?v:s(v)?e=>r(v,e):void 0),e.separateRowEdit?function(){if(!f)return[];if(f.ihoTableHandler=t(h),f.separateData["__"+n.field]=f.separateData["__"+n.field]||f.separateData[n.field],E.menu){const e=E.menu;return a(e,{column:n,col:n,row:i,value:f.separateData["__"+n.field],"onUpdate:value":e=>f.separateData["__"+n.field]=e},null)}return a(m,{value:f.separateData["__"+n.field],"onUpdate:value":e=>f.separateData["__"+n.field]=e},null)}():function(){var t;const o=null==(t=null==f?void 0:f.separateData)?void 0:t[n.field],r=l(e.separateFormatter)?e.separateFormatter(o):o;return[a(P,{value:i[n.field],"onUpdate:value":e=>i[n.field]=e,"row-index":null==f?void 0:f.index,height:_,column:n,row:i,"display-content":r,onClick:u},E)]}()}))})},apply(e){function t(e){return(...t)=>{var a;return!(null==(a=t[0].row)?void 0:a.$__SEPARATE)&&(!l(e)||e(...t))}}v(e).bindAutoFocusConfig(F,E.SEPARATE,".iho-table__separateText"),e.eventHooks.onEditClosed.tap(F,(({row:e,column:t,$table:a},o,{emits:r})=>{if(!e.$__uuid)return;const n=g(t);if(!n||!n.separateRowEdit)return;const i=H(e.$__uuid,e);if(!i)return;const{separateData:u,originalData:l,ihoTableHandler:s,index:p}=i,{field:c}=t;if(u["__"+c]&&u["__"+c]!==u[c]&&d(l.$__SEPARATE_DATA)){const e=l.$__SEPARATE_DATA.map((e=>{var t;return null!=(t=e["__"+c])?t:e[c]})),o=l[c];l[c]=d(l[c])?e:e.join(""),r("formChange",{value:l[c],oldValue:o,row:l,column:t,index:p,$table:a}),null==s||s.updateTableDataRef()}})),e.fieldHooks.fieldList.tap(F,((e,{uuid:t})=>(t&&I.set(t,e.reduce(((e,t)=>(i(t,(t=>{k(t)&&(e.push(o(t)),t.showOverflow="ellipsis")})),e)),[])),e))),e.dataHooks.data.tapPromise(F,(async(e,t,{insertAfter:a,index:o,$table:r})=>{var n;if(!t.uuid)return;const i=I.get(t.uuid);if(!i||!i.length)return;const l=[];for(const t of i){if(!t.field)continue;const a=await w(t,e,o,r),i={field:t.field,column:t,data:$(b(e,t),t,a,null==(n=g(t))?void 0:n.separateDeep)};l.push(i)}function s(e){return l.find((t=>t.field===e))}l.forEach((e=>{const{column:t}=e,a=g(t);if(!a)return;if(!a.separateDeep||!a.separateBinder)return;const o=p(u(a.separateBinder).map(s));if(!o.length)return;const r=o.concat(e),n=Math.max(...r.map((e=>e.data.length)));c(n).forEach((e=>{const t=r.map((t=>({item:t.data[e],data:t.data}))),a=t.map((({item:e})=>n(e)));if(1===f(a).length)return;const o=Math.max(...a);function n(e){return d(e)?e.length:1}t.forEach((({item:t,data:a})=>{const r=n(t);r!==o&&(d(t)?t.push(...x(o,r)):a[e]=c(o).map(((e,a)=>0===a?t:"")))}))}))})),l.forEach((e=>{e.data=_(e.data)})),c(C(l)).forEach(((r,n,i)=>{var u;const s=S(l,n),d={index:o,originalData:e,separateData:s,separateIndex:n,separateLength:i.length,isOriginRow:0===n,isLastRow:n===i.length-1};if(0===n)return e.$__SEPARATE_DATA=[s],e.$__SEPARATE_ROW_CACHE=e.$__SEPARATE_ROW_CACHE||[],e.$__uuid=t.uuid,void j(t.uuid,e,d);const p=null!=(u=e.$__SEPARATE_ROW_CACHE[n-1])?u:e.$__SEPARATE_ROW_CACHE[n-1]={$__SEPARATE:!0,$__uuid:t.uuid,$__SEPARATE_INDEX:n};p.$__ORIGIN_INDEX=o,j(t.uuid,p,d),e.$__SEPARATE_DATA.push(s),a(p)}))})),e.eventHooks.onResizableChange.tap(F,(async(e,t,a)=>{a.updateTableDataRef()})),e.configHooks.editConfig.tap(F,((e={},t)=>{const a=e.beforeEditMethod;return e.beforeEditMethod=(...e)=>{var o;if(!t.uuid)return c();const r=I.get(t.uuid);if(!r||!r.length)return c();const{row:n,column:i}=e[0],u=H(t.uuid,n);if(!u)return c();const s=null==(o=i.editRender)?void 0:o.props;if(!s||s.separateRowEdit)return c();const{isOriginRow:d,isLastRow:p}=u;return("bottom"===s.separatePlacement?p:d)&&c();function c(){return!l(a)||a(...e)}},e})),e.configHooks.checkboxConfig.tap(F,((e={},a)=>(e.checkMethod=t(e.checkMethod),e.visibleMethod=t(e.visibleMethod),e))),e.setupHooks.setup.tap(F,(e=>{n((()=>{e.value.uuid&&(I.delete(e.value.uuid),M(e.value.uuid))}))}))}})}export{F as separateRendererPlugins};
1
+ import{reactive as e,inject as t,createVNode as a,toRaw as o,h as r,onBeforeUnmount as n}from"vue";import{traverse as i,arrayed as u}from"../../../../../../../shared/utils/index.js";import{isFunction as l,isObject as s,isArray as d,compact as p,range as f,uniq as c,flatten as _}from"lodash-es";import{NInput as m}from"naive-ui";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as E,InjectionIhoTableUUID as h,InjectionIhoTableHandler as A}from"../../../../constants/index.js";import{useAutoFocus as v}from"../hooks/useAutoFocus.js";import{getLowCodeFieldFromField as R,IhoTableRenderHelper as g,getRowHeight as D,getColumnRenderWidth as T,parseMergeField as w}from"../../../../utils/index.js";import b from"./editSeparate.vue.js";import{contentSeparate as $,getLengthDiffArray as P,getColumnInfoMaxLength as x,generateSeparateRowData as C,isSeparateColumn as S}from"./separateUtils.js";import{getSeparateInfo as k,setSeparateInfo as H,deleteSeparateInfo as j}from"../../../../utils/separateMap.js";import{defineTablePlugin as M}from"../../../../hooks/useTablePlugin.js";function O(){const O="separateRendererPlugins",F=e(new Map);return M({name:O,vxe(e){e.renderer.add(E.SEPARATE,{renderCell(e,{column:o,row:r}){var n,i;const u=t(h),l=null!=(i=null==(n=k(u,r))?void 0:n.separateData)?i:{},s=R(o),d=(null==s?void 0:s.separateFormatter)?s.separateFormatter(l[o.field]):l[o.field];return a("section",{class:"iho-table__ellipsis iho-table__colorAndIcon",title:d},[d])},renderEdit:g.createRenderEdit((({fieldItem:e,column:n,row:i,emitFormClick:u})=>{var d,p;const f=t(h),c=k(f,i),_=D(),E={};let v=null!=(p=null==(d=e.componentProps)?void 0:d.separateSlot)?p:e.separateSlot;return v&&(v=o(v),E.menu=l(v)?v:s(v)?e=>r(v,e):void 0),e.separateRowEdit?function(){if(!c)return[];if(c.ihoTableHandler=t(A),c.separateData["__"+n.field]=c.separateData["__"+n.field]||c.separateData[n.field],E.menu){const e=E.menu;return a(e,{column:n,col:n,row:i,value:c.separateData["__"+n.field],"onUpdate:value":e=>c.separateData["__"+n.field]=e},null)}return a(m,{value:c.separateData["__"+n.field],"onUpdate:value":e=>c.separateData["__"+n.field]=e},null)}():function(){var t;const o=null==(t=null==c?void 0:c.separateData)?void 0:t[n.field],r=l(e.separateFormatter)?e.separateFormatter(o):o;return[a(b,{value:i[n.field],"onUpdate:value":e=>i[n.field]=e,"row-index":null==c?void 0:c.index,height:_,column:n,row:i,"display-content":r,onClick:u},E)]}()}))})},apply(e){function t(e){return(...t)=>{var a;return!(null==(a=t[0].row)?void 0:a.$__SEPARATE)&&(!l(e)||e(...t))}}v(e).bindAutoFocusConfig(O,E.SEPARATE,".iho-table__separateText"),e.eventHooks.onEditClosed.tap(O,(({row:e,column:t,$table:a},o,{emits:r})=>{if(!e.$__uuid)return;const n=R(t);if(!n||!n.separateRowEdit)return;const i=k(e.$__uuid,e);if(!i)return;const{separateData:u,originalData:l,ihoTableHandler:s,index:p}=i,{field:f}=t;if(u["__"+f]&&u["__"+f]!==u[f]&&d(l.$__SEPARATE_DATA)){const e=l.$__SEPARATE_DATA.map((e=>{var t;return null!=(t=e["__"+f])?t:e[f]})),o=l[f];l[f]=d(l[f])?e:e.join(""),r("formChange",{value:l[f],oldValue:o,row:l,column:t,index:p,$table:a}),null==s||s.updateTableDataRef()}})),e.fieldHooks.fieldList.tap(O,((e,{uuid:t})=>(t&&F.set(t,e.reduce(((e,t)=>(i(t,(t=>{S(t)&&(e.push(o(t)),t.showOverflow="ellipsis")})),e)),[])),e))),e.dataHooks.data.tapPromise(O,(async(e,t,{insertAfter:a,index:o,$table:r})=>{var n;if(!t.uuid)return;const i=F.get(t.uuid);if(!i||!i.length)return;const l=[];for(const t of i){if(!t.field)continue;const a=await T(t,e,o,r),i={field:t.field,column:t,data:$(w(e,t),t,a,null==(n=R(t))?void 0:n.separateDeep)};l.push(i)}function s(e){return l.find((t=>t.field===e))}l.forEach((e=>{const{column:t}=e,a=R(t);if(!a)return;if(!a.separateDeep||!a.separateBinder)return;const o=p(u(a.separateBinder).map(s));if(!o.length)return;const r=o.concat(e),n=Math.max(...r.map((e=>e.data.length)));f(n).forEach((e=>{const t=r.map((t=>({item:t.data[e],data:t.data}))),a=t.map((({item:e})=>n(e)));if(1===c(a).length)return;const o=Math.max(...a);function n(e){return d(e)?e.length:1}t.forEach((({item:t,data:a})=>{const r=n(t);r!==o&&(d(t)?t.push(...P(o,r)):a[e]=f(o).map(((e,a)=>0===a?t:"")))}))}))})),l.forEach((e=>{e.data=_(e.data)})),f(x(l)).forEach(((r,n,i)=>{var u;const s=C(l,n),d={index:o,originalData:e,separateData:s,separateIndex:n,separateLength:i.length,isOriginRow:0===n,isLastRow:n===i.length-1};if(0===n)return e.$__SEPARATE_DATA=[s],e.$__SEPARATE_ROW_CACHE=e.$__SEPARATE_ROW_CACHE||[],e.$__uuid=t.uuid,void H(t.uuid,e,d);const p=null!=(u=e.$__SEPARATE_ROW_CACHE[n-1])?u:e.$__SEPARATE_ROW_CACHE[n-1]={$__SEPARATE:!0,$__uuid:t.uuid,$__SEPARATE_INDEX:n};p.$__ORIGIN_INDEX=o,H(t.uuid,p,d),e.$__SEPARATE_DATA.push(s),a(p)}))})),e.eventHooks.onResizableChange.tap(O,(async(e,t,a)=>{a.updateTableDataRef()})),e.configHooks.editConfig.tap(O,((e={},t)=>{const a=e.beforeEditMethod;return e.beforeEditMethod=(...e)=>{var o;if(!t.uuid)return f();const r=F.get(t.uuid);if(!r||!r.length)return f();const{row:n,column:i}=e[0],u=k(t.uuid,n);if(!u)return f();const s=null==(o=i.editRender)?void 0:o.props;if(!s||s.separateRowEdit)return f();const{isOriginRow:d,isLastRow:p}=u;return("bottom"===s.separatePlacement?p:d)&&f();function f(){return!l(a)||a(...e)}},e})),e.configHooks.checkboxConfig.tap(O,((e={},a)=>(e.checkMethod=t(e.checkMethod),e.visibleMethod=t(e.visibleMethod),e))),e.setupHooks.setup.tap(O,(e=>{n((()=>{e.value.uuid&&(F.delete(e.value.uuid),j(e.value.uuid))}))}))}})}export{O as separateRendererPlugins};
@@ -1,5 +1,5 @@
1
1
  import { PropType } from 'vue';
2
- import { VxeTableConstructor, VxeTableDefines, VxeTableMethods, VxeTablePrivateMethods } from 'vxe-table';
2
+ import { VxeTableDefines } from 'vxe-table';
3
3
  import { AnyObject } from '../../../../../../../shared/types';
4
4
  declare const _default: import("vue").DefineComponent<{
5
5
  formattedValue: {
@@ -7,20 +7,21 @@ declare const _default: import("vue").DefineComponent<{
7
7
  };
8
8
  column: {
9
9
  type: PropType<VxeTableDefines.ColumnInfo>;
10
- required: true;
11
10
  };
12
11
  row: {
13
12
  type: PropType<AnyObject>;
14
- required: true;
15
13
  };
16
14
  rowIndex: {
17
15
  type: NumberConstructor;
18
- required: true;
19
16
  };
20
17
  shortcutOptions: {
21
18
  type: PropType<string[]>;
22
19
  default: () => never[];
23
20
  };
21
+ ignoreGlobEmit: {
22
+ type: BooleanConstructor;
23
+ default: boolean;
24
+ };
24
25
  }, {
25
26
  attr: AnyObject;
26
27
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
@@ -29,26 +30,26 @@ declare const _default: import("vue").DefineComponent<{
29
30
  };
30
31
  column: {
31
32
  type: PropType<VxeTableDefines.ColumnInfo>;
32
- required: true;
33
33
  };
34
34
  row: {
35
35
  type: PropType<AnyObject>;
36
- required: true;
37
36
  };
38
37
  rowIndex: {
39
38
  type: NumberConstructor;
40
- required: true;
41
39
  };
42
40
  shortcutOptions: {
43
41
  type: PropType<string[]>;
44
42
  default: () => never[];
45
43
  };
44
+ ignoreGlobEmit: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
46
48
  }>> & {
47
49
  onClick?: ((...args: any[]) => any) | undefined;
48
50
  "onUpdate:formattedValue"?: ((...args: any[]) => any) | undefined;
49
51
  }>>;
50
- $table: VxeTableConstructor & VxeTablePrivateMethods & VxeTableMethods;
51
- emitFormChangeWithParams: (params?: AnyObject) => void;
52
+ emitFormChangeWithParams: (...args: any[]) => void;
52
53
  emit: (event: "click" | "update:formattedValue", ...args: any[]) => void;
53
54
  formRef: import("vue").Ref<HTMLElement | null>;
54
55
  isShow: import("vue").Ref<boolean>;
@@ -89,24 +90,26 @@ declare const _default: import("vue").DefineComponent<{
89
90
  };
90
91
  column: {
91
92
  type: PropType<VxeTableDefines.ColumnInfo>;
92
- required: true;
93
93
  };
94
94
  row: {
95
95
  type: PropType<AnyObject>;
96
- required: true;
97
96
  };
98
97
  rowIndex: {
99
98
  type: NumberConstructor;
100
- required: true;
101
99
  };
102
100
  shortcutOptions: {
103
101
  type: PropType<string[]>;
104
102
  default: () => never[];
105
103
  };
104
+ ignoreGlobEmit: {
105
+ type: BooleanConstructor;
106
+ default: boolean;
107
+ };
106
108
  }>> & {
107
109
  onClick?: ((...args: any[]) => any) | undefined;
108
110
  "onUpdate:formattedValue"?: ((...args: any[]) => any) | undefined;
109
111
  }, {
110
112
  shortcutOptions: string[];
113
+ ignoreGlobEmit: boolean;
111
114
  }>;
112
115
  export default _default;
@@ -1 +1 @@
1
- import{defineComponent as e,useAttrs as l,inject as t,ref as a,computed as r,reactive as u,watch as o,nextTick as i,openBlock as n,createBlock as d,unref as c,withCtx as v,createVNode as m,mergeProps as s,isRef as f,createElementBlock as p,Fragment as h,renderList as y,createTextVNode as k,toDisplayString as b,createCommentVNode as w}from"vue";import{NPopover as _,NInput as g,NSpace as F,NScrollbar as V,NButton as C}from"naive-ui";import{useIhoTableFormEvent as x}from"../../../../utils/index.js";import D from"../../../../../../time-picker/index.js";import{parse as q,isValid as O,format as j,getHours as S,getMinutes as $,getSeconds as A}from"date-fns";var H=e({__name:"editTime",props:{formattedValue:{type:String},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},shortcutOptions:{type:Array,default:()=>[]}},emits:["update:formattedValue","click"],setup(e,{emit:H}){const I=e,P=l(),R=t("$xetable"),{emitFormChangeWithParams:E}=x({...I,$table:R}),M=a(null),U=a(!1),z=a(),K=a(),N=r((()=>K.value&&L(K.value)?{style:"text-decoration: line-through"}:{})),T=r({get(){if(!K.value)return null;const e=q(K.value,G.valueFormat,new Date);return O(e)?j(e,G.valueFormat):I.formattedValue||null},set(e){J(e)}}),{placeholder:W="请选择",valueFormat:B="HH:mm"}=P,G=u({...P,placeholder:W,valueFormat:B,format:B});function J(e){if(K.value=e||"",e&&L(e))return;const l=I.formattedValue;l!==e&&(H("update:formattedValue",e),E({oldValue:l}))}function L(e){var l,t,a;const r=q(e,G.format,new Date),u=S(r),o=$(r),i=A(r),n=null==(l=G.isHourDisabled)?void 0:l.call(G,u),d=null==(t=G.isMinuteDisabled)?void 0:t.call(G,o,u),c=null==(a=G.isSecondDisabled)?void 0:a.call(G,i,o,u);return n||d||c}function Q(){[G.valueFormat.replace(/[^\w]/g,""),G.valueFormat].some((e=>{const l=q(K.value,e,new Date);if(!K.value||O(l)){return J(K.value?j(l,G.valueFormat):null),!0}return!1}))}function X(e){var l;const{key:t}=e;"Enter"===t&&(null==(l=M.value)||l.blur(),U.value=!1)}return o((()=>I.formattedValue),(e=>{if(!e)return"";K.value=e}),{immediate:!0}),o((()=>U.value),(async e=>{var l,t,a,r,u;e&&(await i(),null==(u=null==(r=null==(a=null==(t=null==(l=z.value)?void 0:l.$timePicker)?void 0:t.panelInstRef)?void 0:a.$el)?void 0:r.querySelectorAll(".n-time-picker-col"))||u.forEach((e=>{var l,t;return null==(t=null==(l=null==e?void 0:e.querySelector)?void 0:l.call(e,".n-time-picker-col__item--active"))?void 0:t.scrollIntoView()})))})),(l,t)=>(n(),d(c(_),{show:U.value,trigger:"click",showArrow:!1,placement:"bottom-start",style:{padding:"0"},onClickoutside:t[4]||(t[4]=()=>U.value=!1)},{trigger:v((()=>[m(c(g),{ref_key:"formRef",ref:M,clearable:"",placeholder:c(W),value:K.value,"onUpdate:value":t[0]||(t[0]=e=>K.value=e),valueModifiers:{trim:!0},"input-props":c(N),onClick:t[1]||(t[1]=()=>U.value=!0),onChange:Q,onKeydown:X},null,8,["placeholder","value","input-props"])])),default:v((()=>[m(c(F),null,{default:v((()=>[m(c(D),s({ref_key:"timePickerRef",ref:z,show:""},c(G),{class:"iho-table__time-picker",to:!1,"formatted-value":c(T),"onUpdate:formatted-value":t[2]||(t[2]=e=>f(T)?T.value=e:null),onConfirm:t[3]||(t[3]=()=>U.value=!1)}),null,16,["formatted-value"]),m(c(V),{class:"iho-table__scrollbar"},{default:v((()=>[e.shortcutOptions.length?(n(),d(c(F),{key:0,vertical:"",wrap:!1},{default:v((()=>[(n(!0),p(h,null,y(e.shortcutOptions,(e=>(n(),d(c(C),{size:"tiny",key:e,disabled:L(e),onClick:l=>function(e){J(e),U.value=!1}(e)},{default:v((()=>[k(b(e),1)])),_:2},1032,["disabled","onClick"])))),128))])),_:1})):w("v-if",!0)])),_:1})])),_:1})])),_:1},8,["show"]))}});export{H as default};
1
+ import{defineComponent as e,useAttrs as l,inject as t,ref as a,computed as o,reactive as r,watch as u,nextTick as i,openBlock as n,createBlock as m,unref as d,withCtx as c,createVNode as v,mergeProps as s,isRef as f,createElementBlock as p,Fragment as h,renderList as y,createTextVNode as b,toDisplayString as k,createCommentVNode as w}from"vue";import{noop as _}from"lodash-es";import{NPopover as g,NInput as F,NSpace as V,NScrollbar as C,NButton as x}from"naive-ui";import{useIhoTableFormEvent as D}from"../../../../utils/index.js";import O from"../../../../../../time-picker/index.js";import{parse as j,isValid as E,format as S,getHours as $,getMinutes as A,getSeconds as H}from"date-fns";var I=e({__name:"editTime",props:{formattedValue:{type:String},column:{type:Object},row:{type:Object},rowIndex:{type:Number},shortcutOptions:{type:Array,default:()=>[]},ignoreGlobEmit:{type:Boolean,default:!1}},emits:["update:formattedValue","click"],setup(e,{emit:I}){const P=e,R=l(),{emitFormChangeWithParams:q=_}=P.ignoreGlobEmit?{}:D({...P,$table:t("$xetable")}),G=a(null),M=a(!1),U=a(),z=a(),B=o((()=>z.value&&L(z.value)?{style:"text-decoration: line-through"}:{})),K=o({get(){if(!z.value)return null;const e=j(z.value,W.valueFormat,new Date);return E(e)?S(e,W.valueFormat):P.formattedValue||null},set(e){J(e)}}),{placeholder:N="请选择",valueFormat:T="HH:mm"}=R,W=r({...R,placeholder:N,valueFormat:T,format:T});function J(e){if(z.value=e||"",e&&L(e))return;const l=P.formattedValue;l!==e&&(I("update:formattedValue",e),q({oldValue:l}))}function L(e){var l,t,a;const o=j(e,W.format,new Date),r=$(o),u=A(o),i=H(o),n=null==(l=W.isHourDisabled)?void 0:l.call(W,r),m=null==(t=W.isMinuteDisabled)?void 0:t.call(W,u,r),d=null==(a=W.isSecondDisabled)?void 0:a.call(W,i,u,r);return n||m||d}function Q(){[W.valueFormat.replace(/[^\w]/g,""),W.valueFormat].some((e=>{const l=j(z.value,e,new Date);if(!z.value||E(l)){return J(z.value?S(l,W.valueFormat):null),!0}return!1}))}function X(e){var l;const{key:t}=e;"Enter"===t&&(null==(l=G.value)||l.blur(),M.value=!1)}return u((()=>P.formattedValue),(e=>{if(!e)return"";z.value=e}),{immediate:!0}),u((()=>M.value),(async e=>{var l,t,a,o,r;e&&(await i(),null==(r=null==(o=null==(a=null==(t=null==(l=U.value)?void 0:l.$timePicker)?void 0:t.panelInstRef)?void 0:a.$el)?void 0:o.querySelectorAll(".n-time-picker-col"))||r.forEach((e=>{var l,t;return null==(t=null==(l=null==e?void 0:e.querySelector)?void 0:l.call(e,".n-time-picker-col__item--active"))?void 0:t.scrollIntoView()})))})),(l,t)=>(n(),m(d(g),{show:M.value,trigger:"click",showArrow:!1,placement:"bottom-start",style:{padding:"0"},onClickoutside:t[4]||(t[4]=()=>M.value=!1)},{trigger:c((()=>[v(d(F),{ref_key:"formRef",ref:G,clearable:"",placeholder:d(N),value:z.value,"onUpdate:value":t[0]||(t[0]=e=>z.value=e),valueModifiers:{trim:!0},"input-props":d(B),onClick:t[1]||(t[1]=()=>M.value=!0),onChange:Q,onKeydown:X},null,8,["placeholder","value","input-props"])])),default:c((()=>[v(d(V),null,{default:c((()=>[v(d(O),s({ref_key:"timePickerRef",ref:U,show:""},d(W),{class:"iho-table__time-picker",to:!1,"formatted-value":d(K),"onUpdate:formatted-value":t[2]||(t[2]=e=>f(K)?K.value=e:null),onConfirm:t[3]||(t[3]=()=>M.value=!1)}),null,16,["formatted-value"]),v(d(C),{class:"iho-table__scrollbar"},{default:c((()=>[e.shortcutOptions.length?(n(),m(d(V),{key:0,vertical:"",wrap:!1},{default:c((()=>[(n(!0),p(h,null,y(e.shortcutOptions,(e=>(n(),m(d(x),{size:"tiny",key:e,disabled:L(e),onClick:l=>function(e){J(e),M.value=!1}(e)},{default:c((()=>[b(k(e),1)])),_:2},1032,["disabled","onClick"])))),128))])),_:1})):w("v-if",!0)])),_:1})])),_:1})])),_:1},8,["show"]))}});export{I as default};
@@ -1 +1 @@
1
- import{createVNode as e,mergeProps as o}from"vue";import{format as t}from"date-fns";import{isFunction as r}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as n}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as l,IhoTableRenderHelper as d,getLowCodeFieldFromField as m,isInvalidTime as u}from"../../../../utils/index.js";import a from"./editTime.vue.js";import{defineTablePlugin as f}from"../../../../hooks/useTablePlugin.js";function s(){const s="timeRendererPlugin";return f({name:s,vxe(t){t.interceptor.add("event.clearActived",l(n.TIME,(e=>e.classList.contains("n-popover")))),t.renderer.add(n.TIME,{renderCell:d.createDefaultRenderCell(),renderEdit:d.createRenderEdit((({fieldItem:t,emitFormClick:r,row:n,column:i,$rowIndex:l})=>[e(a,o({formattedValue:n[i.field],"onUpdate:formattedValue":e=>n[i.field]=e,column:i,row:n,"row-index":l,valueFormat:t.valueFormat},t.componentProps,{onClick:r}),null)]))})},apply(e){i(e).bindAutoFocusConfig(s,n.TIME,".n-input__input-el",{after:e=>(Reflect.set(e.editRender,"autoselect",!0),e)}),e.eventHooks.onCellDblclick.tap(s,(({row:e,column:o,columnIndex:i,rowIndex:l,$rowIndex:d},a,{$table:f,emits:s})=>{var c,p,v,x;if((null==(c=o.editRender)?void 0:c.name)!==n.TIME||e[o.field])return;if(r(null==(p=a.editConfig)?void 0:p.beforeEditMethod)){if(!(null==(v=a.editConfig)?void 0:v.beforeEditMethod({row:e,column:o,columnIndex:i,rowIndex:l,$table:f,$grid:f})))return}const w=t(new Date,(null==(x=m(o))?void 0:x.valueFormat)||"HH:mm");if(u(o,w))return;const I=e[o.field];e[o.field]=w,s("formChange",{oldValue:I,index:l>-1?l:d,value:e[o.field],row:e,column:o,$table:f})}))}})}export{s as timeRendererPlugin};
1
+ import{createVNode as e,mergeProps as o}from"vue";import{format as r}from"date-fns";import{isFunction as t}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as n}from"../../../../constants/index.js";import{useAutoFocus as i}from"../hooks/useAutoFocus.js";import{IhoTableRenderHelper as l,getLowCodeFieldFromField as d,isInvalidTime as m}from"../../../../utils/index.js";import u from"./editTime.vue.js";import{defineTablePlugin as a}from"../../../../hooks/useTablePlugin.js";function f(){const f="timeRendererPlugin";return a({name:f,vxe(r){r.renderer.add(n.TIME,{renderCell:l.createDefaultRenderCell(),renderEdit:l.createRenderEdit((({fieldItem:r,emitFormClick:t,row:n,column:i,$rowIndex:l})=>[e(u,o({formattedValue:n[i.field],"onUpdate:formattedValue":e=>n[i.field]=e,column:i,row:n,"row-index":l,valueFormat:r.valueFormat},r.componentProps,{onClick:t}),null)]))})},apply(e){i(e).bindAutoFocusConfig(f,n.TIME,".n-input__input-el",{after:e=>(Reflect.set(e.editRender,"autoselect",!0),e)}),e.eventHooks.onCellDblclick.tap(f,(({row:e,column:o,columnIndex:i,rowIndex:l,$rowIndex:u},a,{$table:f,emits:s})=>{var c,p,v,x;if((null==(c=o.editRender)?void 0:c.name)!==n.TIME||e[o.field])return;if(t(null==(p=a.editConfig)?void 0:p.beforeEditMethod)){if(!(null==(v=a.editConfig)?void 0:v.beforeEditMethod({row:e,column:o,columnIndex:i,rowIndex:l,$table:f,$grid:f})))return}const w=r(new Date,(null==(x=d(o))?void 0:x.valueFormat)||"HH:mm");if(m(o,w))return;const I=e[o.field];e[o.field]=w,s("formChange",{oldValue:I,index:l>-1?l:u,value:e[o.field],row:e,column:o,$table:f})}))}})}export{f as timeRendererPlugin};
@@ -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 d,h as c}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{EDITABLE_WIDGET_TYPE as b,InjectionIhoTableUUID as I}from"../constants/index.js";import{useUUIDMap as T,IhoTableUtils as w}from"../utils/index.js";import{defineTablePlugin as R}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:H,removeItemFromUUID:M}=T((()=>new D),!0),{getItemFromUUID:S,removeItemFromUUID:C,setItemFromUUID:U}=T((()=>null)),{getItemFromUUID:$,removeItemFromUUID:k,setItemFromUUID:F}=T((()=>{}));let j={};function E(t,o,{scrollTop:l=0}){var n,r;const{uuid:a,rowConfig:s={}}=o;if(!a)return;const i=H(a),{oSize:u=0,gt:d=100}=null!=(n=$(a))?n:{},{internalData:c,reactData:p}=t,{scrollYStore:f,elemStore:m,afterFullData:h,fullDataRowIdData:g}=c;if(d>h.length)return;const y=null!=(r=s.height)?r:36,b=m["main-body-wrapper"],I=b?e(b):null;let T=I?Math.max(8,Math.ceil(I.clientHeight/y)+2+u):8;const w=[0];let R=0;if(l&&h.find(((e,o)=>{const n=t.getRowSeq(e),r=(v(w)||0)+Math.max(y,i.getMax(n));if(w.push(r),r>l)return R=Math.max(0,o-u),T+=Math.min(R,u),!0})),R>0&&x(o.spanMethod)){const{spanMethod:e}=o,l={rowspan:1,colspan:1};for(;R>0;){if(!t.getColumns().some(((t,o)=>{const{rowspan:n,colspan:r}=e({column:t,columnIndex:o,$columnIndex:o,row:h[R],rowIndex:R,$rowIndex:R,_rowIndex:R,isHidden:!t.visible,fixed:t.fixed,type:t.type,visibleData:h})||l;if(0===n&&0===r)return R--,!0})))break}}const D=`${w[R]}px`,M=`${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=D,n.scrollTop=l),["header","body","footer"].forEach((o=>{const l=m[`${t}-${o}-ySpace`],n=l?e(l):null;n&&(n.style.height=M)}))}));const S=Math.min(h.length,R+T);if(f.startIndex===R&&f.endIndex===S)return;f.startIndex=R,f.endIndex=S;const C=h.slice(f.startIndex,f.endIndex);C.forEach(((e,o)=>{const l=t.getRowid(e),n=g[l];n&&(n.$index=o)})),p.tableData.length=0,p.tableData.push(...C)}const Y=h(E,300);function q(e){var t,o;return(!0===e.variableHeight||"1"===e.variableHeight)&&(null!=(o=null==(t=e.editRender)?void 0:t.name)?o:w.getCellType(e))!==b.SEPARATE}function L(){const o="variableHeightRendererPlugin";return R({name:o,vxe(e){j=n({props:{payload:{type:Object,required:!0}},setup(t){const o=r(I),n=r("$xetable"),p=a(),m=H(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()})),d((()=>{n&&!S(o)&&U(o,n),v()}));const b=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})),T=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:T.value,overflow:"hidden"}},[c(b.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&&E(o,t,{scrollTop:l.scrollTop})}function a(e){if(!e.uuid)return;const t=$(e.uuid);t&&(e.scrollY=t),setTimeout((()=>r(e)),300)}function s(e){return l(j,{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&&q(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&&E(l,t,e)}),100,!0,!0)),n.fieldHooks.field.tap(o,(e=>{if(q(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(q(t)){const t=null!=(s=null==(a=o.rowConfig)?void 0:a.height)?s:36,i=H(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)&&E(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:d}=r,{refTableLeftBody:c,refTableRightBody:p,refTableBody:f}=a.getRefMaps(),h=d,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 T=c.value,w=p.value,R=T?T.$el:null,D=w?w.$el:null,H=Math.min(100,Math.abs(Math.floor(h/2)));n&&(l=y.scrollTop,n=!1),l+=H*(v?-1:1),o&&o(),o=m(y.scrollTop,l,400,(e=>{y.scrollTop=e,R&&(R.scrollTop=e),D&&(D.scrollTop=e)}),"easeOutCubic",(()=>{l=y.scrollTop,n=!0})),Y(a,t,y)}}(o),setTimeout((()=>{F(o.uuid,o.scrollY),r(o)}),300),n()}})),t))),n.setupHooks.setup.tap(o,(e=>{t((()=>{e.value.uuid&&(M(e.value.uuid),C(e.value.uuid),k(e.value.uuid))}))}))}})}export{L 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,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};
@@ -0,0 +1 @@
1
+ export declare const VERTICAL_CELL_TYPE = "VERTICAL_CELL_TYPE";
@@ -0,0 +1 @@
1
+ const E="VERTICAL_CELL_TYPE";export{E as VERTICAL_CELL_TYPE};
@@ -0,0 +1 @@
1
+ export declare function verticalTablePlugin(): import("../../../../../components/iho-table").TablePlugin;
@@ -0,0 +1 @@
1
+ import{findAncestor as e}from"../../../../../shared/utils/index.js";import{pick as r,property as o,isArray as t,isFunction as n}from"lodash-es";import{onBeforeUnmount as i,unref as l}from"vue";import"../../../index.js";import{LOWEST_PRIORITY as a,WIDGET_TYPE as s}from"../../constants/index.js";import{useUUIDMap as u}from"../../utils/index.js";import{VERTICAL_CELL_TYPE as d}from"./constants.js";import{renderHeader as c,renderSlot as f}from"./renderer.js";import{isVerticalTable as g,isVerticalHeader as m,getSpanInfo as p,getHeaderDepthByField as v,createVerticalFieldList as b,getFieldListDepth as h,bindHeaderInfoAndFlatten as w,isVerticalBody as C}from"./utils.js";import{defineTablePlugin as D}from"../../hooks/useTablePlugin.js";const j=["RADIO","SWITCH"];function x(){const x="verticalTablePlugin",{getItemFromUUID:R,removeItemFromUUID:k}=u((()=>({})));return D({name:x,vxe(e){function r(r){return(o,t)=>{var i,l;const{row:a,column:u}=t;if(m(u.field))return c(a,u);const{originalField:{editRender:d={},slots:g={}}={}}=a;if(n(g[r]))return f(g[r],a,u,t);const p=d.name||s.DEFAULT,v=e.renderer.get(p);return v?"default"===r?null==(i=v.renderCell)?void 0:i.call(v,d,t):null==(l=v.renderEdit)?void 0:l.call(v,d,t):{}}}e.renderer.add(d,{renderCell:r("default"),renderEdit:r("edit")})},apply(n){n.configHooks.config.tap({name:x,stage:a},(t=>{if(!t.uuid||!g(t))return t;const{uuid:n}=t,i=R(n);return i.originalTableConfig=t,Reflect.set(window,"__state",i),{uuid:n,showHeader:!1,...r(t,["border","height","verticalConfig","showSeq","size","rowGroupSetting","keyboardConfig"]),cellClassName({column:e}){const r=m(e.field);return{"vxe-header--column":r,"vxe-table--header":r,[e.field]:!0}},cellStyle({column:e,row:r}){const o={};if(p(r,e).colspan>1&&Object.assign(o,{textAlign:"center"}),!m(e.field)){const r=v(e.field),{originalData:t=[]}=i;t[r]===i.hoveringRow&&Object.assign(o,{backgroundColor:"var(--c-hover-color)"}),t[r]===i.currentRow&&Object.assign(o,{backgroundColor:"var(--c-primary-color-opacity2)"})}return o},spanMethod:({row:e,column:r})=>p(e,r),editConfig:{...t.editConfig,beforeEditMethod({row:e,column:r}){var o;const{originalField:t={}}=e;if(m(r.field))return!1;const{editRender:{name:n=s.DEFAULT}={}}=t;return!Object.values(s).concat(j).includes(n)&&(!(null==(o=t.slots)?void 0:o.default)||!!t.slots.edit)}},onCellClick({column:e}){if(m(e.field))return;const{originalData:r=[]}=i,t=r[v(e.field)];i.currentRow=!1!==o("originalTableConfig.rowConfig.clickToCancel")(i)&&i.currentRow===t?null:t},onMousemove(r){var o,t;const n=e(r.target,(e=>"TD"===e.tagName));if(!n)return;const[,l,a]=n.className.match(/(body|header)_(\d+)/)||[];if("body"!==l)return i.hoveringRow=null;i.hoveringRow=null!=(t=null==(o=i.originalData)?void 0:o[Number(a)])?t:null},onMouseleave(){i.hoveringRow=null}}})),n.fieldHooks.fieldList.tap({name:x,stage:a},((e,r,{globProps:o})=>{const{uuid:n}=r;if(!n||!g(r))return e;const i=R(n);return i?(i.originalFieldList=e,t(o.tableData)?i.verticalFieldList=b(o.tableData,i.headerDepth=h(e)):[]):e})),n.dataHooks.dataList.tap({name:x,stage:a},((e,r)=>{const{uuid:o}=r;if(!o||!g(r))return e;const t=R(o);if(!t)return e;t.originalData=e;const{originalFieldList:n=[],headerDepth:i=0}=t;return t.verticalData=w(n,i).map((r=>function(e,r){return new Proxy({},{get(o,t){var n;if("originalField"===t)return e;if("originalData"===t)return r;if(m(t))return e[t];if(C(t)){const o=v(t);return"seq"===e.type?o+1:null==(n=r[o])?void 0:n[e.field]}},set(o,t,n){if(!m(t)){const o=v(t);o>=0&&r[o]&&(r[o][e.field]=n)}return!0}})}(r,e)))})),n.setupHooks.setup.tap(x,(e=>{i((()=>{const{uuid:r}=l(e)||{};r&&k(r)}))})),n.exposeHooks.expose.tap(x,(e=>Object.assign(e,{verticalTable:{insertRow(){}}})))}})}export{x as verticalTablePlugin};
@@ -0,0 +1,5 @@
1
+ import { AnyFn, AnyObject } from '../../../../../shared/types';
2
+ import { VxeTableDefines } from 'vxe-table';
3
+ import { VxeGlobalRendererHandles } from 'vxe-table/types/v-x-e-table/renderer';
4
+ export declare function renderHeader(row: AnyObject, column: VxeTableDefines.ColumnInfo): any;
5
+ export declare function renderSlot(fn: AnyFn, row: AnyObject, column: VxeTableDefines.ColumnInfo, payload: VxeGlobalRendererHandles.RenderCellParams): any;
@@ -0,0 +1 @@
1
+ import{property as o}from"lodash-es";import{getHeaderDepthByField as n}from"./utils.js";function r(o,n){return o[n.field]}function e(r,e,i,l){const t=n(i.field);return r({$table:l.$table,row:o(`originalData.${t}`)(e),rowIndex:t,$rowIndex:t,column:o("originalField")(e),columnIndex:l.rowIndex,$columnIndex:l.rowIndex})}export{r as renderHeader,e as renderSlot};
@@ -0,0 +1,12 @@
1
+ import { AnyObject } from '../../../../../shared/types';
2
+ import { IhoTableConfig, IhoTableFieldItem } from '../../../../../components/iho-table';
3
+ export declare type IhoTableVerticalState = Partial<{
4
+ originalTableConfig: IhoTableConfig;
5
+ originalFieldList: IhoTableFieldItem[];
6
+ originalData: AnyObject[];
7
+ verticalFieldList: IhoTableFieldItem[];
8
+ verticalData: AnyObject[];
9
+ headerDepth: number;
10
+ currentRow: AnyObject | null;
11
+ hoveringRow: AnyObject | null;
12
+ }>;
@@ -0,0 +1,14 @@
1
+ import { AnyObject } from '../../../../../shared/types';
2
+ import { VxeTableDefines } from 'vxe-table';
3
+ import { IhoTableConfig, IhoTableFieldItem } from '../../../../../components/iho-table';
4
+ export declare function isVerticalTable(tableConfig: IhoTableConfig): boolean;
5
+ export declare function getFieldListDepth(fieldList: IhoTableFieldItem[]): number;
6
+ export declare function isVerticalHeader(field: string): boolean;
7
+ export declare function isVerticalBody(field: string): boolean;
8
+ export declare function getHeaderDepthByField(field: string): number;
9
+ export declare function bindHeaderInfoAndFlatten(fieldList: IhoTableFieldItem[], depth: number): IhoTableFieldItem[];
10
+ export declare function getSpanInfo(row: AnyObject, column: VxeTableDefines.ColumnInfo): {
11
+ rowspan: any;
12
+ colspan: any;
13
+ };
14
+ export declare function createVerticalFieldList(tableData: AnyObject[], headerDepth: number): IhoTableFieldItem[];
@@ -0,0 +1 @@
1
+ import{traverse as n}from"../../../../../shared/utils/index.js";import{isString as e,range as r}from"lodash-es";import{VERTICAL_CELL_TYPE as t}from"./constants.js";function i(n){var e;return!!(null==(e=n.verticalConfig)?void 0:e.enable)}function o(n){let e=0;return function n(r,t=0){r.forEach((r=>{r.children?n(r.children,t+1):e=Math.max(e,t)}))}(n),e}function a(n){return!!e(n)&&n.startsWith("header_")}function l(n){return!!e(n)&&n.startsWith("body_")}function c(n){var r;return e(n)?+(null!=(r=n.split("_")[1])?r:0):0}function u(e,t){const i=[];return n(e,((n,e,a)=>{n.parent=a,n.children||(!function(n,e){let t=n,i=e;if(!n.parent)return n[`header_${e}`]=n.title,void r(e+1).forEach((r=>{n[`header_${r}_colspan`]=r===e?e+1:0,n[`header_${r}_rowspan`]=r===e?1:0}));for(;t;)n[`header_${i}`]=t.title,n[`header_${i}_rowspan`]=o(t),n[`header_${i}_colspan`]=1,i--,t=t.parent}(n,t),i.push(n))})),i.forEach(((n,e)=>{const r=i[e-1];r&&Object.entries(n).forEach((([e,t])=>{e.match(/^header_(\d+)$/)&&t===r[e]&&(n[`${e}_colspan`]=0,n[`${e}_rowspan`]=0)}))})),i;function o(e){if(!e.children)return 1;let r=0;return n(e.children,(n=>{n.children||r++})),r}}function d(n,e){var r,t;return a(e.field)?{rowspan:null!=(r=n[e.field+"_rowspan"])?r:1,colspan:null!=(t=n[e.field+"_colspan"])?t:1}:{colspan:1,rowspan:1}}const s=({cell:n}={})=>{const e=n&&n.querySelector("input,.n-input__input-el");return e&&e.click(),e};function p(n,e){return[...r(e+1).map((n=>({field:`header_${n}`,title:`header_${n}`,minWidth:120,fixed:"left"}))),...n.map(((n,e)=>({field:`body_${e}`,title:`body_${e}`,minWidth:120,editRender:{name:t,props:{},enable:!0,autofocus:s}})))]}s.toString=()=>"input,.n-input__input-el";export{u as bindHeaderInfoAndFlatten,p as createVerticalFieldList,o as getFieldListDepth,c as getHeaderDepthByField,d as getSpanInfo,l as isVerticalBody,a as isVerticalHeader,i as isVerticalTable};
@@ -1,11 +1,12 @@
1
1
  import { AnyObject, ArrayAble, AnyFn, MaybeString, LowCodeTypes, TupleToUnion } from '../../../../shared/types';
2
- import { VxeTableProps, VxeTableDefines, VxeTableInstance, VxeColumnPropTypes, VxeTablePropTypes, VxeTableConstructor } from 'vxe-table';
2
+ import { VxeTableProps, VxeTableDefines, VxeTableInstance, VxeColumnPropTypes, VxeTablePropTypes, VxeTableConstructor, VxeTableMethods } from 'vxe-table';
3
3
  import { VxePagerEventProps } from 'vxe-table/types/pager';
4
4
  import { VxeTableEventProps, VxeTableListeners, VxeTablePrivateMethods } from 'vxe-table/types/table';
5
5
  import { AnnotationItem } from '../../../../components/annotation-edit/src/type';
6
6
  import { IHO_TABLE_STRING_STATUS, IhoTableEventNameTuple, IhoTableRowGroupSequence } from '../../../../components/iho-table/src/constants';
7
7
  import Sortable from 'sortablejs';
8
8
  export * from './pluginType';
9
+ export declare type $VxeTable = VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods;
9
10
  export interface IhoTableRowGroupItem {
10
11
  groupName?: string;
11
12
  title: string;
@@ -55,12 +56,18 @@ export declare type IhoTableConfig = VxeTableProps & Partial<{
55
56
  radioConfig: Partial<VxeTableProps['radioConfig'] & {
56
57
  slots: VxeColumnPropTypes.Slots;
57
58
  }>;
59
+ verticalConfig: {
60
+ enable?: boolean;
61
+ };
58
62
  [K: string]: unknown;
59
63
  }>;
60
64
  export declare type IhoTableFieldItem = {
61
65
  [K in keyof VxeTableDefines.ColumnInfo]?: K extends 'children' ? IhoTableFieldItem[] : K extends keyof VxeTableDefines.ColumnInfo ? VxeTableDefines.ColumnInfo[K] : never;
62
66
  } & Partial<{
63
67
  annotation: boolean;
68
+ depth: number;
69
+ parent: IhoTableFieldItem;
70
+ [key: string]: any;
64
71
  }>;
65
72
  export declare namespace IhoTableLowCodeField {
66
73
  type FieldSetting = Partial<{
@@ -6,7 +6,7 @@ import { VxeGlobalCommands, VxeGlobalFormats, VxeGlobalHooks, VxeGlobalMenus, Vx
6
6
  import { VxeTableEvents } from 'vxe-table/types/table';
7
7
  import { VxePagerEvents } from 'vxe-table/types/pager';
8
8
  import { VxeGlobalInterceptor } from 'vxe-table/types/v-x-e-table';
9
- import { IhoTableConfig, IhoTableEmits, IhoTableEventTypes, IhoTableFieldItem, IhoTableHandler } from '.';
9
+ import { IhoTableConfig, IhoTableEmits, IhoTableEventTypes, IhoTableFieldItem, IhoTableHandler, IhoTableProps } from '.';
10
10
  export declare type IhoTableInstance = {
11
11
  interceptor: VxeGlobalInterceptor;
12
12
  renderer: VxeGlobalRenderer;
@@ -24,6 +24,7 @@ export declare type TablePlugin = {
24
24
  export declare type IhoTableHandlerContext<isRef extends boolean = true> = {
25
25
  $table: isRef extends true ? Ref<Nullable<VxeTableInstance>> : Nullable<VxeTableInstance>;
26
26
  emits: IhoTableEmits;
27
+ globProps: IhoTableProps;
27
28
  };
28
29
  export declare type TableHooks = Readonly<{
29
30
  configHooks: AbstractConfigHooks;
@@ -150,6 +151,7 @@ export declare abstract class AbstractDataHooks {
150
151
  abstract readonly dataStart: AsyncParallelHook<WithTableConfig>;
151
152
  abstract readonly data: AsyncSeriesHook<WithTableDataContext<[AnyObject]>>;
152
153
  abstract readonly dataEnd: AsyncParallelHook<WithTableConfig>;
154
+ abstract readonly dataList: SyncWaterfallHook<WithTableConfig<[AnyObject[]]>>;
153
155
  }
154
156
  export declare abstract class AbstractSetupHooks {
155
157
  abstract readonly setup: SyncHook<[Ref<IhoTableConfig>, Ref<IhoTableFieldItem[]>, IhoTableHandlerContext]>;
@@ -1,9 +1,8 @@
1
- import { AnyObject, ArrayAble, Nullable } from '../../../../shared/types';
1
+ import { AnyObject, Nullable } from '../../../../shared/types';
2
2
  import { MaybeRef } from '@vueuse/core';
3
3
  import { VxeTableDefines, VxeTableInstance } from 'vxe-table';
4
4
  import { VxeGlobalRendererHandles } from 'vxe-table/types/v-x-e-table/renderer';
5
- import { EventListenerToEventName, EventNameToEventListener, IhoTableConfig, IhoTableFieldItem, LowCodeTableFieldItem } from '../../../../components/iho-table';
6
- import { EDITABLE_WIDGET_TYPE } from '../../../../components/iho-table/src/constants';
5
+ import { $VxeTable, EventListenerToEventName, EventNameToEventListener, IhoTableConfig, IhoTableFieldItem, LowCodeTableFieldItem } from '../../../../components/iho-table';
7
6
  export * from './separateMap';
8
7
  export declare function IhoTableLog(message: string): void;
9
8
  export declare function IhoTableWarn(message: string): void;
@@ -45,10 +44,6 @@ export declare const IhoTableStatusHelper: Readonly<{
45
44
  notPositive(value: string | number | undefined | null): boolean;
46
45
  notNegative(value: string | number | undefined | null): boolean;
47
46
  }>;
48
- export declare const createIhoTableClearActivedInterceptor: (type: ArrayAble<EDITABLE_WIDGET_TYPE>, solution: (ele: HTMLElement) => boolean) => ({ $event, column }: {
49
- $event: Event;
50
- column: VxeTableDefines.ColumnInfo;
51
- }) => boolean;
52
47
  export declare function isTransformTreeType(config: IhoTableConfig): boolean;
53
48
  export declare function isRichContent(content: string): content is string;
54
49
  export declare function parseRichContent(richContent: string): any;
@@ -57,3 +52,5 @@ export declare function isCompatibleColumn(field: LowCodeTableFieldItem): number
57
52
  export declare function getTitle(column: VxeTableDefines.ColumnInfo, value?: unknown): string;
58
53
  export declare function isInvalidTime(column: VxeTableDefines.ColumnInfo, newValue: MaybeRef<any>): boolean;
59
54
  export declare function isInvalidDate(column: VxeTableDefines.ColumnInfo, row: AnyObject, newValue: MaybeRef<any>): any;
55
+ export declare function isVariableHeightColumn(field: AnyObject): boolean;
56
+ export declare function isVariableHeightTable($table: $VxeTable): boolean;
@@ -1 +1 @@
1
- import{reactive as e,inject as n,unref as t,toRaw as r,createVNode as o}from"vue";import{jsonParse as i,arrayed as l,findAncestor as u}from"../../../../shared/utils/index.js";import{promiseTimeout as a}from"@vueuse/shared";import{parse as c,isValid as d,compareDesc as s}from"date-fns";import{isNumber as f,isFunction as p,isString as m,isObject as v,isArray as I}from"lodash-es";import{InjectionIhoTableConfig as g,InjectionIhoTableEmits as h,IHO_TABLE_STRING_STATUS as E,IHO_TABLE_NUMBER_STATUS as w,IHO_TABLE_TREE_TYPE as T,InjectionIhoTableUUID as R}from"../constants/index.js";import{getSeparateInfo as S}from"./separateMap.js";export{deleteSeparateInfo,getSeparateInfo,setSeparateInfo}from"./separateMap.js";function C(e){return console.warn(`[IhoTable]: ${e}`)}const F=Object.freeze({getCellType(e){var n;return((null==(n=e.settingObj)?void 0:n.attr)||e.formType||"DEFAULT").toUpperCase()}});function D(){var e,t,r;const o=n(g);return o||C("this function(getRowHeight) only can be used in setup environment"),null!=(r=null==(t=null==(e=null==o?void 0:o.value)?void 0:e.rowConfig)?void 0:t.height)?r:32}function O(e){const n=e.slice(2);return`${n[0].toLowerCase()}${n.slice(1)}`}function P(e){return`on${e[0].toUpperCase()}${e.slice(1)}`}function A(n,t=!0){const r=t?e(new Map):new Map;return{getItemFromUUID:function(e){return r.set(e,r.get(e)||n()).get(e)},setItemFromUUID:function(e,n){r.set(e,n)},removeItemFromUUID:function(e){r.delete(e)}}}async function b(e,n,r,o,i=2){const l=function(){var i;const l=null==(i=t(o))?void 0:i.getColumnByField(e.field);if(!l)return;const u=x(l);return u?p(u.separateWidth)?u.separateWidth({column:l,row:n,rowIndex:r,$table:t(o)}):f(u.separateWidth)?u.separateWidth:l.renderWidth:l.renderWidth}();return f(l)&&l>0?l:i<=0?function(){const n=+e.colWidth;return f(n)?n:64}():(await a(0),b(e,n,r,o,i-1))}function $(e){const o=n(h);function i(){var n;const r=t(e);return{$table:r.$table,value:r.row[r.column.field],row:r.row,column:{...r.column,...null==(n=r.column.editRender)?void 0:n.props},index:r.rowIndex>-1?r.rowIndex:r.$rowIndex}}function l(e={}){o("formChange",{...i(),...r(e)})}function u(e={}){o("formClick",{...i(),...r(e)})}return{emitFormChange:function(){l()},emitFormClick:function(){u()},emitFormChangeWithParams:l,emitFormClickWithParams:u}}function x(e){var n;return null==(n=e.editRender)?void 0:n.props}const N=Object.freeze({createDefaultRenderCell:function(){return function({props:e},{row:t,column:r}){if("bottom"!==(null==e?void 0:e.separatePlacement))return c(t[r.field]);const i=n(R),l=S(i,t);if(!l)return c(t[r.field]);const{originalData:u=t,isLastRow:a}=l;return c(a?u[r.field]:null);function c(e){return[o("span",{title:G(r,e),class:"iho-table__colorAndIcon"},[e])]}}},createRenderEdit:function(e){return function({props:n},t){return e({...t,fieldItem:n||{},...$(t)})}},isEditableColumn(e,n){var t;return!1!==(null==(t=e.editConfig)?void 0:t.showIcon)&&n.editRender&&!1!==n.editRender.enabled},hasFilter(e){if(M(e))return!0;let n=e.fieldSetting;return m(n)&&(n=i(n||"")),v(n)&&((t=n).notParticipatingSearch!==E.POSITIVE&&"manual"===(null==(r=t.mapping)?void 0:r.type));var t,r},hasDateFiler(e){var n;return null==(n=null==e?void 0:e.filterSetting)?void 0:n.daterange}}),V=Object.freeze({isPositive:e=>e===w.POSITIVE||e===E.POSITIVE,isNegative:e=>e===w.NEGATIVE||e===E.NEGATIVE,notPositive:e=>e!==w.POSITIVE&&e!==E.POSITIVE,notNegative:e=>e!==w.NEGATIVE&&e!==E.NEGATIVE}),W=(e,n)=>({$event:t,column:r})=>{var o;if(!l(e).includes(null==(o=r.editRender)?void 0:o.name))return!0;const i=null==t?void 0:t.target;return!v(i)||!u(i,n)};function _(e){return[T.TRANSFORM_WITH_SPAN_METHOD,T.TRANSFORM_TREE_TYPE].includes(`${e.isTree}`)}function U(e){return m(e)&&!!e.match(/^###\{[^{}]+}$/)}function j(e){try{return JSON.parse(e.replace(/^###/,""))}catch(e){return{}}}function y(e,n){if(e.$__SEPARATE||!n.editRender||!n.editRender.props)return e[n.field];const{fieldSetting:t}=n.editRender.props;if(!m(t))return e[n.field];const{mergedFeildExpression:r}=i(t);return r&&m(r)?r.replace(/#{(.+?)}/g,(function(n,t){let r=t?e[t.trim()]:null;U(r)&&(r=j(r).change_text);return r||(null==r?"--":r)})):e[n.field]}const H=["SEARCH","SELECT","RADIO","CHECKBOX"];function M(e){return e.notParticipatingSearch===w.NEGATIVE&&H.includes(F.getCellType(e))&&I(e.options)&&e.options.length}function G(e,n=""){return"tooltip"!==e.showOverflow&&m(n)?n:""}function L(e,n){var r,o,i;n=t(n)||"";const l=null!=(o=null==(r=e.editRender)?void 0:r.props)?o:{},u=c(n,(null==(i=null==l?void 0:l.componentProps)?void 0:i.valueFormat)||"HH:mm",new Date);return!d(u)}function k(e,n,r){var o,i;const l=null!=(i=null==(o=e.editRender)?void 0:o.props)?i:{};return r=t(r)||"",!d(new Date(r))||m(l.connectField)&&n[l.connectField]&&(l.isStartDate&&s(new Date(r),new Date(n[l.connectField]))<0||l.isEndDate&&s(new Date(r),new Date(n[l.connectField]))>0)}export{N as IhoTableRenderHelper,V as IhoTableStatusHelper,F as IhoTableUtils,C as IhoTableWarn,W as createIhoTableClearActivedInterceptor,O as eventListener2EventName,P as eventName2EventListener,b as getColumnRenderWidth,x as getLowCodeFieldFromField,D as getRowHeight,G as getTitle,M as isCompatibleColumn,k as isInvalidDate,L as isInvalidTime,U as isRichContent,_ as isTransformTreeType,y as parseMergeField,j as parseRichContent,$ as useIhoTableFormEvent,A as useUUIDMap};
1
+ import{reactive as e,inject as n,unref as t,toRaw as r,createVNode as o}from"vue";import{jsonParse as i}from"../../../../shared/utils/index.js";import{promiseTimeout as l}from"@vueuse/shared";import{parse as u,isValid as a,compareDesc as c}from"date-fns";import{isNumber as d,isFunction as s,isString as f,isObject as p,isArray as m}from"lodash-es";import{InjectionIhoTableConfig as v,InjectionIhoTableEmits as I,IHO_TABLE_STRING_STATUS as g,IHO_TABLE_NUMBER_STATUS as h,IHO_TABLE_TREE_TYPE as E,EDITABLE_WIDGET_TYPE as w,InjectionIhoTableUUID as T}from"../constants/index.js";import{getSeparateInfo as R}from"./separateMap.js";export{deleteSeparateInfo,getSeparateInfo,setSeparateInfo}from"./separateMap.js";function C(e){return console.warn(`[IhoTable]: ${e}`)}const S=Object.freeze({getCellType(e){var n;return((null==(n=e.settingObj)?void 0:n.attr)||e.formType||"DEFAULT").toUpperCase()}});function F(){var e,t,r;const o=n(v);return o||C("this function(getRowHeight) only can be used in setup environment"),null!=(r=null==(t=null==(e=null==o?void 0:o.value)?void 0:e.rowConfig)?void 0:t.height)?r:32}function D(e){const n=e.slice(2);return`${n[0].toLowerCase()}${n.slice(1)}`}function P(e){return`on${e[0].toUpperCase()}${e.slice(1)}`}function b(n,t=!0){const r=t?e(new Map):new Map;return{getItemFromUUID:function(e){return r.set(e,r.get(e)||n()).get(e)},setItemFromUUID:function(e,n){r.set(e,n)},removeItemFromUUID:function(e){r.delete(e)}}}async function A(e,n,r,o,i=2){const u=function(){var i;const l=null==(i=t(o))?void 0:i.getColumnByField(e.field);if(!l)return;const u=$(l);return u?s(u.separateWidth)?u.separateWidth({column:l,row:n,rowIndex:r,$table:t(o)}):d(u.separateWidth)?u.separateWidth:l.renderWidth:l.renderWidth}();return d(u)&&u>0?u:i<=0?function(){const n=+e.colWidth;return d(n)?n:64}():(await l(0),A(e,n,r,o,i-1))}function O(e){const o=n(I);function i(){var n;const r=t(e);return{$table:r.$table,value:r.row[r.column.field],row:r.row,column:{...r.column,...null==(n=r.column.editRender)?void 0:n.props},index:r.rowIndex>-1?r.rowIndex:r.$rowIndex}}function l(e={}){o("formChange",{...i(),...r(e)})}function u(e={}){o("formClick",{...i(),...r(e)})}return{emitFormChange:function(){l()},emitFormClick:function(){u()},emitFormChangeWithParams:l,emitFormClickWithParams:u}}function $(e){var n;return null==(n=e.editRender)?void 0:n.props}const x=Object.freeze({createDefaultRenderCell:function(){return function({props:e},{row:t,column:r}){if("bottom"!==(null==e?void 0:e.separatePlacement))return c(t[r.field]);const i=n(T),l=R(i,t);if(!l)return c(t[r.field]);const{originalData:u=t,isLastRow:a}=l;return c(a?u[r.field]:null);function c(e){return[o("span",{title:j(r,e),class:"iho-table__colorAndIcon"},[e])]}}},createRenderEdit:function(e){return function({props:n},t){return e({...t,fieldItem:n||{},...O(t)})}},isEditableColumn(e,n){var t;return!1!==(null==(t=e.editConfig)?void 0:t.showIcon)&&n.editRender&&!1!==n.editRender.enabled},hasFilter(e){if(U(e))return!0;let n=e.fieldSetting;return f(n)&&(n=i(n||"")),p(n)&&((t=n).notParticipatingSearch!==g.POSITIVE&&"manual"===(null==(r=t.mapping)?void 0:r.type));var t,r},hasDateFiler(e){var n;return null==(n=null==e?void 0:e.filterSetting)?void 0:n.daterange}}),N=Object.freeze({isPositive:e=>e===h.POSITIVE||e===g.POSITIVE,isNegative:e=>e===h.NEGATIVE||e===g.NEGATIVE,notPositive:e=>e!==h.POSITIVE&&e!==g.POSITIVE,notNegative:e=>e!==h.NEGATIVE&&e!==g.NEGATIVE});function V(e){return[E.TRANSFORM_WITH_SPAN_METHOD,E.TRANSFORM_TREE_TYPE].includes(`${e.isTree}`)}function W(e){return f(e)&&!!e.match(/^###\{[^{}]+}$/)}function _(e){try{return JSON.parse(e.replace(/^###/,""))}catch(e){return{}}}function y(e,n){if(e.$__SEPARATE||!n.editRender||!n.editRender.props)return e[n.field];const{fieldSetting:t}=n.editRender.props;if(!f(t))return e[n.field];const{mergedFeildExpression:r}=i(t);return r&&f(r)?r.replace(/#{(.+?)}/g,(function(n,t){let r=t?e[t.trim()]:null;W(r)&&(r=_(r).change_text);return r||(null==r?"--":r)})):e[n.field]}const H=["SEARCH","SELECT","RADIO","CHECKBOX"];function U(e){return e.notParticipatingSearch===h.NEGATIVE&&H.includes(S.getCellType(e))&&m(e.options)&&e.options.length}function j(e,n=""){return"tooltip"!==e.showOverflow&&f(n)?n:""}function M(e,n){var r,o,i;n=t(n)||"";const l=null!=(o=null==(r=e.editRender)?void 0:r.props)?o:{},c=u(n,(null==(i=null==l?void 0:l.componentProps)?void 0:i.valueFormat)||"HH:mm",new Date);return!a(c)}function G(e,n,r){var o,i;const l=null!=(i=null==(o=e.editRender)?void 0:o.props)?i:{};return r=t(r)||"",!a(new Date(r))||f(l.connectField)&&n[l.connectField]&&(l.isStartDate&&c(new Date(r),new Date(n[l.connectField]))<0||l.isEndDate&&c(new Date(r),new Date(n[l.connectField]))>0)}function L(e){var n,t;return(!0===e.variableHeight||"1"===e.variableHeight)&&(null!=(t=null==(n=e.editRender)?void 0:n.name)?t:S.getCellType(e))!==w.SEPARATE}function k(e){const n=e.internalData.tableFullColumn;return!!m(n)&&n.some((e=>{var n,t;return L(null!=(t=null==(n=e.editRender)?void 0:n.props)?t:{})}))}export{x as IhoTableRenderHelper,N as IhoTableStatusHelper,S as IhoTableUtils,C as IhoTableWarn,D as eventListener2EventName,P as eventName2EventListener,A as getColumnRenderWidth,$ as getLowCodeFieldFromField,F as getRowHeight,j as getTitle,U as isCompatibleColumn,G as isInvalidDate,M as isInvalidTime,W as isRichContent,V as isTransformTreeType,L as isVariableHeightColumn,k as isVariableHeightTable,y as parseMergeField,_ as parseRichContent,O as useIhoTableFormEvent,b as useUUIDMap};