{"version":3,"file":"utils.mjs","sources":["../../../../../src/components/ivue-tree/utils.ts"],"sourcesContent":["// type\r\nimport type { SetupContext } from 'vue';\r\nimport type Node from './store/node';\r\nimport type { TreeNodeData, TreeKey, TreeContext } from './types/tree';\r\n\r\nexport const NODE_KEY = '$treeNodeId';\r\n\r\n// 设置一个节点数据标记\r\nexport const markNodeData = (node: Node, data: TreeNodeData): void => {\r\n  // 没有数据\r\n  if (!data || data[NODE_KEY]) {\r\n    return;\r\n  }\r\n\r\n  // 创建一个真正的常量属性\r\n  Object.defineProperty(data, NODE_KEY, {\r\n    value: node.id,\r\n    enumerable: false,\r\n    // 不能在数据属性和访问器属性之间更改\r\n    // 不能被删除\r\n    configurable: false,\r\n    // 不可写入\r\n    writable: false,\r\n  });\r\n};\r\n\r\n// 获取节点的key\r\nexport const getNodeKey = (key: TreeKey, data: TreeNodeData): any => {\r\n  if (!key) {\r\n    return data[NODE_KEY];\r\n  }\r\n\r\n  return data[key];\r\n};\r\n\r\n// 当前点击事件\r\nexport const handleCurrentChange = (\r\n  store: TreeContext['store'],\r\n  emit: SetupContext['emit'],\r\n  setCurrent: () => void\r\n) => {\r\n  // 上一个点击节点\r\n  const preCurrentNode = store.value.currentNode;\r\n  // 设置当前节点\r\n  setCurrent();\r\n\r\n  // 当前点击的节点\r\n  const currentNode = store.value.currentNode;\r\n\r\n  // 点击相同的节点\r\n  if (preCurrentNode === currentNode) {\r\n    return;\r\n  }\r\n\r\n  // 当前选中节点变化时触发的事件\r\n  emit('on-current-change', currentNode ? currentNode.data : null, currentNode);\r\n};\r\n"],"names":[],"mappings":"AAKO,MAAM,QAAW,GAAA,cAAA;AAGX,MAAA,YAAA,GAAe,CAAC,IAAA,EAAY,IAA6B,KAAA;AAEpE,EAAI,IAAA,CAAC,IAAQ,IAAA,IAAA,CAAK,QAAW,CAAA,EAAA;AAC3B,IAAA,OAAA;AAAA,GACF;AAGA,EAAO,MAAA,CAAA,cAAA,CAAe,MAAM,QAAU,EAAA;AAAA,IACpC,OAAO,IAAK,CAAA,EAAA;AAAA,IACZ,UAAY,EAAA,KAAA;AAAA,IAGZ,YAAc,EAAA,KAAA;AAAA,IAEd,QAAU,EAAA,KAAA;AAAA,GACX,CAAA,CAAA;AACH,EAAA;AAGa,MAAA,UAAA,GAAa,CAAC,GAAA,EAAc,IAA4B,KAAA;AACnE,EAAA,IAAI,CAAC,GAAK,EAAA;AACR,IAAA,OAAO,IAAK,CAAA,QAAA,CAAA,CAAA;AAAA,GACd;AAEA,EAAA,OAAO,IAAK,CAAA,GAAA,CAAA,CAAA;AACd,EAAA;AAGO,MAAM,mBAAsB,GAAA,CACjC,KACA,EAAA,IAAA,EACA,UACG,KAAA;AAEH,EAAM,MAAA,cAAA,GAAiB,MAAM,KAAM,CAAA,WAAA,CAAA;AAEnC,EAAW,UAAA,EAAA,CAAA;AAGX,EAAM,MAAA,WAAA,GAAc,MAAM,KAAM,CAAA,WAAA,CAAA;AAGhC,EAAA,IAAI,mBAAmB,WAAa,EAAA;AAClC,IAAA,OAAA;AAAA,GACF;AAGA,EAAA,IAAA,CAAK,mBAAqB,EAAA,WAAA,GAAc,WAAY,CAAA,IAAA,GAAO,MAAM,WAAW,CAAA,CAAA;AAC9E;;;;"}