{"version":3,"file":"config.mjs","sources":["../../../../../../packages/components/table/src/config.ts"],"sourcesContent":["// @ts-nocheck\r\nimport { h } from 'vue'\r\nimport SgCheckbox from '@sgui-plus/components/checkbox'\r\nimport { SgIcon } from '@sgui-plus/components/icon'\r\nimport { ArrowRight, Loading } from '@sgui-plus/icons-vue'\r\nimport { getProp } from '@sgui-plus/utils'\r\n\r\nimport type { VNode } from 'vue'\r\nimport type { TableColumnCtx } from './table-column/defaults'\r\nimport type { Store } from './store'\r\nimport type { TreeNode } from './table/defaults'\r\n\r\nconst defaultClassNames = {\r\n  selection: 'table-column--selection',\r\n  expand: 'table__expand-column',\r\n}\r\n\r\nexport const cellStarts = {\r\n  default: {\r\n    order: '',\r\n  },\r\n  selection: {\r\n    width: 48,\r\n    minWidth: 48,\r\n    realWidth: 48,\r\n    order: '',\r\n  },\r\n  expand: {\r\n    width: 48,\r\n    minWidth: 48,\r\n    realWidth: 48,\r\n    order: '',\r\n  },\r\n  index: {\r\n    width: 48,\r\n    minWidth: 48,\r\n    realWidth: 48,\r\n    order: '',\r\n  },\r\n}\r\n\r\nexport const getDefaultClassName = (type) => {\r\n  return defaultClassNames[type] || ''\r\n}\r\n\r\n// 这些选项不应该被覆盖\r\nexport const cellForced = {\r\n  selection: {\r\n    renderHeader<T>({ store }: { store: Store<T> }) {\r\n      function isDisabled() {\r\n        return store.states.data.value && store.states.data.value.length === 0\r\n      }\r\n      return h(SgCheckbox, {\r\n        disabled: isDisabled(),\r\n        size: store.states.tableSize.value,\r\n        indeterminate:\r\n          store.states.selection.value.length > 0 &&\r\n          !store.states.isAllSelected.value,\r\n        'onUpdate:modelValue': store.toggleAllSelection,\r\n        modelValue: store.states.isAllSelected.value,\r\n      })\r\n    },\r\n    renderCell<T>({\r\n      row,\r\n      column,\r\n      store,\r\n      $index,\r\n    }: {\r\n      row: T\r\n      column: TableColumnCtx<T>\r\n      store: Store<T>\r\n      $index: string\r\n    }) {\r\n      return h(SgCheckbox, {\r\n        disabled: column.selectable\r\n          ? !column.selectable.call(null, row, $index)\r\n          : false,\r\n        size: store.states.tableSize.value,\r\n        onOnChange: () => {\r\n          store.commit('rowSelectedChanged', row)\r\n        },\r\n        onClick: (event: Event) => event.stopPropagation(),\r\n        modelValue: store.isSelected(row),\r\n      })\r\n    },\r\n    sortable: false,\r\n    resizable: false,\r\n  },\r\n  index: {\r\n    renderHeader<T>({ column }: { column: TableColumnCtx<T> }) {\r\n      return column.label || '#'\r\n    },\r\n    renderCell<T>({\r\n      column,\r\n      $index,\r\n    }: {\r\n      column: TableColumnCtx<T>\r\n      $index: number\r\n    }) {\r\n      let i = $index + 1\r\n      const index = column.index\r\n\r\n      if (typeof index === 'number') {\r\n        i = $index + index\r\n      } else if (typeof index === 'function') {\r\n        i = index($index)\r\n      }\r\n      return h('div', {}, [i])\r\n    },\r\n    sortable: false,\r\n  },\r\n  expand: {\r\n    renderHeader<T>({ column }: { column: TableColumnCtx<T> }) {\r\n      return column.label || ''\r\n    },\r\n    renderCell<T>({\r\n      row,\r\n      store,\r\n      expanded,\r\n    }: {\r\n      row: T\r\n      store: Store<T>\r\n      expanded: boolean\r\n    }) {\r\n      const { ns } = store\r\n      const classes = [ns.e('expand-icon')]\r\n      if (expanded) {\r\n        classes.push(ns.em('expand-icon', 'expanded'))\r\n      }\r\n      const callback = function (e: Event) {\r\n        e.stopPropagation()\r\n        store.toggleRowExpansion(row)\r\n      }\r\n      return h(\r\n        'div',\r\n        {\r\n          class: classes,\r\n          onClick: callback,\r\n        },\r\n        {\r\n          default: () => {\r\n            return [\r\n              h(SgIcon, null, {\r\n                default: () => {\r\n                  return [h(ArrowRight)]\r\n                },\r\n              }),\r\n            ]\r\n          },\r\n        }\r\n      )\r\n    },\r\n    sortable: false,\r\n    resizable: false,\r\n  },\r\n}\r\n\r\nexport function defaultRenderCell<T>({\r\n  row,\r\n  column,\r\n  $index,\r\n}: {\r\n  row: T\r\n  column: TableColumnCtx<T>\r\n  $index: number\r\n}) {\r\n  const property = column.property\r\n  const value = property && getProp(row, property).value\r\n  if (column && column.formatter) {\r\n    return column.formatter(row, column, value, $index)\r\n  }\r\n  return value?.toString?.() || ''\r\n}\r\n\r\nexport function treeCellPrefix<T>(\r\n  {\r\n    row,\r\n    treeNode,\r\n    store,\r\n  }: {\r\n    row: T\r\n    treeNode: TreeNode\r\n    store: Store<T>\r\n  },\r\n  createPlaceholder = false\r\n) {\r\n  const { ns } = store\r\n  if (!treeNode) {\r\n    if (createPlaceholder) {\r\n      return [\r\n        h('span', {\r\n          class: ns.e('placeholder'),\r\n        }),\r\n      ]\r\n    }\r\n    return null\r\n  }\r\n  const ele: VNode[] = []\r\n  const callback = function (e) {\r\n    e.stopPropagation()\r\n    if (treeNode.loading) {\r\n      return\r\n    }\r\n    store.loadOrToggle(row)\r\n  }\r\n  if (treeNode.indent) {\r\n    ele.push(\r\n      h('span', {\r\n        class: ns.e('indent'),\r\n        style: { 'padding-left': `${treeNode.indent}px` },\r\n      })\r\n    )\r\n  }\r\n  if (typeof treeNode.expanded === 'boolean' && !treeNode.noLazyChildren) {\r\n    const expandClasses = [\r\n      ns.e('expand-icon'),\r\n      treeNode.expanded ? ns.em('expand-icon', 'expanded') : '',\r\n    ]\r\n    let icon = ArrowRight\r\n    if (treeNode.loading) {\r\n      icon = Loading\r\n    }\r\n\r\n    ele.push(\r\n      h(\r\n        'div',\r\n        {\r\n          class: expandClasses,\r\n          onClick: callback,\r\n        },\r\n        {\r\n          default: () => {\r\n            return [\r\n              h(\r\n                SgIcon,\r\n                { class: { [ns.is('loading')]: treeNode.loading } },\r\n                {\r\n                  default: () => [h(icon)],\r\n                }\r\n              ),\r\n            ]\r\n          },\r\n        }\r\n      )\r\n    )\r\n  } else {\r\n    ele.push(\r\n      h('span', {\r\n        class: ns.e('placeholder'),\r\n      })\r\n    )\r\n  }\r\n  return ele\r\n}\r\n"],"names":[],"mappings":"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"}