{"version":3,"file":"className.mjs","sources":["../../../src/cascader/core/className.ts"],"sourcesContent":["import { CascaderContextType, TreeNode, TreeNodeValue } from '../interface';\n\n/**\n * icon Class\n * @param prefix\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getFakeArrowIconClass(\n  prefix: string,\n  STATUS: Record<string, string>,\n  cascaderContext: CascaderContextType,\n) {\n  const { disabled } = cascaderContext;\n  return [\n    `${prefix}-cascader__icon`,\n    {\n      [STATUS.disabled]: disabled,\n    },\n  ];\n}\n\n/**\n * 通用状态\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getNodeStatusClass(\n  node: TreeNode,\n  STATUS: Record<string, string>,\n  cascaderContext: CascaderContextType,\n) {\n  const { checkStrictly, multiple, value, max } = cascaderContext;\n  const expandedActive =\n    (!checkStrictly && node.expanded && (multiple ? !node.isLeaf() : true)) || (checkStrictly && node.expanded);\n\n  const isLeaf = node.isLeaf();\n\n  const isDisabled = node.disabled || (multiple && (value as TreeNodeValue[]).length >= max && max !== 0);\n\n  const isSelected = node.checked || (multiple && !checkStrictly && node.expanded && !isLeaf);\n\n  return [\n    {\n      [STATUS.selected]: !isDisabled && isSelected,\n      [STATUS.expanded]: !isDisabled && expandedActive,\n      [STATUS.disabled]: isDisabled,\n    },\n  ];\n}\n\n/**\n * 子节点状态\n * @param prefix\n * @param node\n * @param SIZE\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemClass(\n  prefix: string,\n  node: TreeNode,\n  SIZE: Record<string, string>,\n  STATUS: Record<string, string>,\n  cascaderContext: CascaderContextType,\n) {\n  const { size } = cascaderContext;\n  return [\n    `${prefix}-cascader__item`,\n    ...getNodeStatusClass(node, STATUS, cascaderContext),\n    SIZE[size],\n    {\n      [`${prefix}-cascader__item--with-icon`]: !!node.children,\n      [`${prefix}-cascader__item--leaf`]: node.isLeaf(),\n    },\n  ];\n}\n\n/**\n * 子节点icon状态\n * @param prefix\n * @param node\n * @param STATUS\n * @param cascaderContext\n * @returns\n */\nexport function getCascaderItemIconClass(\n  prefix: string,\n  node: TreeNode,\n  STATUS: Record<string, string>,\n  cascaderContext: CascaderContextType,\n) {\n  return [`${prefix}-cascader__item-icon`, `${prefix}-icon`, ...getNodeStatusClass(node, STATUS, cascaderContext)];\n}\n"],"names":[],"mappings":";;;;;;;;;;;AASO,SAAA,qBAAA,CAAA,MAAA,EAAA,MAAA,EAAA,eAAA,EAAA;AAKC,EAAA,IAAA,QAAA,GAAA,eAAA,CAAA,QAAA,CAAA;AACC,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,CAAA,MAAA,EAAA,iBAAA,CAAA,EAAA,eAAA,CAAA,EAAA,EAAA,MAAA,CAAA,QAAA,EAAA,QAAA,CAAA,CAAA,CAAA;AAMT,CAAA;AASO,SAAA,kBAAA,CAAA,IAAA,EAAA,MAAA,EAAA,eAAA,EAAA;AAIL,EAAA,IAAA,KAAA,CAAA;AACA,EAAA,IAAA,aAAA,GAAA,eAAA,CAAA,aAAA;;;;;AAIM,EAAA,IAAA,MAAA,GAAA,IAAA,CAAA,MAAA,EAAA,CAAA;AAEN,EAAA,IAAA,UAAA,GAAA,IAAA,CAAA,QAAA,IAAA,QAAA,IAAA,KAAA,CAAA,MAAA,IAAA,GAAA,IAAA,GAAA,KAAA,CAAA,CAAA;AAEM,EAAA,IAAA,UAAA,GAAA,IAAA,CAAA,OAAA,IAAA,QAAA,IAAA,CAAA,aAAA,IAAA,IAAA,CAAA,QAAA,IAAA,CAAA,MAAA,CAAA;AAEC,EAAA,OAAA,EAAA,KAAA,GAAA,EAAA,EAAA,eAAA,CAAA,KAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CAAA,UAAA,IAAA,UAAA,CAAA,EAAA,eAAA,CAAA,KAAA,EAAA,MAAA,CAAA,QAAA,EAAA,CAAA,UAAA,IAAA,cAAA,CAAA,EAAA,eAAA,CAAA,KAAA,EAAA,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA,EAAA,KAAA,EAAA,CAAA;AAOT,CAAA;AAWO,SAAA,oBAAA,CAAA,MAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,eAAA,EAAA;AAML,EAAA,IAAA,KAAA,CAAA;AACM,EAAA,IAAA,IAAA,GAAA,eAAA,CAAA,IAAA,CAAA;;AAUR,CAAA;AAUO,SAAA,wBAAA,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,eAAA,EAAA;AAME,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,CAAA,MAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,CAAA,MAAA,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA,MAAA,CAAA,kBAAA,CAAA,kBAAA,CAAA,IAAA,EAAA,MAAA,EAAA,eAAA,CAAA,CAAA,CAAA,CAAA;AACT;;;;"}