UNPKG

ideaz-element

Version:

<p align="center"> <a href="" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/logo.svg" alt="Ideaz Element" width="180" style="width: 180px;" /> </a> </p>

1 lines 24 kB
{"version":3,"file":"ToolBar.mjs","sources":["../../../../../packages/element/table/src/ToolBar.tsx"],"sourcesContent":["// import draggable from 'vuedraggable'\nimport { Back, DCaret, FullScreen, Operation, Refresh, Right, VideoPause } from '@element-plus/icons-vue'\nimport { VueDraggable } from 'vue-draggable-plus'\nimport { isFunction, isObject, isValid } from '@ideaz/utils'\nimport type { CheckboxValueType } from 'element-plus'\nimport { ElButton, ElCheckbox, ElCheckboxGroup, ElDivider, ElDropdown, ElDropdownItem, ElDropdownMenu, ElPopover, ElTooltip } from 'element-plus'\nimport type { TableCol } from '../../types'\nimport { useFixedTableCols, useToolBarTableCols } from './hooks'\nimport { toolBarProps } from './props'\n\nfunction mergeArraysByUID(arr1: TableCol[], arr2: TableCol[]) {\n const uidMap: any = {}\n const mergedArray = [...arr2]\n\n arr1.forEach((item: TableCol, index: number) => {\n uidMap[item.__uid!] = index\n })\n\n arr1.forEach((item: TableCol) => {\n if (!mergedArray.some(mergedItem => mergedItem.__uid === item.__uid)) {\n const insertIndex = uidMap[item.__uid!]\n mergedArray.splice(insertIndex, 0, item)\n }\n })\n\n return mergedArray\n}\n\nexport default defineComponent({\n name: 'ToolBar',\n components: {\n Draggable: VueDraggable,\n },\n props: toolBarProps,\n emits: ['columns-change', 'size-change', 'refresh', 'table-cols-change'],\n setup(props, { emit }) {\n const {\n checkedTableCols,\n handleReset,\n handleDataChange,\n } = useToolBarTableCols(props, emit)\n const {\n handleTableColFixedFromCenter,\n leftFixedTableCols,\n rightFixedTableCols,\n leftCheckedTableColsUids,\n rightCheckedTableColsUids,\n handleResetFixedTableCols,\n handleFixedCheckedTableColsChange,\n handleSortTableCols,\n handleUnfixedTableCol,\n handleSideFixedDragChange,\n handleFixedTableColFromSide,\n } = useFixedTableCols(props, emit, checkedTableCols)\n const ns = useNamespace('table-tool-bar')\n const { t } = useLocale()\n const size = useFormSize()\n\n const isIndeterminate = ref(getIsIndeterminate(leftCheckedTableColsUids.value, checkedTableCols.value, rightCheckedTableColsUids.value))\n const checkAll = ref(getIsCheckAll(leftCheckedTableColsUids.value, checkedTableCols.value, rightCheckedTableColsUids.value))\n\n const isFullScreen = ref(false)\n\n function getIsCheckAll(leftChecked: string[], centerChecked: string[], rightChecked: string[]) {\n const leftFixedTableColsUids = leftFixedTableCols.value.map(item => item.__uid!)\n const centerTableColsUids = props.sortTableCols.filter((item: any) => isFunction(item.hide) ? !item.hide() : !item.hide).map(item => item.__uid!)\n const rightFixedTableColsUids = rightFixedTableCols.value.map(item => item.__uid!)\n return (leftFixedTableColsUids.every(item => leftChecked.includes(item)))\n && (centerTableColsUids.every(item => centerChecked.includes(item)))\n && (rightFixedTableColsUids.every(item => rightChecked.includes(item)))\n }\n\n function getIsIndeterminate(leftChecked: string[], centerChecked: string[], rightChecked: string[]) {\n const leftIndeterminate = leftFixedTableCols.value.map(item => item.__uid).some(__uid => leftChecked.includes(__uid!))\n const centerIndeterminate = props.sortTableCols.filter((item: any) => isFunction(item.hide) ? !item.hide() : !item.hide).map(item => item.__uid).some(__uid => centerChecked.includes(__uid!))\n const rightIndeterminate = rightFixedTableCols.value.map(item => item.__uid).some(__uid => rightChecked.includes(__uid!))\n return (leftIndeterminate || centerIndeterminate || rightIndeterminate)\n && !getIsCheckAll(leftChecked, centerChecked, rightChecked)\n && Boolean(leftChecked.length || centerChecked.length || rightChecked.length)\n }\n\n watchEffect(() => {\n isIndeterminate.value = getIsIndeterminate(leftCheckedTableColsUids.value, checkedTableCols.value, rightCheckedTableColsUids.value)\n checkAll.value = getIsCheckAll(leftCheckedTableColsUids.value, checkedTableCols.value, rightCheckedTableColsUids.value)\n })\n\n // center checked table cols\n const handleChangeTableCols = (values: CheckboxValueType[]) => {\n const data: TableCol[] = []\n if (values && values.length > 0) {\n const otherData = props.originFormatTableCols.filter(\n (item: TableCol) =>\n !props.sortTableCols.map((cur: TableCol) => cur.__uid).includes(item.__uid),\n )\n\n props.sortTableCols.forEach((tableCol: TableCol) => {\n values.forEach((value) => {\n if (value === tableCol.__uid)\n data.push(tableCol)\n })\n })\n // need check is fixed\n otherData.forEach((item: TableCol) => {\n const column: TableCol = {\n ...item,\n fixed: leftCheckedTableColsUids.value.includes(item.__uid!) ? 'left' : rightCheckedTableColsUids.value.includes(item.__uid!) ? 'right' : undefined,\n }\n const i = props.originFormatTableCols.findIndex(\n (tableCol: TableCol) => column.__uid === tableCol.__uid,\n )\n if (i > -1)\n data.splice(i, 0, column)\n })\n }\n emit('columns-change', data)\n }\n\n const handleCheckAllChange = (val: CheckboxValueType) => {\n checkedTableCols.value = val ? props.sortTableCols.map((item: TableCol) => item.__uid!) : []\n handleChangeTableCols(val ? props.sortTableCols.map((item: TableCol) => item.__uid!) : [])\n }\n\n const handleCheckedTableColsChange = (val: CheckboxValueType[]) => {\n handleChangeTableCols(val)\n }\n\n const TABLE_SIZE_LIST = [\n {\n label: t('common.default'),\n size: 'default',\n },\n {\n label: t('table.loose'),\n size: 'large',\n },\n {\n label: t('table.compact'),\n size: 'small',\n },\n ]\n\n const getFunctionVisible = (key: string) => {\n const toolBar = props.toolBar\n if (isObject(toolBar) && isValid(toolBar[key])) {\n return toolBar[key]\n }\n return true\n }\n\n const handleRefresh = () => {\n emit('refresh')\n }\n\n const handleCommand = (command: string) => {\n emit('size-change', command)\n }\n\n const resetAll = () => {\n handleReset()\n handleResetFixedTableCols()\n }\n\n const getContentConfig = (sortTableCols: TableCol[]) => [\n {\n title: t('table.leftFixed'),\n titleVisible: leftFixedTableCols.value.length,\n checkboxModelValue: leftCheckedTableColsUids,\n checkboxChange: (val: CheckboxValueType[]) => handleFixedCheckedTableColsChange('left', val),\n dragModelValue: leftFixedTableCols,\n dragChange: () => handleSideFixedDragChange('left'),\n dragEnd: (dragData: any) => handleSortTableCols(dragData, 'left'),\n checkboxData: leftFixedTableCols.value,\n extraContent: (item: TableCol) => (\n <>\n <ElTooltip effect=\"dark\" content={t('table.unpin')} placement=\"top\" showAfter={300}>\n <ElButton icon={VideoPause} text onClick={() => handleUnfixedTableCol(item)}></ElButton>\n </ElTooltip>\n <ElTooltip effect=\"dark\" content={t('table.rightFixed')} placement=\"top\" showAfter={300}>\n <ElButton icon={Right} text onClick={() => handleFixedTableColFromSide(item, 'right')}></ElButton>\n </ElTooltip>\n </>\n ),\n },\n {\n title: t('table.unfixed'),\n titleVisible: leftFixedTableCols.value.length || rightFixedTableCols.value.length,\n checkboxModelValue: checkedTableCols,\n checkboxChange: handleCheckedTableColsChange,\n dragModelValue: sortTableCols,\n dragChange: () => { },\n dragEnd: () => handleDataChange(mergeArraysByUID(props.sortTableCols, sortTableCols), props.middleTableCols),\n checkboxData: sortTableCols,\n extraContent: (item: TableCol) => (\n <>\n <ElTooltip effect=\"dark\" content={t('table.leftFixed')} placement=\"top\" showAfter={300}>\n <ElButton icon={Back} text onClick={() => handleTableColFixedFromCenter(item, 'left')}></ElButton>\n </ElTooltip>\n <ElTooltip effect=\"dark\" content={t('table.rightFixed')} placement=\"top\" showAfter={300}>\n <ElButton icon={Right} text onClick={() => handleTableColFixedFromCenter(item, 'right')}></ElButton>\n </ElTooltip>\n </>\n ),\n },\n {\n title: t('table.rightFixed'),\n titleVisible: rightFixedTableCols.value.length,\n checkboxModelValue: rightCheckedTableColsUids,\n checkboxChange: (val: CheckboxValueType[]) => handleFixedCheckedTableColsChange('right', val),\n dragModelValue: rightFixedTableCols,\n dragChange: () => handleSideFixedDragChange('right'),\n dragEnd: (dragData: any) => handleSortTableCols(dragData, 'right'),\n checkboxData: rightFixedTableCols.value,\n extraContent: (item: TableCol) => (\n <>\n <ElTooltip effect=\"dark\" content={t('table.leftFixed')} placement=\"top\" showAfter={300}>\n <ElButton icon={Back} text onClick={() => handleFixedTableColFromSide(item, 'left')}></ElButton>\n </ElTooltip>\n <ElTooltip effect=\"dark\" content={t('table.unpin')} placement=\"top\" showAfter={300}>\n <ElButton icon={VideoPause} text onClick={() => handleUnfixedTableCol(item)}></ElButton>\n </ElTooltip>\n </>\n ),\n },\n ]\n\n return () => {\n const loading = props.tableProps?.loading\n const fullScreenElement = props.tableProps?.fullScreenElement\n const sortTableCols = props.sortTableCols.filter((item: TableCol) => isFunction(item.hide) ? !item.hide() : !item.hide)\n const CONTENT_CONFIG = getContentConfig(sortTableCols)\n\n return (\n <div class={ns.b('')}>\n {getFunctionVisible('refresh') && (\n <ElTooltip effect=\"dark\" content={t('common.refresh')} placement=\"top\" showAfter={300}>\n <ElButton v-loading={loading} size={size.value} icon={Refresh} text onClick={handleRefresh}></ElButton>\n </ElTooltip>\n )}\n {getFunctionVisible('density') && (\n <ElTooltip effect=\"dark\" content={t('table.density')} placement=\"top\" showAfter={300}>\n <ElDropdown\n onCommand={handleCommand}\n trigger=\"click\"\n size=\"default\"\n v-slots={{\n dropdown: () => (\n <>\n <ElDropdownMenu>\n {TABLE_SIZE_LIST.map(item => (\n <ElDropdownItem\n command={item.size}\n class={props.size === item.size && 'density-dropdown__active'}\n >\n {item.label}\n </ElDropdownItem>\n ))}\n </ElDropdownMenu>\n </>\n ),\n }}\n >\n <ElButton icon={DCaret} text></ElButton>\n </ElDropdown>\n </ElTooltip>\n )}\n {getFunctionVisible('fullScreen') && (\n <ElTooltip effect=\"dark\" content={isFullScreen.value ? t('common.cancelFullScreen') : t('common.fullScreen')} placement=\"top\" showAfter={300}>\n <z-full-screen el={fullScreenElement || document.getElementsByClassName('z-table__container')[0]} onChange={(val: boolean) => isFullScreen.value = val}>\n <ElButton icon={FullScreen} text size={size.value} />\n </z-full-screen>\n </ElTooltip>\n )}\n {getFunctionVisible('setting') && (\n <ElTooltip effect=\"dark\" content={t('table.columnSetting')} placement=\"top\" showAfter={300}>\n <div>\n <ElPopover\n placement=\"bottom\"\n width=\"190\"\n trigger=\"click\"\n v-slots={{\n reference: () => (\n <ElButton icon={Operation} text size={size.value}></ElButton>\n ),\n }}\n >\n <div class=\"column-popover__inner\">\n <div class=\"column-popover__title\">\n <ElCheckbox\n modelValue={checkAll.value}\n indeterminate={isIndeterminate.value}\n onChange={handleCheckAllChange}\n onUpdate:modelValue={(val: any) => {\n checkAll.value = val\n }}\n size=\"small\"\n >\n {t('table.columnDisplay')}\n </ElCheckbox>\n <a onClick={resetAll} href=\"javascript:;\" class=\"column-popover__reset\">\n {t('common.reset')}\n </a>\n </div>\n <div class=\"column-popover__content\">\n {CONTENT_CONFIG.map((config) => {\n const dragModelValue = (config.dragModelValue as Ref<TableCol[]>).value ? (config.dragModelValue as Ref<TableCol[]>).value : sortTableCols\n return (\n <>\n {config.titleVisible ? <ElDivider>{config.title}</ElDivider> : null}\n <ElCheckboxGroup\n v-model={config.checkboxModelValue.value}\n size=\"small\"\n onChange={config.checkboxChange}\n >\n <draggable\n modelValue={dragModelValue}\n animation={200}\n onChange={config.dragChange}\n onEnd={config.dragEnd}\n ghostClass=\"column-popover-checkbox__drag--ghost\"\n >\n {config.checkboxData.map((item: TableCol) => {\n return (\n <div key={item.__uid} class=\"column-popover-checkbox\">\n <ElCheckbox value={item.__uid} key={item.__uid}>\n {item.label || item.type}\n </ElCheckbox>\n <div class={ns.be('setting-item', 'extra')}>\n {config.extraContent(item)}\n </div>\n </div>\n )\n })}\n </draggable>\n </ElCheckboxGroup>\n </>\n )\n })}\n </div>\n </div>\n </ElPopover>\n </div>\n </ElTooltip>\n )}\n\n </div>\n )\n }\n },\n})\n"],"names":["_isSlot","s","isVNode","mergeArraysByUID","arr1","arr2","mergedArray","uidMap","mergedItem","item","insertIndex","ToolBar","defineComponent","name","components","Draggable","props","emit","handleDataChange","useToolBarTableCols","handleFixedTableColFromSide","ns","useNamespace","t","size","useFormSize","isIndeterminate","ref","getIsIndeterminate","leftCheckedTableColsUids","checkedTableCols","rightCheckedTableColsUids","checkAll","getIsCheckAll","isFullScreen","leftChecked","centerChecked","rightChecked","leftFixedTableColsUids","leftFixedTableCols","centerTableColsUids","isFunction","rightFixedTableColsUids","rightFixedTableCols","leftIndeterminate","centerIndeterminate","rightIndeterminate","watchEffect","values","otherData","cur","column","i","tableCol","data","handleChangeTableCols","label","toolBar","isObject","isValid","key","handleReset","handleResetFixedTableCols","getContentConfig","sortTableCols","title","titleVisible","checkboxModelValue","dragModelValue","dragChange","default","VideoPause","handleUnfixedTableCol","Right","checkboxChange","dragEnd","checkboxData","Back","handleTableColFixedFromCenter","_slot2","loading","_a","fullScreenElement","_b","CONTENT_CONFIG","createVNode","getFunctionVisible","ElTooltip","Refresh","handleCommand","DCaret","dropdown","_slot","val","FullScreen","handleCheckAllChange","resetAll","config","_slot3","ElCheckboxGroup","reference","Operation"],"mappings":"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"}