UNPKG

song-ui-u

Version:

vue3 + js的PC前端组件库

1 lines 6.86 kB
{"version":3,"file":"column.cjs","sources":["../../../../../packages/components/table/src/column.jsx"],"sourcesContent":["import { defineComponent, inject } from \"vue\";\r\nimport { XCheckbox, XIcon } from \"@ui-library/components\";\r\nimport { ChevronRight, ChevronDown } from \"song-ui-pro-icon\";\r\n\r\nexport const setColumn = (column) => {\r\n return defineComponent({\r\n name: \"x-column\",\r\n setup(props, { slots }) {\r\n const renderSelection = () => {\r\n if (!column.row) {\r\n return (\r\n <XCheckbox\r\n size=\"small\"\r\n checked={column.isAllSelected?.value}\r\n onChange={(e) => column.onSelectAll?.(e)}\r\n indeterminate={column.indeterminate?.value}\r\n />\r\n );\r\n }\r\n\r\n const children = column.getAllChildren?.(column.row) || [];\r\n const hasSelectedChildren = children.some((child) =>\r\n column.isSelected?.(child)\r\n );\r\n const allChildrenSelected =\r\n children.length > 0 &&\r\n children.every((child) => column.isSelected?.(child));\r\n\r\n return (\r\n <XCheckbox\r\n size=\"small\"\r\n checked={column.isSelected?.(column.row)}\r\n onChange={() => column.onSelect?.(column.row)}\r\n disabled={!column.column.selectable?.(column.row)}\r\n indeterminate={\r\n children.length > 0 && hasSelectedChildren && !allChildrenSelected\r\n }\r\n />\r\n );\r\n };\r\n\r\n const renderContent = () => {\r\n if (column.column.type === \"selection\") {\r\n return renderSelection();\r\n }\r\n\r\n const content = column.column.slots\r\n ? column.column.slots({ row: column.row })\r\n : column.row[column.column.prop];\r\n\r\n const firstNonSelectionColumn = column.columns.find(\r\n (col) => col.type !== \"selection\"\r\n );\r\n if (column.column.prop === firstNonSelectionColumn?.prop) {\r\n return (\r\n <div\r\n style={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n paddingLeft: `${column.level * 6}px`,\r\n }}\r\n >\r\n {!column.hasChildren && column.level > 0 && <span></span>}\r\n {content}\r\n {column.hasChildren && (\r\n <>\r\n {column.isExpanded ? (\r\n <XIcon\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n column.onExpand();\r\n }}\r\n >\r\n <ChevronDown />\r\n </XIcon>\r\n ) : (\r\n <XIcon\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n column.onExpand();\r\n }}\r\n >\r\n <ChevronRight />\r\n </XIcon>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n return content;\r\n };\r\n\r\n return () => renderContent();\r\n },\r\n });\r\n};\r\n"],"names":["setColumn","column","defineComponent","name","setup","props","slots","renderSelection","row","_createVNode","XCheckbox","isAllSelected","value","e","onSelectAll","indeterminate","children","getAllChildren","hasSelectedChildren","some","child","isSelected","allChildrenSelected","length","every","onChange","onSelect","selectable","renderContent","type","content","prop","firstNonSelectionColumn","columns","find","col","display","alignItems","paddingLeft","level","hasChildren","_Fragment","isExpanded","XIcon","stopPropagation","onExpand","default","ChevronDown","ChevronRight"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAMA,YAAaC,CAAW,MAAA,KAAA;AACnC,EAAA,uBAAuBC,mBAAA,CAAA;AAAA,IACrBC,IAAM,EAAA,UAAA;AAAA,IACNC,MAAMC,KAAO,EAAA;AAAA,MAAEC,KAAAA;AAAAA,KAAS,EAAA;AACtB,MAAA,MAAMC,kBAAkBA,MAAM;AAC5B,QAAI,IAAA,CAACN,OAAOO,GAAK,EAAA;AACf,UAAA,OAAAC,gBAAAC,iBAAA,EAAA;AAAA,YAAA,MAAA,EAAA,OAAA;AAAA,YAAA,SAAA,EAGaT,OAAOU,aAAeC,EAAAA,KAAAA;AAAAA,YAAK,UACzBC,EAAAA,CAAAA,CAAAA,KAAMZ,MAAOa,CAAAA,WAAAA,GAAcD,CAAC,CAAA;AAAA,YAAC,eAAA,EACzBZ,OAAOc,aAAeH,EAAAA,KAAAA;AAAAA,aAAK,IAAA,CAAA,CAAA;AAAA,SAGhD;AAEA,QAAA,MAAMI,WAAWf,MAAOgB,CAAAA,cAAAA,GAAiBhB,MAAOO,CAAAA,GAAG,KAAK,EAAE,CAAA;AAC1D,QAAA,MAAMU,sBAAsBF,QAASG,CAAAA,IAAAA,CAAMC,WACzCnB,MAAOoB,CAAAA,UAAAA,GAAaD,KAAK,CAC3B,CAAA,CAAA;AACA,QAAME,MAAAA,mBAAAA,GACJN,QAASO,CAAAA,MAAAA,GAAS,CAClBP,IAAAA,QAAAA,CAASQ,MAAOJ,CAAUnB,KAAAA,KAAAA,MAAAA,CAAOoB,UAAaD,GAAAA,KAAK,CAAC,CAAA,CAAA;AAEtD,QAAA,OAAAX,gBAAAC,iBAAA,EAAA;AAAA,UAAA,MAAA,EAAA,OAAA;AAAA,UAAA,SAGaT,EAAAA,MAAAA,CAAOoB,UAAapB,GAAAA,MAAAA,CAAOO,GAAG,CAAA;AAAA,UAAC,UAC9BiB,EAAAA,MAAMxB,MAAOyB,CAAAA,QAAAA,GAAWzB,OAAOO,GAAG,CAAA;AAAA,UAAC,YACnC,CAACP,MAAAA,CAAOA,MAAO0B,CAAAA,UAAAA,GAAa1B,OAAOO,GAAG,CAAA;AAAA,UAAC,eAE/CQ,EAAAA,QAAAA,CAASO,MAAS,GAAA,CAAA,IAAKL,uBAAuB,CAACI,mBAAAA;AAAAA,WAAmB,IAAA,CAAA,CAAA;AAAA,OAI1E,CAAA;AAEA,MAAA,MAAMM,gBAAgBA,MAAM;AAC1B,QAAI3B,IAAAA,MAAAA,CAAOA,MAAO4B,CAAAA,IAAAA,KAAS,WAAa,EAAA;AACtC,UAAA,OAAOtB,eAAgB,EAAA,CAAA;AAAA,SACzB;AAEA,QAAA,MAAMuB,UAAU7B,MAAOA,CAAAA,MAAAA,CAAOK,KAC1BL,GAAAA,MAAAA,CAAOA,OAAOK,KAAM,CAAA;AAAA,UAAEE,KAAKP,MAAOO,CAAAA,GAAAA;AAAAA,SAAK,CACvCP,GAAAA,MAAAA,CAAOO,GAAIP,CAAAA,MAAAA,CAAOA,OAAO8B,IAAI,CAAA,CAAA;AAEjC,QAAA,MAAMC,0BAA0B/B,MAAOgC,CAAAA,OAAAA,CAAQC,KAC5CC,CAAQA,GAAAA,KAAAA,GAAAA,CAAIN,SAAS,WACxB,CAAA,CAAA;AACA,QAAA,IAAI5B,MAAOA,CAAAA,MAAAA,CAAO8B,IAASC,KAAAA,uBAAAA,EAAyBD,IAAM,EAAA;AACxD,UAAA,OAAAtB,gBAAA,KAAA,EAAA;AAAA,YAAA,OAEW,EAAA;AAAA,cACL2B,OAAS,EAAA,MAAA;AAAA,cACTC,UAAY,EAAA,QAAA;AAAA,cACZC,WAAa,EAAA,CAAA,EAAGrC,MAAOsC,CAAAA,KAAAA,GAAQ,CAAC,CAAA,EAAA,CAAA;AAAA,aAClC;AAAA,WAAC,EAAA,CAEA,CAACtC,MAAAA,CAAOuC,eAAevC,MAAOsC,CAAAA,KAAAA,GAAQ,CAAC9B,IAAAA,eAAAA,oBACvCqB,EAAAA,OAAAA,EACA7B,MAAOuC,CAAAA,WAAAA,IAAW/B,eAAAgC,CAAAA,YAAAA,EAEdxC,MAAAA,CAAAA,MAAAA,CAAOyC,UAAUjC,GAAAA,eAAAA,CAAAkC,WAAA,EAAA;AAAA,YAAA,WAEJ9B,CAAM,CAAA,KAAA;AACdA,cAAAA,CAAAA,CAAE+B,eAAgB,EAAA,CAAA;AAClB3C,cAAAA,MAAAA,CAAO4C,QAAS,EAAA,CAAA;AAAA,aAClB;AAAA,WAAC,EAAA;AAAA,YAAAC,SAAAA,MAAArC,CAAAA,gBAAAsC,iBAAA,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA;AAAA,WAAAtC,CAAAA,GAAAA,eAAAA,CAAAkC,WAAA,EAAA;AAAA,YAAA,WAMS9B,CAAM,CAAA,KAAA;AACdA,cAAAA,CAAAA,CAAE+B,eAAgB,EAAA,CAAA;AAClB3C,cAAAA,MAAAA,CAAO4C,QAAS,EAAA,CAAA;AAAA,aAClB;AAAA,WAAC,EAAA;AAAA,YAAAC,SAAAA,MAAArC,CAAAA,gBAAAuC,kBAAA,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA;AAAA,WAAA,CAIJ,CAEJ,CAAA,CAAA,CAAA,CAAA;AAAA,SAGP;AAEA,QAAOlB,OAAAA,OAAAA,CAAAA;AAAAA,OACT,CAAA;AAEA,MAAA,OAAO,MAAMF,aAAc,EAAA,CAAA;AAAA,KAC7B;AAAA,GACD,CAAA,CAAA;AACH;;;;"}