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 • 23 kB
Source Map (JSON)
{"version":3,"file":"ToolBar.cjs","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","vue","mergeArraysByUID","arr1","arr2","mergedArray","uidMap","mergedItem","item","insertIndex","ToolBar","name","components","Draggable","props","emit","handleDataChange","useToolBarTableCols","handleFixedTableColFromSide","ns","useNamespace","t","size","useFormSize","isIndeterminate","getIsIndeterminate","leftCheckedTableColsUids","checkedTableCols","rightCheckedTableColsUids","checkAll","getIsCheckAll","isFullScreen","leftChecked","centerChecked","rightChecked","leftFixedTableColsUids","leftFixedTableCols","centerTableColsUids","is","rightFixedTableColsUids","rightFixedTableCols","leftIndeterminate","centerIndeterminate","rightIndeterminate","watchEffect","values","otherData","cur","column","i","tableCol","data","handleChangeTableCols","label","toolBar","key","handleReset","handleResetFixedTableCols","getContentConfig","sortTableCols","title","titleVisible","checkboxModelValue","dragModelValue","dragChange","default","iconsVue","handleUnfixedTableCol","checkboxChange","dragEnd","checkboxData","handleTableColFixedFromCenter","_slot2","loading","_a","fullScreenElement","_b","CONTENT_CONFIG","getFunctionVisible","elementPlus","handleCommand","dropdown","_slot","val","handleCheckAllChange","resetAll","config","_slot3","reference"],"mappings":"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"}