{"version":3,"file":"table2.mjs","sources":["../../../../../../packages/components/cig-table/src/table.ts"],"sourcesContent":["import { reactive, ref } from 'vue'\nimport { ElTable, ElTableColumn } from '@park-ui/components/table'\nimport { ElPagination } from '@park-ui/components/pagination'\nimport { ElButton } from '@park-ui/components/button'\nimport { ElPopover } from '@park-ui/components/popover'\nimport { ElCheckbox, ElCheckboxGroup } from '@park-ui/components/checkbox'\nimport ElColumnPopover from '@park-ui/components/cig-table/src/columnPopover.vue'\nimport ElColumnTooitlp from '@park-ui/components/cig-table/src/columnTooitlp.vue'\nimport { ElTooltip } from '@park-ui/components/tooltip'\nimport { ElIcon } from '@park-ui/components/icon'\nimport { IconNotData } from '@park-ui/components/cig-icon'\nimport type { ComponentInternalInstance, PropType } from 'vue'\nimport type { TableProps } from '@park-ui/components/table/src/table/defaults'\nimport type { ColumnTypes } from '@park-ui/components/cig-table/src/table-column/defaults'\nimport type { PaginationProps } from '@park-ui/components/pagination/src/pagination'\n\nexport interface TablePropTypes<T> extends TableProps<T> {\n    onSelectionChange(selection: any): void\n}\nexport type PaginationPropTypes = Partial<PaginationProps>\nexport type TablePropType<T> = Partial<TablePropTypes<T>>\nexport type ActionType = {\n    showAction: boolean\n    notAdd: boolean\n    notView: boolean\n    notEdit: boolean\n    notDel: boolean\n    notAllDel: boolean\n    notAction: boolean\n    attribute: object\n}\n\n// interface CIGTablePropType {\n//   columns: ColumnTypes[]\n//   tableOption: TablePropType<any>\n//   pageOption: PaginationPropTypes\n//   showPage?: boolean\n//   idKey?: string\n//   defaultSelection: Array<any>\n//   pageStyle: object\n//   showSelection: boolean\n//   showIndex: boolean\n//   actionOption: Partial<ActionType>\n//   selectable: () => boolean\n//   reserveSelection: boolean\n//   showColumn: boolean\n// }\n\nexport default {\n    columns: {\n        type: Array as PropType<ColumnTypes[]>,\n        default: () => [],\n    },\n    tableOption: {\n        type: Object as PropType<TablePropType<any>>,\n        default: {},\n    },\n    pageOption: {\n        type: Object as PropType<PaginationPropTypes>,\n        default: () => ({}),\n    },\n    showPage: {\n        type: Boolean,\n        default: true,\n    },\n    idKey: {\n        type: String,\n        default: 'id',\n    },\n    defaultSelection: {\n        type: Array,\n        default: [],\n    },\n    showSelection: {\n        type: Boolean,\n        default: true,\n    },\n    showIndex: {\n        type: Boolean,\n        default: true,\n    },\n    actionOption: {\n        type: Object,\n    },\n    selectable: {\n        type: Function as PropType<(row: any, index: number) => boolean>,\n    },\n    showColumn: {\n        type: Boolean,\n    },\n    reserveSelection: {\n        type: Boolean,\n    },\n    mode: {\n        type: String,\n        default: ''\n    },\n    placeholder: {\n        type: String,\n        default: '--'\n    }\n}\n\ntype RowType = {\n    row: object\n    column: object\n    $index: number\n}\n\nexport const tableEmits = {\n    'selection-change': (selection: Array<any>, selectionList: Array<any>) =>\n        null,\n    select: (selection: Array<any>, row: any) => null,\n    'select-all': (selection: Array<any>) => null,\n    'current-page': (currentPage: number) => currentPage,\n    'size-change': (sizes: number) => sizes,\n    view: (row: RowType) => row,\n    edit: (row: RowType) => row,\n    del: (row: RowType) => row,\n    add: (evt: MouseEvent) => evt,\n    allDel: (selectionList: any) => selectionList,\n    'update:columns': (columns: any) => columns,\n    'un-checked': () => null,\n}\n\nexport type TableEmits = typeof tableEmits\n\nexport const components = {\n    ElTableColumn,\n    ElTable,\n    ElPagination,\n    ElButton,\n    ElPopover,\n    ElCheckboxGroup,\n    ElCheckbox,\n    ElIcon,\n    ElColumnPopover,\n    ElTooltip,\n    ElColumnTooitlp,\n    IconNotData,\n}\n\nexport const ActionEmits = (instance: ComponentInternalInstance) => {\n    // 默认操作回调\n    const view = (row: RowType) => {\n        instance.emit('view', row)\n    }\n    const edit = (row: RowType) => {\n        instance.emit('edit', row)\n    }\n    const del = (row: RowType) => {\n        instance.emit('del', row)\n    }\n    const add = (evt: MouseEvent) => {\n        instance.emit('add', evt)\n    }\n    const allDel = (selectionList: Array<any>) => {\n        instance.emit('allDel', selectionList)\n    }\n    return {\n        view,\n        edit,\n        del,\n        add,\n        allDel,\n    }\n}\n\n// 支持显示多级数据\nexport const getRealLabel = (row: any, field: any, placeholder: string) => {\n    const filedName = field\n    let label = row[filedName]\n    // if (filedName && !filedName.includes('.')) return label ? label : '-';\n    if (typeof filedName === 'string') {\n        if (filedName.indexOf('.')) {\n            const attrArr = filedName.split('.')\n            label = attrArr.reduce((prev, cur) => {\n                if (prev[cur]) {\n                    return prev[cur]\n                } else {\n                    return placeholder // 默认空字符串\n                }\n            }, row)\n        }\n    }\n    return label ? label : placeholder;\n}\n\nexport const initSelection = (instance: ComponentInternalInstance) => {\n    const props = reactive<any>(instance.props)\n\n    const selectionList = reactive<any>([])\n    const pageRefName = ref<any>(null)\n    const tableRefName = ref()\n    // 改变选中项 存在多选无分页情况\n    const onSelectionChange = (selection: any) => {\n        selection.forEach((item: any) => {\n            const node = findSelection(selectionList, item)\n            if (!node) {\n                selectionList.push(item)\n            }\n        })\n        instance.emit('selection-change', selection, selectionList)\n    }\n    // 单个选中\n    const onSelect = (selection: Array<any>, row: any) => {\n        const { tableOption }: any = instance.props\n        const node = findSelection(selection, row)\n        if (node) {\n            selectionList.push(node)\n        } else {\n            const nodeIndex = findSelectIndex(selectionList, row)\n            selectionList.splice(nodeIndex, 1)\n        }\n        // instance.emit('select', selection, row)\n        if (tableOption.onSelect) tableOption.onSelect(selection, row)\n    }\n\n    const onSelectAll = (selection: Array<any>) => {\n        const { tableOption }: any = instance.props\n        // console.log('select-all', selection)\n        if (selection.length > 0) {\n            selection.forEach((item: any) => {\n                const nodeIndex = findSelectIndex(selectionList, item)\n                if (nodeIndex === -1) selectionList.push(item)\n            })\n        } else {\n            // 删除\n            const deleteList = tableOption.data\n            deleteList.forEach((item: any) => {\n                const nodeIndex = findSelectIndex(selectionList, item)\n                if (nodeIndex > -1) selectionList.splice(nodeIndex, 1)\n            })\n        }\n        if (tableOption.onSelectAll) tableOption.onSelectAll(selection)\n    }\n\n    // 查询对象\n    const findSelection = (arr: any[], row: any) => {\n        return arr.find((x: any) => row[props.idKey] === x[props.idKey])\n    }\n\n    // 查询对象索引\n    const findSelectIndex = (arr: any[], row: any) => {\n        return arr.findIndex((x: any) => row[props.idKey] === x[props.idKey])\n    }\n    // 清空当前页选中\n    const clearSelection = () => {\n        tableRefName.value.clearSelection()\n    }\n\n    // 清空所有/部分选中\n    const clearAllSelection = (data?: any) => {\n        if (data && data.length > 0) {\n            // 并不是所有选中项都被删除\n            for (const i in data) {\n                const index = findSelectIndex(selectionList, data[i])\n                if (index >= 0) selectionList.splice(index, 1)\n            }\n        } else {\n            clearSelection()\n            selectionList.splice(0)\n        }\n    }\n\n    return {\n        onSelect,\n        onSelectAll,\n        onSelectionChange,\n        findSelection,\n        clearSelection,\n        clearAllSelection,\n        selectionList,\n        tableRefName,\n        pageRefName,\n    }\n}\n"],"names":["ElColumnPopover"],"mappings":"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"}