@aliwind/rc-console-menu
Version:
React component for Alibaba Cloud.
1 lines • 6.84 kB
JSON
{"remainingRequest":"/Users/csr/workspace/open-component/node_modules/thread-loader/dist/cjs.js??ref--9-1!/Users/csr/workspace/open-component/node_modules/@breezr/plugin-typescript/node_modules/ts-loader/index.js??ref--9-2!/Users/csr/workspace/open-component/packages/rc-console-menu/src/ItemDescriptor.tsx","dependencies":[{"path":"/Users/csr/workspace/open-component/packages/rc-console-menu/src/ItemDescriptor.tsx","mtime":1571644356545},{"path":"/Users/csr/workspace/open-component/node_modules/cache-loader/dist/cjs.js","mtime":1571812248602},{"path":"/Users/csr/workspace/open-component/node_modules/thread-loader/dist/cjs.js","mtime":1571812248618},{"path":"/Users/csr/workspace/open-component/node_modules/@breezr/plugin-typescript/node_modules/ts-loader/index.js","mtime":1571882237140}],"contextDependencies":[],"result":["var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport * as S from './styles';\n/**\n * @internal\n */\nexport function mapItemToJSX(item) {\n var key = item.key, label = item.label, _a = item.disabled, disabled = _a === void 0 ? false : _a, _b = item.visible, visible = _b === void 0 ? true : _b, render = item.render, subItems = item.items, navProps = item.navProps;\n if (visible) {\n if (subItems) {\n return (React.createElement(S.SubMenu, __assign({ key: key, label: label }, navProps), subItems.map(mapItemToJSX)));\n }\n return (React.createElement(S.Item, __assign({ key: key, disabled: disabled }, navProps), render ? render(item) : label));\n }\n return null;\n}\n/**\n * 打平嵌套结构,得到由叶子节点组成的数组。\n * 类似于将`[item1, [item2, item3], item4]`变成`[item1, item2, item3, item4]`\n */\n/*\nexport function flattenNestedItems(\n items: IItemDescriptor[]\n): IItemDescriptor[] {\n const result: IItemDescriptor[] = []\n items.forEach(item => {\n if (item.items) {\n // this is a parent\n result.push(...flattenNestedItems(item.items))\n } else {\n // this is a leaf\n result.push(item)\n }\n })\n return result\n}\n*/\n",{"version":3,"file":"/Users/csr/workspace/open-component/packages/rc-console-menu/src/ItemDescriptor.tsx","sourceRoot":"","sources":["/Users/csr/workspace/open-component/packages/rc-console-menu/src/ItemDescriptor.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AA6E7B;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAqB;IAE9C,IAAA,cAAG,EACH,kBAAK,EACL,kBAAgB,EAAhB,qCAAgB,EAChB,iBAAc,EAAd,mCAAc,EACd,oBAAM,EACN,qBAAe,EACf,wBAAQ,CACF;IACR,IAAI,OAAO,EAAE;QACX,IAAI,QAAQ,EAAE;YACZ,OAAO,CACL,oBAAC,CAAC,CAAC,OAAO,aAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,IAAM,QAAQ,GAC5C,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CACjB,CACb,CAAA;SACF;QACD,OAAO,CACL,oBAAC,CAAC,CAAC,IAAI,aAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,IAAM,QAAQ,GAC/C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CACvB,CACV,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH;;;;;;;;;;;;;;;;EAgBE","sourcesContent":["import React from 'react'\nimport { Location } from 'history'\nimport * as S from './styles'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * @public\n */\nexport interface IItemDescriptor {\n /**\n * 菜单项的Id,在一个导航里不允许出现重复的 key\n */\n key: string\n /**\n * 菜单项展示的内容\n */\n label?: React.ReactNode\n /**\n * 是否禁用该菜单项\n */\n disabled?: boolean\n /**\n * 是否渲染该菜单项\n */\n visible?: boolean\n /**\n * 菜单项内容的渲染函数,作用与`label`相同,只不过是通过渲染函数的方式来定义内容\n */\n render?: (item: IItemDescriptor) => React.ReactNode\n /**\n * 子菜单项的声明,传入该prop使得当前item成为一个可折叠节点\n */\n items?: IItemDescriptor[]\n /**\n * 透传给基础组件`<Nav>`或者`<Nav.SubNav>`的props,极少数情况下可能会用到。见【使用结构化声明】demo\n */\n navProps?: any\n}\n\n/**\n * @public\n */\nexport interface IRoutableItemDescriptor extends IItemDescriptor {\n /**\n * 菜单项点击后跳转的路径(应用内跳转),也可以通过函数表达式动态返回需要跳转的 pathname 或 location。\n * 使用该prop,会使得item被渲染成{@link https://reacttraining.com/react-router/web/api/Link | React-Router的Link组件}\n */\n to?:\n | string\n | ((\n context: { match: any; location: Location },\n thisItem: IRoutableItemDescriptor\n ) => string)\n /**\n * 菜单项点击之后跳转的超链接(url 跳转)。\n * 使用该prop,会使得item被渲染成`<a>`\n */\n href?:\n | string\n | ((\n context: { match: any; location: Location },\n thisItem: IRoutableItemDescriptor\n ) => string)\n /**\n * 透传给`<Link>`或者`<a>`的props\n */\n linkProps?: any\n /**\n * 定义匹配路由路径的多个 pattern ,如果 location.pathname 与其中任意一个 pattern 相匹配,则该菜单项被选中。\n * 匹配算法与{@link https://reacttraining.com/react-router/web/api/matchPath | react-router}相同\n */\n activePathPatterns?: string[]\n /**\n * 子菜单项的声明,传入该prop使得当前item成为一个可折叠节点\n */\n items?: IRoutableItemDescriptor[]\n}\n\n/**\n * @internal\n */\nexport function mapItemToJSX(item: IItemDescriptor): React.ReactNode {\n const {\n key,\n label,\n disabled = false,\n visible = true,\n render,\n items: subItems,\n navProps,\n } = item\n if (visible) {\n if (subItems) {\n return (\n <S.SubMenu key={key} label={label} {...navProps}>\n {subItems.map(mapItemToJSX)}\n </S.SubMenu>\n )\n }\n return (\n <S.Item key={key} disabled={disabled} {...navProps}>\n {render ? render(item) : label}\n </S.Item>\n )\n }\n return null\n}\n\n/**\n * 打平嵌套结构,得到由叶子节点组成的数组。\n * 类似于将`[item1, [item2, item3], item4]`变成`[item1, item2, item3, item4]`\n */\n/*\nexport function flattenNestedItems(\n items: IItemDescriptor[]\n): IItemDescriptor[] {\n const result: IItemDescriptor[] = []\n items.forEach(item => {\n if (item.items) {\n // this is a parent\n result.push(...flattenNestedItems(item.items))\n } else {\n // this is a leaf\n result.push(item)\n }\n })\n return result\n}\n*/\n"]}]}