UNPKG

tdesign-mobile-vue

Version:
1 lines 19.8 kB
{"version":3,"file":"tree-node-model.mjs","sources":["../../../../node_modules/lodash/_basePickBy.js","../../../../node_modules/lodash/_baseHasIn.js","../../../../node_modules/lodash/_hasPath.js","../../../../node_modules/lodash/hasIn.js","../../../../node_modules/lodash/_basePick.js","../../../../node_modules/lodash/pick.js","../../../../src/_common/js/tree-v1/tree-node-model.ts"],"sourcesContent":["var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n","var basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n","import isUndefined from 'lodash/isUndefined';\nimport isBoolean from 'lodash/isBoolean';\nimport pick from 'lodash/pick';\nimport omit from 'lodash/omit';\nimport get from 'lodash/get';\nimport { TreeNode } from './tree-node';\nimport { OptionData } from '../common';\nimport {\n TreeNodeValue,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n TypeTreeItem,\n TreeNodeModelProps,\n} from './types';\nimport log from '../log/log';\n\n// 获取节点需要暴露的属性\nfunction getExposedProps(node: TreeNode): TreeNodeModelProps {\n const props = pick(node, [\n 'value',\n 'label',\n 'data',\n 'actived',\n 'expanded',\n 'checked',\n 'indeterminate',\n 'loading',\n ]) as TreeNodeModelProps;\n return props;\n}\n\n// 封装对外暴露的对象\nexport function createNodeModel(node: TreeNode): TypeTreeNodeModel {\n const props = getExposedProps(node);\n\n const model: TypeTreeNodeModel = {\n ...props,\n\n /**\n * 获取节点所处层级\n * @return number 节点层级序号\n */\n getLevel() {\n return node.getLevel();\n },\n\n /**\n * 获取节点在父节点的子节点列表中的位置\n * - 如果没有父节点,则获取节点在根节点列表的位置\n * @return number 节点位置序号\n */\n getIndex() {\n return node.getIndex();\n },\n\n /**\n * 是否为兄弟节点中的第一个节点\n * @return boolean 是否为第一个节点\n */\n isFirst() {\n return node.isFirst();\n },\n\n /**\n * 是否为兄弟节点中的最后一个节点\n * @return boolean 是否为最后一个节点\n */\n isLast() {\n return node.isLast();\n },\n\n /**\n * 是否为叶子节点,叶子节点没有子节点\n * @return boolean 是否为叶子节点\n */\n isLeaf() {\n return node.isLeaf();\n },\n\n /**\n * 在当前节点之前插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n insertBefore(newData: TypeTreeItem) {\n return node.insertBefore(newData);\n },\n\n /**\n * 在当前节点之后插入节点\n * @param {object} newData 要插入的节点或者数据\n * @return void\n */\n insertAfter(newData: TypeTreeItem) {\n return node.insertAfter(newData);\n },\n\n /**\n * 追加节点数据\n * @param {object | object[]} data 节点数据\n * @return void\n */\n appendData(data: TypeTreeNodeData | TypeTreeNodeData[]) {\n return node.append(data);\n },\n\n /**\n * 返回路径节点\n * - 路径节点包含自己在内\n * - 节点顺序与父级节点顺序相反,从根到当前\n * @return TreeNodeModel[] 路径节点数组\n */\n getPath(): TypeTreeNodeModel[] {\n const nodes = node.getPath();\n return nodes.map((item: TreeNode) => item.getModel());\n },\n\n /**\n * 获取本节点的父节点\n * @return TreeNodeModel 父节点\n */\n getParent(): TypeTreeNodeModel {\n return node.parent?.getModel();\n },\n\n /**\n * 获取所有父级节点\n * - 顺序为从当前到根\n * @return TreeNodeModel[] 父级节点数组\n */\n getParents(): TypeTreeNodeModel[] {\n const nodes = node.getParents();\n return nodes.map((item: TreeNode) => item.getModel());\n },\n\n /**\n * 获取本节点的根节点\n * @return TreeNodeModel 根节点\n */\n getRoot(): TypeTreeNodeModel {\n const root = node.getRoot();\n return root?.getModel();\n },\n\n /**\n * 获取所有兄弟节点,包含自己在内\n * @return TreeNodeModel[] 兄弟节点数组\n */\n getSiblings(): TypeTreeNodeModel[] {\n const nodes = node.getSiblings();\n return nodes.map((item: TreeNode) => item.getModel());\n },\n\n /**\n * 获取当前节点的子节点\n * @param {boolean} deep 是否获取所有深层子节点\n * @return TreeNodeModel[] 子节点数组\n */\n getChildren(deep?: boolean): boolean | TypeTreeNodeModel[] {\n let childrenModel: boolean | TypeTreeNodeModel[] = false;\n const { children } = node;\n if (Array.isArray(children)) {\n if (children.length > 0) {\n if (deep) {\n const nodes = node.walk();\n nodes.shift();\n childrenModel = nodes.map((item) => item.getModel());\n } else {\n childrenModel = children.map((item) => item.getModel());\n }\n } else {\n childrenModel = false;\n }\n } else if (isBoolean(children)) {\n childrenModel = children;\n }\n return childrenModel;\n },\n\n /**\n * 移除节点\n * - 提供 value 参数,移除本节点子节点中的节点\n * - 不提供 value 参数,移除自己\n * @param {string} value 目标节点值\n * @return void\n */\n remove(value?: TreeNodeValue) {\n if (!value) {\n node.remove();\n return;\n }\n\n const { tree } = node;\n const targetNode = tree.getNode(value);\n if (!targetNode) {\n log.warnOnce('Tree', `\\`${value}\\` is not exist`);\n return;\n }\n\n const parents = targetNode.getParents();\n const parentValues = parents.map((pnode) => (pnode.value));\n if (parentValues.indexOf(node.value) < 0) {\n log.warnOnce('Tree', `\\`${value}\\` is not a childNode of current node`);\n return;\n }\n targetNode.remove();\n },\n\n /**\n * 设置本节点携带的元数据\n * @param {object} data 节点数据\n * @return void\n */\n setData(data: OptionData) {\n // 详细细节可见 https://github.com/Tencent/tdesign-common/issues/655\n const _data = omit(data, ['children', 'value', 'label']);\n const { keys } = node.tree.config;\n const dataValue = data[keys?.value || 'value'];\n const dataLabel = data[keys?.label || 'label'];\n if (!isUndefined(dataValue)) _data.value = dataValue;\n if (!isUndefined(dataLabel)) _data.label = dataLabel;\n\n Object.assign(node.data, _data);\n Object.assign(node, _data);\n },\n };\n\n return model;\n}\n\n/**\n * 同步节点属性到封装对象\n * @param {TreeNodeModel} 节点封装对象\n * @param {object} data 节点数据\n * @return void\n */\nexport function updateNodeModel(model: TypeTreeNodeModel, node: TreeNode) {\n // 同步节点属性\n const props = getExposedProps(node);\n Object.assign(model, props);\n}\n"],"names":["baseGet","require$$0","baseSet","require$$1","castPath","require$$2","basePickBy","object","paths","predicate","index","length","result","path","value","_basePickBy","baseHasIn","key","Object","_baseHasIn","isArguments","isArray","isIndex","require$$3","isLength","require$$4","toKey","require$$5","hasPath","hasFunc","_hasPath","hasIn","hasIn_1","basePick","_basePick","flatRest","pick","pick_1","getExposedProps","node","props","createNodeModel","model","_objectSpread","getLevel","getIndex","isFirst","isLast","isLeaf","insertBefore","newData","insertAfter","appendData","data","append","getPath","nodes","map","item","getModel","getParent","_node$parent","parent","getParents","getRoot","root","getSiblings","getChildren","deep","childrenModel","children","Array","walk","shift","isBoolean","remove","tree","targetNode","getNode","log","warnOnce","concat","parents","parentValues","pnode","indexOf","setData","_data","omit","keys","config","dataValue","dataLabel","label","isUndefined","assign","updateNodeModel"],"mappings":"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"}