{"version":3,"file":"list.cjs","sources":["../../../../../../packages/components/transfer/src/list.tsx"],"sourcesContent":["import type { CSSProperties, SlotsType, VNode, VNodeTypes } from 'vue';\nimport type { RadioChangeEvent } from '../../radio';\nimport type { TransferItem } from './interface';\nimport { DownOutlined } from '@ant-design/icons-vue';\nimport { classNames, filterEmpty, groupKeysMap, isValidElement, splitAttrs } from '@antdv/utils';\nimport { computed, defineComponent, ref, watchEffect } from 'vue';\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Menu from '../../menu';\nimport ListBody from './ListBody';\nimport { transferListProps } from './props';\nimport Search from './search';\n\nconst defaultRender = () => null;\n\nfunction isRenderResultPlainObject(result: VNode) {\n  return !!(\n    result\n    && !isValidElement(result)\n    && Object.prototype.toString.call(result) === '[object Object]'\n  );\n}\n\nfunction getEnabledItemKeys<RecordType extends TransferItem>(items: RecordType[]) {\n  return items.filter(data => !data.disabled).map(data => data.key);\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'TransferList',\n  inheritAttrs: false,\n  props: transferListProps,\n  // emits: ['scroll', 'itemSelectAll', 'itemRemove', 'itemSelect'],\n  slots: Object as SlotsType<{\n    footer?: any\n    titleText?: any\n    default?: any\n  }>,\n  setup(props, { attrs, slots }) {\n    const filterValue = ref('');\n    const transferNode = ref();\n    const defaultListBodyRef = ref();\n\n    const renderListBody = (renderList: any, props: any) => {\n      let bodyContent = renderList ? renderList(props) : null;\n      const customize = !!bodyContent && filterEmpty(bodyContent).length > 0;\n      if (!customize)\n        bodyContent = <ListBody {...props} ref={defaultListBodyRef} />;\n\n      return {\n        customize,\n        bodyContent,\n      };\n    };\n\n    const renderItemHtml = (item: TransferItem) => {\n      const { renderItem = defaultRender } = props;\n      const renderResult = renderItem(item);\n      const isRenderResultPlain = isRenderResultPlainObject(renderResult);\n      return {\n        renderedText: isRenderResultPlain ? renderResult.value : renderResult,\n        renderedEl: isRenderResultPlain ? renderResult.label : renderResult,\n        item,\n      };\n    };\n\n    const filteredItems = ref([]);\n    const filteredRenderItems = ref([]);\n\n    const matchFilter = (text: string, item: TransferItem) => {\n      const { filterOption } = props;\n      if (filterOption)\n        return filterOption(filterValue.value, item);\n\n      return text.includes(filterValue.value);\n    };\n\n    watchEffect(() => {\n      const fItems = [];\n      const fRenderItems = [];\n\n      props.dataSource.forEach((item) => {\n        const renderedItem = renderItemHtml(item);\n        const { renderedText } = renderedItem;\n\n        // Filter skip\n        if (filterValue.value && filterValue.value.trim() && !matchFilter(renderedText, item))\n          return null;\n\n        fItems.push(item);\n        fRenderItems.push(renderedItem);\n      });\n      filteredItems.value = fItems;\n      filteredRenderItems.value = fRenderItems;\n    });\n\n    const checkStatus = computed(() => {\n      const { checkedKeys } = props;\n      if (checkedKeys.length === 0)\n        return 'none';\n\n      const checkedKeysMap = groupKeysMap(checkedKeys);\n      if (filteredItems.value.every(item => checkedKeysMap.has(item.key) || !!item.disabled))\n        return 'all';\n\n      return 'part';\n    });\n\n    const enabledItemKeys = computed(() => {\n      return getEnabledItemKeys(filteredItems.value);\n    });\n\n    const getNewSelectKeys = (keys, unCheckedKeys) => {\n      return Array.from(new Set([...keys, ...props.checkedKeys])).filter(\n        key => !unCheckedKeys.includes(key),\n      );\n    };\n\n    const getCheckBox = ({ disabled, prefixCls }: { disabled?: boolean, prefixCls?: string }) => {\n      const checkedAll = checkStatus.value === 'all';\n      const checkAllCheckbox = (\n        <Checkbox\n          disabled={props.dataSource?.length === 0 || disabled}\n          checked={checkedAll}\n          indeterminate={checkStatus.value === 'part'}\n          class={`${prefixCls}-checkbox`}\n          onChange={() => {\n            // Only select enabled items\n\n            const keys = enabledItemKeys.value;\n            props.onItemSelectAll(\n              getNewSelectKeys(!checkedAll ? keys : [], checkedAll ? props.checkedKeys : []),\n            );\n          }}\n        />\n      );\n\n      return checkAllCheckbox;\n    };\n\n    const handleFilter = (e: RadioChangeEvent) => {\n      const {\n        target: { value: filter },\n      } = e;\n      filterValue.value = filter;\n      props.handleFilter?.(e);\n    };\n    const handleClear = (e: Event) => {\n      filterValue.value = '';\n      props.handleClear?.(e);\n    };\n\n    const getSelectAllLabel = (selectedCount: number, totalCount: number) => {\n      const { itemsUnit, itemUnit, selectAllLabel } = props;\n      if (selectAllLabel) {\n        return typeof selectAllLabel === 'function'\n          ? selectAllLabel({ selectedCount, totalCount })\n          : selectAllLabel;\n      }\n      const unit = totalCount > 1 ? itemsUnit : itemUnit;\n      return (\n        <>\n          {(selectedCount > 0 ? `${selectedCount}/` : '') + totalCount}\n          {' '}\n          {unit}\n        </>\n      );\n    };\n\n    const notFoundContentEle = computed(() =>\n      Array.isArray(props.notFoundContent)\n        ? props.notFoundContent[props.direction === 'left' ? 0 : 1]\n        : props.notFoundContent,\n    );\n    const getListBody = (\n      prefixCls: string,\n      searchPlaceholder: string,\n      checkedKeys: string[],\n      renderList: Function,\n      showSearch: boolean,\n      disabled: boolean,\n    ) => {\n      const search = showSearch\n        ? (\n            <div class={`${prefixCls}-body-search-wrapper`}>\n              <Search\n                prefixCls={`${prefixCls}-search`}\n                onChange={handleFilter}\n                handleClear={handleClear}\n                placeholder={searchPlaceholder}\n                value={filterValue.value}\n                disabled={disabled}\n              />\n            </div>\n          )\n        : null;\n\n      let bodyNode: VNodeTypes;\n      const { onEvents } = splitAttrs(attrs);\n      const { bodyContent, customize } = renderListBody(renderList, {\n        ...props,\n        filteredItems: filteredItems.value,\n        filteredRenderItems: filteredRenderItems.value,\n        selectedKeys: checkedKeys,\n        ...onEvents,\n      });\n\n      // We should wrap customize list body in a classNamed div to use flex layout.\n      if (customize) {\n        bodyNode = <div class={`${prefixCls}-body-customize-wrapper`}>{bodyContent}</div>;\n      } else {\n        bodyNode = filteredItems.value.length\n          ? (\n              bodyContent\n            )\n          : (\n              <div class={`${prefixCls}-body-not-found`}>{notFoundContentEle.value}</div>\n            );\n      }\n\n      return (\n        <div\n          class={\n            showSearch ? `${prefixCls}-body ${prefixCls}-body-with-search` : `${prefixCls}-body`\n          }\n          ref={transferNode}\n        >\n          {search}\n          {bodyNode}\n        </div>\n      );\n    };\n\n    return () => {\n      const {\n        prefixCls,\n        checkedKeys,\n        disabled,\n        showSearch,\n        searchPlaceholder,\n        selectAll,\n        selectCurrent,\n        selectInvert,\n        removeAll,\n        removeCurrent,\n        renderList,\n        onItemSelectAll,\n        onItemRemove,\n        showSelectAll = true,\n        showRemove,\n        pagination,\n      } = props;\n\n      // Custom Layout\n      const footerDom = slots.footer?.({ ...props });\n\n      const listCls = classNames(prefixCls, {\n        [`${prefixCls}-with-pagination`]: !!pagination,\n        [`${prefixCls}-with-footer`]: !!footerDom,\n      });\n\n      // ================================= List Body =================================\n\n      const listBody = getListBody(\n        prefixCls,\n        searchPlaceholder,\n        checkedKeys,\n        renderList,\n        showSearch,\n        disabled,\n      );\n\n      const listFooter = footerDom ? <div class={`${prefixCls}-footer`}>{footerDom}</div> : null;\n\n      const checkAllCheckbox = !showRemove && !pagination && getCheckBox({ disabled, prefixCls });\n\n      let menu = null;\n      if (showRemove) {\n        menu = (\n          <Menu>\n            {/* Remove Current Page */}\n            {pagination && (\n              <Menu.Item\n                key=\"removeCurrent\"\n                onClick={() => {\n                  const pageKeys = getEnabledItemKeys(\n                    (defaultListBodyRef.value.items || []).map(entity => entity.item),\n                  );\n                  onItemRemove?.(pageKeys);\n                }}\n              >\n                {removeCurrent}\n              </Menu.Item>\n            )}\n\n            {/* Remove All */}\n            <Menu.Item\n              key=\"removeAll\"\n              onClick={() => {\n                onItemRemove?.(enabledItemKeys.value);\n              }}\n            >\n              {removeAll}\n            </Menu.Item>\n          </Menu>\n        );\n      } else {\n        menu = (\n          <Menu>\n            <Menu.Item\n              key=\"selectAll\"\n              onClick={() => {\n                const keys = enabledItemKeys.value;\n                onItemSelectAll(getNewSelectKeys(keys, []));\n              }}\n            >\n              {selectAll}\n            </Menu.Item>\n            {pagination && (\n              <Menu.Item\n                onClick={() => {\n                  const pageKeys = getEnabledItemKeys(\n                    (defaultListBodyRef.value.items || []).map(entity => entity.item),\n                  );\n                  onItemSelectAll(getNewSelectKeys(pageKeys, []));\n                }}\n              >\n                {selectCurrent}\n              </Menu.Item>\n            )}\n            <Menu.Item\n              key=\"selectInvert\"\n              onClick={() => {\n                let availableKeys: string[];\n                if (pagination) {\n                  availableKeys = getEnabledItemKeys(\n                    (defaultListBodyRef.value.items || []).map(entity => entity.item),\n                  );\n                } else {\n                  availableKeys = enabledItemKeys.value;\n                }\n\n                const checkedKeySet = new Set(checkedKeys);\n                const newCheckedKeys: string[] = [];\n                const newUnCheckedKeys: string[] = [];\n\n                availableKeys.forEach((key) => {\n                  if (checkedKeySet.has(key))\n                    newUnCheckedKeys.push(key);\n                  else\n                    newCheckedKeys.push(key);\n                });\n                onItemSelectAll(getNewSelectKeys(newCheckedKeys, newUnCheckedKeys));\n              }}\n            >\n              {selectInvert}\n            </Menu.Item>\n          </Menu>\n        );\n      }\n\n      const dropdown = (\n        <Dropdown class={`${prefixCls}-header-dropdown`} overlay={menu} disabled={disabled}>\n          <DownOutlined />\n        </Dropdown>\n      );\n\n      return (\n        <div class={listCls} style={attrs.style as CSSProperties}>\n          <div class={`${prefixCls}-header`}>\n            {showSelectAll\n              ? (\n                  <>\n                    {checkAllCheckbox}\n                    {dropdown}\n                  </>\n                )\n              : null}\n            <span class={`${prefixCls}-header-selected`}>\n              <span>{getSelectAllLabel(checkedKeys.length, filteredItems.value.length)}</span>\n              <span class={`${prefixCls}-header-title`}>{slots.titleText?.()}</span>\n            </span>\n          </div>\n          {listBody}\n          {listFooter}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defaultRender","isRenderResultPlainObject","result","isValidElement","Object","prototype","toString","call","getEnabledItemKeys","items","filter","data","disabled","map","key","defineComponent","compatConfig","MODE","name","inheritAttrs","props","transferListProps","slots","setup","attrs","filterValue","ref","transferNode","defaultListBodyRef","renderListBody","renderList","bodyContent","customize","filterEmpty","length","_createVNode","ListBody","renderItemHtml","item","renderItem","renderResult","isRenderResultPlain","renderedText","value","renderedEl","label","filteredItems","filteredRenderItems","matchFilter","text","filterOption","includes","watchEffect","fItems","fRenderItems","dataSource","forEach","renderedItem","trim","push","checkStatus","computed","checkedKeys","checkedKeysMap","groupKeysMap","every","has","enabledItemKeys","getNewSelectKeys","keys","unCheckedKeys","Array","from","Set","getCheckBox","prefixCls","checkedAll","checkAllCheckbox","Checkbox","onChange","onItemSelectAll","handleFilter","e","target","handleClear","getSelectAllLabel","selectedCount","totalCount","itemsUnit","itemUnit","selectAllLabel","unit","_Fragment","notFoundContentEle","isArray","notFoundContent","direction","getListBody","searchPlaceholder","showSearch","search","Search","bodyNode","onEvents","splitAttrs","selectedKeys","selectAll","selectCurrent","selectInvert","removeAll","removeCurrent","onItemRemove","showSelectAll","showRemove","pagination","footerDom","footer","listCls","classNames","listBody","listFooter","menu","Menu","default","Item","onClick","pageKeys","entity","availableKeys","checkedKeySet","newCheckedKeys","newUnCheckedKeys","dropdown","Dropdown","DownOutlined","style","titleText"],"mappings":"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"}