bi-open-menu-sdk
Advanced tools
Comparing version
@@ -1,4 +0,42 @@ | ||
export { I18n, getStringRealLength, getAliasName, formatNumberWithConfig, formatNumber, transposeData, LATEST_VERSION, CHANGE_LOGS, revisal, OLDEST_VERSION, getRivisalRange, } from 'bi-open'; | ||
export { Interfaces } from './interfaces'; | ||
export { CHANGE_LOGS, I18n, Interfaces, LATEST_VERSION, OLDEST_VERSION, formatNumber, formatNumberWithConfig, getAliasName, getRevisalRange, getStringRealLength, revisal, transposeData } from 'bi-open'; | ||
export { createBIComponent } from 'bi-open-react-sdk'; | ||
export { IconDefault, IconLoading, IconWrapper, MenuItem } from './components'; | ||
import * as React from 'react'; | ||
/** | ||
* @flie 自定义菜单默认模板 | ||
*/ | ||
declare const CUSTOM_MENU_TOOLTIP_EVENT = "CUSTOM_MENU_TOOLTIP_EVENT"; | ||
declare type IconComponent<P = React.HTMLAttributes<HTMLElement>> = React.FC<P>; | ||
declare const IconWrapper: IconComponent; | ||
/** 菜单默认图标 */ | ||
declare const IconDefault: IconComponent; | ||
/** 菜单 loading 图标 */ | ||
declare const IconLoading: IconComponent; | ||
/** | ||
* 默认自定义菜单 | ||
* @param param0 | ||
* @returns | ||
*/ | ||
declare const MenuItem: React.FC<{ | ||
/** root element className */ | ||
className?: string; | ||
/** root element style */ | ||
style?: React.StyleHTMLAttributes<HTMLDivElement>['style']; | ||
/** 菜单标题 */ | ||
title?: string | React.ReactNode; | ||
/** 菜单禁用 */ | ||
disabled?: boolean; | ||
/** PC端鼠标 hover 提示 */ | ||
hoverTip?: string; | ||
/** 是否加载中 */ | ||
loading?: boolean; | ||
/** 点击事件 */ | ||
onClick?: (e: React.MouseEvent<HTMLDivElement>) => void; | ||
/** 是否展示标题 */ | ||
showTitle?: boolean; | ||
/** 是否展示图标 */ | ||
showIcon?: boolean; | ||
}>; | ||
export { CUSTOM_MENU_TOOLTIP_EVENT, IconDefault, IconLoading, IconWrapper, MenuItem }; |
@@ -1,165 +0,245 @@ | ||
"use strict"; | ||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard.js"); | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault.js"); | ||
/** | ||
* @flie 自定义菜单默认模板 | ||
*/ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
value: true | ||
}); | ||
exports.MenuItem = exports.IconLoading = exports.IconDefault = exports.IconWrapper = exports.CUSTOM_MENU_RENDERED_EVENT = exports.CUSTOM_MENU_TOOLTIP_EVENT = void 0; | ||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray.js")); | ||
var React = _interopRequireWildcard(require("react")); | ||
require("./index.scss"); | ||
var CUSTOM_MENU_TOOLTIP_EVENT = 'CUSTOM_MENU_TOOLTIP_EVENT'; | ||
exports.CUSTOM_MENU_TOOLTIP_EVENT = CUSTOM_MENU_TOOLTIP_EVENT; | ||
var CUSTOM_MENU_RENDERED_EVENT = 'CUSTOM_MENU_RENDERED_EVENT'; | ||
exports.CUSTOM_MENU_RENDERED_EVENT = CUSTOM_MENU_RENDERED_EVENT; | ||
var IconWrapper = function IconWrapper(props) { | ||
return React.createElement("i", props, React.createElement("svg", { | ||
viewBox: '0 0 1024 1024', | ||
"aria-hidden": "true", | ||
width: "1em", | ||
height: "1em", | ||
fill: "currentColor" | ||
}, props.children)); | ||
function _export(target, all) { | ||
for(var name in all)Object.defineProperty(target, name, { | ||
enumerable: true, | ||
get: all[name] | ||
}); | ||
} | ||
_export(exports, { | ||
CUSTOM_MENU_TOOLTIP_EVENT: function() { | ||
return CUSTOM_MENU_TOOLTIP_EVENT; | ||
}, | ||
IconDefault: function() { | ||
return IconDefault; | ||
}, | ||
IconLoading: function() { | ||
return IconLoading; | ||
}, | ||
IconWrapper: function() { | ||
return IconWrapper; | ||
}, | ||
MenuItem: function() { | ||
return MenuItem; | ||
} | ||
}); | ||
var _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); | ||
function _array_like_to_array(arr, len) { | ||
if (len == null || len > arr.length) len = arr.length; | ||
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i]; | ||
return arr2; | ||
} | ||
function _array_with_holes(arr) { | ||
if (Array.isArray(arr)) return arr; | ||
} | ||
function _getRequireWildcardCache(nodeInterop) { | ||
if (typeof WeakMap !== "function") return null; | ||
var cacheBabelInterop = new WeakMap(); | ||
var cacheNodeInterop = new WeakMap(); | ||
return (_getRequireWildcardCache = function(nodeInterop) { | ||
return nodeInterop ? cacheNodeInterop : cacheBabelInterop; | ||
})(nodeInterop); | ||
} | ||
function _interop_require_wildcard(obj, nodeInterop) { | ||
if (!nodeInterop && obj && obj.__esModule) { | ||
return obj; | ||
} | ||
if (obj === null || typeof obj !== "object" && typeof obj !== "function") { | ||
return { | ||
default: obj | ||
}; | ||
} | ||
var cache = _getRequireWildcardCache(nodeInterop); | ||
if (cache && cache.has(obj)) { | ||
return cache.get(obj); | ||
} | ||
var newObj = { | ||
__proto__: null | ||
}; | ||
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; | ||
for(var key in obj){ | ||
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { | ||
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; | ||
if (desc && (desc.get || desc.set)) { | ||
Object.defineProperty(newObj, key, desc); | ||
} else { | ||
newObj[key] = obj[key]; | ||
} | ||
} | ||
} | ||
newObj.default = obj; | ||
if (cache) { | ||
cache.set(obj, newObj); | ||
} | ||
return newObj; | ||
} | ||
function _iterable_to_array_limit(arr, i) { | ||
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; | ||
if (_i == null) return; | ||
var _arr = []; | ||
var _n = true; | ||
var _d = false; | ||
var _s, _e; | ||
try { | ||
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){ | ||
_arr.push(_s.value); | ||
if (i && _arr.length === i) break; | ||
} | ||
} catch (err) { | ||
_d = true; | ||
_e = err; | ||
} finally{ | ||
try { | ||
if (!_n && _i["return"] != null) _i["return"](); | ||
} finally{ | ||
if (_d) throw _e; | ||
} | ||
} | ||
return _arr; | ||
} | ||
function _non_iterable_rest() { | ||
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); | ||
} | ||
function _sliced_to_array(arr, i) { | ||
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest(); | ||
} | ||
function _unsupported_iterable_to_array(o, minLen) { | ||
if (!o) return; | ||
if (typeof o === "string") return _array_like_to_array(o, minLen); | ||
var n = Object.prototype.toString.call(o).slice(8, -1); | ||
if (n === "Object" && o.constructor) n = o.constructor.name; | ||
if (n === "Map" || n === "Set") return Array.from(n); | ||
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen); | ||
} | ||
var CUSTOM_MENU_TOOLTIP_EVENT = "CUSTOM_MENU_TOOLTIP_EVENT"; | ||
var IconWrapper = function(props) { | ||
return /*#__PURE__*/ _react.createElement("i", props, /*#__PURE__*/ _react.createElement("svg", { | ||
viewBox: "0 0 1024 1024", | ||
"aria-hidden": "true", | ||
width: "1em", | ||
height: "1em", | ||
fill: "currentColor" | ||
}, props.children)); | ||
}; | ||
exports.IconWrapper = IconWrapper; | ||
var IconDefault = function IconDefault(props) { | ||
return React.createElement(IconWrapper, props, React.createElement("path", { | ||
d: "M838.193105 907.620131V1023.99744H582.193745a23.193542 23.193542 0 0 1-23.295942-23.295942v-23.449541c0-82.380594-47.206282-139.468451-139.98045-139.468451-91.85257 0-139.673251 57.599856-139.673251 139.468451v23.449541a23.244742 23.244742 0 0 1-23.295942 23.244742H116.377309L0.0512 1023.99744v-116.428509l0.511999-139.673251a23.244742 23.244742 0 0 1 23.244742-23.142342h46.489483c64.10224 0 116.07011-60.262249 116.07011-139.622051 0-80.0766-51.660671-139.673251-116.07011-139.673251H23.654341a23.244742 23.244742 0 0 1-23.295942-23.244742V302.591244c0-23.80794-0.1024-62.617443-0.307199-116.37731h232.703418v-0.204799C232.754618 80.1278 299.314452 0 418.968553 0c116.735708 0 186.930733 82.278194 186.930732 186.009135v0.1536h116.530909c15.564761 0 54.374264 0 116.377309-0.1536v232.857018h22.630344c91.647771 0 162.610793 81.868595 162.610793 186.213934 0 103.730941-71.167822 186.162735-162.610793 186.162735h-23.244742v116.377309z" | ||
})); | ||
var IconDefault = function(props) { | ||
return /*#__PURE__*/ _react.createElement(IconWrapper, props, /*#__PURE__*/ _react.createElement("path", { | ||
d: "M838.193105 907.620131V1023.99744H582.193745a23.193542 23.193542 0 0 1-23.295942-23.295942v-23.449541c0-82.380594-47.206282-139.468451-139.98045-139.468451-91.85257 0-139.673251 57.599856-139.673251 139.468451v23.449541a23.244742 23.244742 0 0 1-23.295942 23.244742H116.377309L0.0512 1023.99744v-116.428509l0.511999-139.673251a23.244742 23.244742 0 0 1 23.244742-23.142342h46.489483c64.10224 0 116.07011-60.262249 116.07011-139.622051 0-80.0766-51.660671-139.673251-116.07011-139.673251H23.654341a23.244742 23.244742 0 0 1-23.295942-23.244742V302.591244c0-23.80794-0.1024-62.617443-0.307199-116.37731h232.703418v-0.204799C232.754618 80.1278 299.314452 0 418.968553 0c116.735708 0 186.930733 82.278194 186.930732 186.009135v0.1536h116.530909c15.564761 0 54.374264 0 116.377309-0.1536v232.857018h22.630344c91.647771 0 162.610793 81.868595 162.610793 186.213934 0 103.730941-71.167822 186.162735-162.610793 186.162735h-23.244742v116.377309z" | ||
})); | ||
}; | ||
exports.IconDefault = IconDefault; | ||
var IconLoading = function IconLoading(props) { | ||
return React.createElement(IconWrapper, props, React.createElement("path", { | ||
d: "M960 447.008q-11.008-152.992-120-261.504t-260.992-120.512q-16-0.992-27.488 9.504t-11.488 26.496q0 14.016 9.504 24.512t23.488 11.488q55.008 4 107.008 26.016 60.992 26.016 108.992 73.504t74.016 109.504q22.016 51.008 26.016 106.016 0.992 14.016 11.488 23.488t24.512 9.504q15.008 0 26.016-11.008 11.008-12 8.992-27.008z" | ||
})); | ||
var IconLoading = function(props) { | ||
return /*#__PURE__*/ _react.createElement(IconWrapper, props, /*#__PURE__*/ _react.createElement("path", { | ||
d: "M960 447.008q-11.008-152.992-120-261.504t-260.992-120.512q-16-0.992-27.488 9.504t-11.488 26.496q0 14.016 9.504 24.512t23.488 11.488q55.008 4 107.008 26.016 60.992 26.016 108.992 73.504t74.016 109.504q22.016 51.008 26.016 106.016 0.992 14.016 11.488 23.488t24.512 9.504q15.008 0 26.016-11.008 11.008-12 8.992-27.008z" | ||
})); | ||
}; | ||
exports.IconLoading = IconLoading; | ||
var MenuItem = function MenuItem(_ref) { | ||
var className = _ref.className, | ||
style = _ref.style, | ||
title = _ref.title, | ||
_ref$disabled = _ref.disabled, | ||
disabled = _ref$disabled === void 0 ? false : _ref$disabled, | ||
_ref$loading = _ref.loading, | ||
loading = _ref$loading === void 0 ? false : _ref$loading, | ||
hoverTip = _ref.hoverTip, | ||
onClick = _ref.onClick, | ||
_ref$showTitle = _ref.showTitle, | ||
showTitle = _ref$showTitle === void 0 ? true : _ref$showTitle, | ||
_ref$showIcon = _ref.showIcon, | ||
showIcon = _ref$showIcon === void 0 ? true : _ref$showIcon; | ||
var _React$useState = React.useState(''), | ||
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2), | ||
icon = _React$useState2[0], | ||
setIcon = _React$useState2[1]; | ||
var ref = React.useRef(); | ||
React.useEffect(function () { | ||
if (ref.current) { | ||
var _window$globalConfig; | ||
var doc = ref.current.getRootNode(); | ||
var sandboxId = (_window$globalConfig = window.globalConfig) === null || _window$globalConfig === void 0 ? void 0 : _window$globalConfig.sandboxId; | ||
var iconElem = doc.querySelector("#custom-component-icon"); | ||
if (iconElem && iconElem.textContent.indexOf(".icon-".concat(sandboxId)) >= 0) { | ||
setIcon("icon-".concat(sandboxId)); | ||
} | ||
function getComponentInfoByDom(elem) { | ||
if (!elem || elem.nodeName.toUpperCase() === "BODY") { | ||
return { | ||
componentType: "", | ||
name: "" | ||
}; | ||
} | ||
}, []); | ||
var setTip = React.useCallback(function (visible) { | ||
if (ref.current) { | ||
var container = ref.current.closest('[data-custom-component-root]'); | ||
if (hoverTip && typeof hoverTip === 'string' && container) { | ||
container.dispatchEvent(new CustomEvent(CUSTOM_MENU_TOOLTIP_EVENT, { | ||
detail: { | ||
title: hoverTip, | ||
visible: visible | ||
} | ||
})); | ||
} | ||
if (typeof elem.hasAttribute === "function" && elem.hasAttribute("data-custom-component-root")) { | ||
return { | ||
componentType: elem.getAttribute("data-custom-component-type"), | ||
name: elem.getAttribute("data-custom-component-name") | ||
}; | ||
} | ||
}, [hoverTip]); | ||
React.useEffect(function () { | ||
if (ref.current) { | ||
var container = ref.current.closest('[data-custom-component-root]'); | ||
if (container) { | ||
setTimeout(function () { | ||
container.dispatchEvent(new CustomEvent(CUSTOM_MENU_RENDERED_EVENT)); | ||
}, 1000); | ||
} | ||
} | ||
}, []); | ||
var iconContent = React.createElement(IconDefault, { | ||
className: "default-icon" | ||
}); | ||
if (icon) { | ||
iconContent = React.createElement("i", { | ||
className: "upload-icon ".concat(icon) | ||
return getComponentInfoByDom(elem.parentNode); | ||
} | ||
var MenuItem = function(param) { | ||
var className = param.className, style = param.style, title = param.title, _param_disabled = param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, _param_loading = param.loading, loading = _param_loading === void 0 ? false : _param_loading, hoverTip = param.hoverTip, onClick = param.onClick, _param_showTitle = param.showTitle, showTitle = _param_showTitle === void 0 ? true : _param_showTitle, _param_showIcon = param.showIcon, showIcon = _param_showIcon === void 0 ? true : _param_showIcon; | ||
var _React_useState = _sliced_to_array(_react.useState(""), 2), icon = _React_useState[0], setIcon = _React_useState[1]; | ||
var _React_useState1 = _sliced_to_array(_react.useState(""), 2), originTitle = _React_useState1[0], setOriginTitle = _React_useState1[1]; | ||
var ref = _react.useRef(); | ||
_react.useEffect(function() { | ||
if (ref.current) { | ||
var doc = ref.current.getRootNode(); | ||
var iconElem = doc.querySelector("#custom-component-icon"); | ||
var _getComponentInfoByDom = getComponentInfoByDom(ref.current), componentType = _getComponentInfoByDom.componentType, name = _getComponentInfoByDom.name; | ||
setOriginTitle(name); | ||
// 是否有组件 icon | ||
if (iconElem && iconElem.textContent.indexOf(".icon-".concat(componentType)) >= 0) { | ||
setIcon("icon-".concat(componentType)); | ||
} | ||
} | ||
}, []); | ||
// tooltip 在 qbi 实现, 通过事件通信 | ||
var setTip = _react.useCallback(function(visible) { | ||
if (ref.current) { | ||
var container = ref.current.closest("[data-custom-component-root]"); | ||
if (hoverTip && typeof hoverTip === "string" && container) { | ||
container.dispatchEvent(new CustomEvent(CUSTOM_MENU_TOOLTIP_EVENT, { | ||
detail: { | ||
title: hoverTip, | ||
visible: visible | ||
} | ||
})); | ||
} | ||
} | ||
}, [ | ||
hoverTip | ||
]); | ||
// 默认 icon | ||
var iconContent = /*#__PURE__*/ _react.createElement(IconDefault, { | ||
className: "default-icon" | ||
}); | ||
} | ||
if (loading) { | ||
iconContent = React.createElement(IconLoading, { | ||
className: "default-icon animate-cricle" | ||
}); | ||
} | ||
var handleClick = React.useCallback(function (e) { | ||
if (typeof onClick === 'function' && !disabled) { | ||
onClick(e); | ||
// 用户上传的 icon | ||
if (icon) { | ||
iconContent = /*#__PURE__*/ _react.createElement("i", { | ||
className: "upload-icon ".concat(icon) | ||
}); | ||
} | ||
}, [disabled, onClick]); | ||
var handleMouseEnter = React.useCallback(function (e) { | ||
setTip(true); | ||
}, [setTip]); | ||
var handleMouseLeave = React.useCallback(function (e) { | ||
setTip(false); | ||
}, [setTip]); | ||
var viewTitle = React.useMemo(function () { | ||
var _ref2, _ref2$componentInfo; | ||
var originConfigName = (_ref2 = window.globalConfig) === null || _ref2 === void 0 ? void 0 : (_ref2$componentInfo = _ref2.componentInfo) === null || _ref2$componentInfo === void 0 ? void 0 : _ref2$componentInfo.name; | ||
var configName = typeof originConfigName === 'string' ? originConfigName : ''; | ||
var propsTitle = typeof title === 'string' ? title : undefined; | ||
return propsTitle !== null && propsTitle !== void 0 ? propsTitle : configName; | ||
}, [title]); | ||
if (!showTitle && !showIcon) { | ||
return null; | ||
} | ||
return React.createElement("div", { | ||
ref: ref, | ||
className: "custom-card-menu ".concat(disabled ? 'disabled' : '', " ").concat(className || ''), | ||
style: style, | ||
onClick: handleClick, | ||
title: viewTitle, | ||
onMouseOver: handleMouseEnter, | ||
onMouseLeave: handleMouseLeave | ||
}, showIcon ? React.createElement("div", { | ||
className: "custom-card-menu-icon" | ||
}, iconContent) : null, showTitle ? React.createElement("div", { | ||
className: "custom-card-menu-text" | ||
}, viewTitle) : null); | ||
// loading icon | ||
if (loading) { | ||
iconContent = /*#__PURE__*/ _react.createElement(IconLoading, { | ||
className: "default-icon animate-cricle" | ||
}); | ||
} | ||
var handleClick = _react.useCallback(function(e) { | ||
if (typeof onClick === "function" && !disabled) { | ||
onClick(e); | ||
e.stopPropagation(); | ||
} | ||
}, [ | ||
disabled, | ||
onClick | ||
]); | ||
var handleMouseEnter = _react.useCallback(function(e) { | ||
setTip(true); | ||
}, [ | ||
setTip | ||
]); | ||
var handleMouseLeave = _react.useCallback(function(e) { | ||
setTip(false); | ||
}, [ | ||
setTip | ||
]); | ||
var viewTitle = _react.useMemo(function() { | ||
var propsTitle = typeof title === "string" ? title : undefined; | ||
var _ref; | ||
return (_ref = propsTitle !== null && propsTitle !== void 0 ? propsTitle : originTitle) !== null && _ref !== void 0 ? _ref : ""; | ||
}, [ | ||
originTitle, | ||
title | ||
]); | ||
if (!showTitle && !showIcon) { | ||
return null; | ||
} | ||
return /*#__PURE__*/ _react.createElement("div", { | ||
ref: ref, | ||
className: "custom-card-menu ".concat(disabled ? "disabled" : "", " ").concat(className || ""), | ||
style: style, | ||
onClick: handleClick, | ||
title: viewTitle, | ||
onMouseOver: handleMouseEnter, | ||
onMouseLeave: handleMouseLeave | ||
}, showIcon ? /*#__PURE__*/ _react.createElement("div", { | ||
className: "custom-card-menu-icon" | ||
}, iconContent) : null, showTitle ? /*#__PURE__*/ _react.createElement("div", { | ||
className: "custom-card-menu-text" | ||
}, viewTitle) : null); | ||
}; | ||
exports.MenuItem = MenuItem; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
value: true | ||
}); | ||
Object.defineProperty(exports, "I18n", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.I18n; | ||
} | ||
function _export(target, all) { | ||
for(var name in all)Object.defineProperty(target, name, { | ||
enumerable: true, | ||
get: all[name] | ||
}); | ||
} | ||
_export(exports, { | ||
CHANGE_LOGS: function() { | ||
return _biopen.CHANGE_LOGS; | ||
}, | ||
CUSTOM_MENU_TOOLTIP_EVENT: function() { | ||
return _components.CUSTOM_MENU_TOOLTIP_EVENT; | ||
}, | ||
I18n: function() { | ||
return _biopen.I18n; | ||
}, | ||
IconDefault: function() { | ||
return _components.IconDefault; | ||
}, | ||
IconLoading: function() { | ||
return _components.IconLoading; | ||
}, | ||
IconWrapper: function() { | ||
return _components.IconWrapper; | ||
}, | ||
Interfaces: function() { | ||
return _interfaces.Interfaces; | ||
}, | ||
LATEST_VERSION: function() { | ||
return _biopen.LATEST_VERSION; | ||
}, | ||
MenuItem: function() { | ||
return _components.MenuItem; | ||
}, | ||
OLDEST_VERSION: function() { | ||
return _biopen.OLDEST_VERSION; | ||
}, | ||
createBIComponent: function() { | ||
return _biopenreactsdk.createBIComponent; | ||
}, | ||
formatNumber: function() { | ||
return _biopen.formatNumber; | ||
}, | ||
formatNumberWithConfig: function() { | ||
return _biopen.formatNumberWithConfig; | ||
}, | ||
getAliasName: function() { | ||
return _biopen.getAliasName; | ||
}, | ||
getRevisalRange: function() { | ||
return _biopen.getRevisalRange; | ||
}, | ||
getStringRealLength: function() { | ||
return _biopen.getStringRealLength; | ||
}, | ||
revisal: function() { | ||
return _biopen.revisal; | ||
}, | ||
transposeData: function() { | ||
return _biopen.transposeData; | ||
} | ||
}); | ||
Object.defineProperty(exports, "getStringRealLength", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.getStringRealLength; | ||
} | ||
}); | ||
Object.defineProperty(exports, "getAliasName", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.getAliasName; | ||
} | ||
}); | ||
Object.defineProperty(exports, "formatNumberWithConfig", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.formatNumberWithConfig; | ||
} | ||
}); | ||
Object.defineProperty(exports, "formatNumber", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.formatNumber; | ||
} | ||
}); | ||
Object.defineProperty(exports, "transposeData", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.transposeData; | ||
} | ||
}); | ||
Object.defineProperty(exports, "LATEST_VERSION", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.LATEST_VERSION; | ||
} | ||
}); | ||
Object.defineProperty(exports, "CHANGE_LOGS", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.CHANGE_LOGS; | ||
} | ||
}); | ||
Object.defineProperty(exports, "revisal", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.revisal; | ||
} | ||
}); | ||
Object.defineProperty(exports, "OLDEST_VERSION", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.OLDEST_VERSION; | ||
} | ||
}); | ||
Object.defineProperty(exports, "getRivisalRange", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.getRivisalRange; | ||
} | ||
}); | ||
Object.defineProperty(exports, "Interfaces", { | ||
enumerable: true, | ||
get: function get() { | ||
return _interfaces.Interfaces; | ||
} | ||
}); | ||
Object.defineProperty(exports, "createBIComponent", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpenReactSdk.createBIComponent; | ||
} | ||
}); | ||
Object.defineProperty(exports, "IconDefault", { | ||
enumerable: true, | ||
get: function get() { | ||
return _components.IconDefault; | ||
} | ||
}); | ||
Object.defineProperty(exports, "IconLoading", { | ||
enumerable: true, | ||
get: function get() { | ||
return _components.IconLoading; | ||
} | ||
}); | ||
Object.defineProperty(exports, "IconWrapper", { | ||
enumerable: true, | ||
get: function get() { | ||
return _components.IconWrapper; | ||
} | ||
}); | ||
Object.defineProperty(exports, "MenuItem", { | ||
enumerable: true, | ||
get: function get() { | ||
return _components.MenuItem; | ||
} | ||
}); | ||
var _biOpen = require("bi-open"); | ||
var _biopen = require("bi-open"); | ||
var _interfaces = require("./interfaces"); | ||
var _biOpenReactSdk = require("bi-open-react-sdk"); | ||
var _components = require("./components"); | ||
var _biopenreactsdk = require("bi-open-react-sdk"); | ||
var _components = require("./components"); |
@@ -0,13 +1,14 @@ | ||
/** | ||
* 接口全部来自 bi-open | ||
*/ // eslint-disable-next-line rulesdir/no-useless-export | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
value: true | ||
}); | ||
Object.defineProperty(exports, "Interfaces", { | ||
enumerable: true, | ||
get: function get() { | ||
return _biOpen.Interfaces; | ||
} | ||
enumerable: true, | ||
get: function() { | ||
return _biopen.Interfaces; | ||
} | ||
}); | ||
var _biOpen = require("bi-open"); | ||
var _biopen = require("bi-open"); |
@@ -1,137 +0,128 @@ | ||
import _slicedToArray from "@babel/runtime/helpers/slicedToArray.js"; | ||
import * as React from 'react'; | ||
import './index.scss'; | ||
export var CUSTOM_MENU_TOOLTIP_EVENT = 'CUSTOM_MENU_TOOLTIP_EVENT'; | ||
export var CUSTOM_MENU_RENDERED_EVENT = 'CUSTOM_MENU_RENDERED_EVENT'; | ||
export var IconWrapper = function IconWrapper(props) { | ||
return React.createElement("i", props, React.createElement("svg", { | ||
viewBox: '0 0 1024 1024', | ||
"aria-hidden": "true", | ||
width: "1em", | ||
height: "1em", | ||
fill: "currentColor" | ||
}, props.children)); | ||
}; | ||
export var IconDefault = function IconDefault(props) { | ||
return React.createElement(IconWrapper, props, React.createElement("path", { | ||
d: "M838.193105 907.620131V1023.99744H582.193745a23.193542 23.193542 0 0 1-23.295942-23.295942v-23.449541c0-82.380594-47.206282-139.468451-139.98045-139.468451-91.85257 0-139.673251 57.599856-139.673251 139.468451v23.449541a23.244742 23.244742 0 0 1-23.295942 23.244742H116.377309L0.0512 1023.99744v-116.428509l0.511999-139.673251a23.244742 23.244742 0 0 1 23.244742-23.142342h46.489483c64.10224 0 116.07011-60.262249 116.07011-139.622051 0-80.0766-51.660671-139.673251-116.07011-139.673251H23.654341a23.244742 23.244742 0 0 1-23.295942-23.244742V302.591244c0-23.80794-0.1024-62.617443-0.307199-116.37731h232.703418v-0.204799C232.754618 80.1278 299.314452 0 418.968553 0c116.735708 0 186.930733 82.278194 186.930732 186.009135v0.1536h116.530909c15.564761 0 54.374264 0 116.377309-0.1536v232.857018h22.630344c91.647771 0 162.610793 81.868595 162.610793 186.213934 0 103.730941-71.167822 186.162735-162.610793 186.162735h-23.244742v116.377309z" | ||
})); | ||
}; | ||
export var IconLoading = function IconLoading(props) { | ||
return React.createElement(IconWrapper, props, React.createElement("path", { | ||
d: "M960 447.008q-11.008-152.992-120-261.504t-260.992-120.512q-16-0.992-27.488 9.504t-11.488 26.496q0 14.016 9.504 24.512t23.488 11.488q55.008 4 107.008 26.016 60.992 26.016 108.992 73.504t74.016 109.504q22.016 51.008 26.016 106.016 0.992 14.016 11.488 23.488t24.512 9.504q15.008 0 26.016-11.008 11.008-12 8.992-27.008z" | ||
})); | ||
}; | ||
export var MenuItem = function MenuItem(_ref) { | ||
var className = _ref.className, | ||
style = _ref.style, | ||
title = _ref.title, | ||
_ref$disabled = _ref.disabled, | ||
disabled = _ref$disabled === void 0 ? false : _ref$disabled, | ||
_ref$loading = _ref.loading, | ||
loading = _ref$loading === void 0 ? false : _ref$loading, | ||
hoverTip = _ref.hoverTip, | ||
onClick = _ref.onClick, | ||
_ref$showTitle = _ref.showTitle, | ||
showTitle = _ref$showTitle === void 0 ? true : _ref$showTitle, | ||
_ref$showIcon = _ref.showIcon, | ||
showIcon = _ref$showIcon === void 0 ? true : _ref$showIcon; | ||
var _React$useState = React.useState(''), | ||
_React$useState2 = _slicedToArray(_React$useState, 2), | ||
icon = _React$useState2[0], | ||
setIcon = _React$useState2[1]; | ||
var ref = React.useRef(); | ||
React.useEffect(function () { | ||
if (ref.current) { | ||
var _window$globalConfig; | ||
var doc = ref.current.getRootNode(); | ||
var sandboxId = (_window$globalConfig = window.globalConfig) === null || _window$globalConfig === void 0 ? void 0 : _window$globalConfig.sandboxId; | ||
var iconElem = doc.querySelector("#custom-component-icon"); | ||
if (iconElem && iconElem.textContent.indexOf(".icon-".concat(sandboxId)) >= 0) { | ||
setIcon("icon-".concat(sandboxId)); | ||
} | ||
/** | ||
* @flie 自定义菜单默认模板 | ||
*/ import * as React from 'react'; | ||
export const CUSTOM_MENU_TOOLTIP_EVENT = 'CUSTOM_MENU_TOOLTIP_EVENT'; | ||
export const IconWrapper = (props)=>/*#__PURE__*/ React.createElement("i", props, /*#__PURE__*/ React.createElement("svg", { | ||
viewBox: '0 0 1024 1024', | ||
"aria-hidden": "true", | ||
width: "1em", | ||
height: "1em", | ||
fill: "currentColor" | ||
}, props.children)); | ||
/** 菜单默认图标 */ export const IconDefault = (props)=>/*#__PURE__*/ React.createElement(IconWrapper, props, /*#__PURE__*/ React.createElement("path", { | ||
d: "M838.193105 907.620131V1023.99744H582.193745a23.193542 23.193542 0 0 1-23.295942-23.295942v-23.449541c0-82.380594-47.206282-139.468451-139.98045-139.468451-91.85257 0-139.673251 57.599856-139.673251 139.468451v23.449541a23.244742 23.244742 0 0 1-23.295942 23.244742H116.377309L0.0512 1023.99744v-116.428509l0.511999-139.673251a23.244742 23.244742 0 0 1 23.244742-23.142342h46.489483c64.10224 0 116.07011-60.262249 116.07011-139.622051 0-80.0766-51.660671-139.673251-116.07011-139.673251H23.654341a23.244742 23.244742 0 0 1-23.295942-23.244742V302.591244c0-23.80794-0.1024-62.617443-0.307199-116.37731h232.703418v-0.204799C232.754618 80.1278 299.314452 0 418.968553 0c116.735708 0 186.930733 82.278194 186.930732 186.009135v0.1536h116.530909c15.564761 0 54.374264 0 116.377309-0.1536v232.857018h22.630344c91.647771 0 162.610793 81.868595 162.610793 186.213934 0 103.730941-71.167822 186.162735-162.610793 186.162735h-23.244742v116.377309z" | ||
})); | ||
/** 菜单 loading 图标 */ export const IconLoading = (props)=>/*#__PURE__*/ React.createElement(IconWrapper, props, /*#__PURE__*/ React.createElement("path", { | ||
d: "M960 447.008q-11.008-152.992-120-261.504t-260.992-120.512q-16-0.992-27.488 9.504t-11.488 26.496q0 14.016 9.504 24.512t23.488 11.488q55.008 4 107.008 26.016 60.992 26.016 108.992 73.504t74.016 109.504q22.016 51.008 26.016 106.016 0.992 14.016 11.488 23.488t24.512 9.504q15.008 0 26.016-11.008 11.008-12 8.992-27.008z" | ||
})); | ||
function getComponentInfoByDom(elem) { | ||
if (!elem || elem.nodeName.toUpperCase() === 'BODY') { | ||
return { | ||
componentType: '', | ||
name: '' | ||
}; | ||
} | ||
}, []); | ||
var setTip = React.useCallback(function (visible) { | ||
if (ref.current) { | ||
var container = ref.current.closest('[data-custom-component-root]'); | ||
if (hoverTip && typeof hoverTip === 'string' && container) { | ||
container.dispatchEvent(new CustomEvent(CUSTOM_MENU_TOOLTIP_EVENT, { | ||
detail: { | ||
title: hoverTip, | ||
visible: visible | ||
} | ||
})); | ||
} | ||
if (typeof elem.hasAttribute === 'function' && elem.hasAttribute('data-custom-component-root')) { | ||
return { | ||
componentType: elem.getAttribute('data-custom-component-type'), | ||
name: elem.getAttribute('data-custom-component-name') | ||
}; | ||
} | ||
}, [hoverTip]); | ||
React.useEffect(function () { | ||
if (ref.current) { | ||
var container = ref.current.closest('[data-custom-component-root]'); | ||
if (container) { | ||
setTimeout(function () { | ||
container.dispatchEvent(new CustomEvent(CUSTOM_MENU_RENDERED_EVENT)); | ||
}, 1000); | ||
} | ||
} | ||
}, []); | ||
var iconContent = React.createElement(IconDefault, { | ||
className: "default-icon" | ||
}); | ||
if (icon) { | ||
iconContent = React.createElement("i", { | ||
className: "upload-icon ".concat(icon) | ||
return getComponentInfoByDom(elem.parentNode); | ||
} | ||
/** | ||
* 默认自定义菜单 | ||
* @param param0 | ||
* @returns | ||
*/ export const MenuItem = ({ className, style, title, disabled = false, loading = false, hoverTip, onClick, showTitle = true, showIcon = true })=>{ | ||
const [icon, setIcon] = React.useState(''); | ||
const [originTitle, setOriginTitle] = React.useState(''); | ||
const ref = React.useRef(); | ||
React.useEffect(()=>{ | ||
if (ref.current) { | ||
const doc = ref.current.getRootNode(); | ||
const iconElem = doc.querySelector(`#custom-component-icon`); | ||
const { componentType, name } = getComponentInfoByDom(ref.current); | ||
setOriginTitle(name); | ||
// 是否有组件 icon | ||
if (iconElem && iconElem.textContent.indexOf(`.icon-${componentType}`) >= 0) { | ||
setIcon(`icon-${componentType}`); | ||
} | ||
} | ||
}, []); | ||
// tooltip 在 qbi 实现, 通过事件通信 | ||
const setTip = React.useCallback((visible)=>{ | ||
if (ref.current) { | ||
const container = ref.current.closest('[data-custom-component-root]'); | ||
if (hoverTip && typeof hoverTip === 'string' && container) { | ||
container.dispatchEvent(new CustomEvent(CUSTOM_MENU_TOOLTIP_EVENT, { | ||
detail: { | ||
title: hoverTip, | ||
visible | ||
} | ||
})); | ||
} | ||
} | ||
}, [ | ||
hoverTip | ||
]); | ||
// 默认 icon | ||
let iconContent = /*#__PURE__*/ React.createElement(IconDefault, { | ||
className: "default-icon" | ||
}); | ||
} | ||
if (loading) { | ||
iconContent = React.createElement(IconLoading, { | ||
className: "default-icon animate-cricle" | ||
}); | ||
} | ||
var handleClick = React.useCallback(function (e) { | ||
if (typeof onClick === 'function' && !disabled) { | ||
onClick(e); | ||
// 用户上传的 icon | ||
if (icon) { | ||
iconContent = /*#__PURE__*/ React.createElement("i", { | ||
className: `upload-icon ${icon}` | ||
}); | ||
} | ||
}, [disabled, onClick]); | ||
var handleMouseEnter = React.useCallback(function (e) { | ||
setTip(true); | ||
}, [setTip]); | ||
var handleMouseLeave = React.useCallback(function (e) { | ||
setTip(false); | ||
}, [setTip]); | ||
var viewTitle = React.useMemo(function () { | ||
var _ref2, _ref2$componentInfo; | ||
var originConfigName = (_ref2 = window.globalConfig) === null || _ref2 === void 0 ? void 0 : (_ref2$componentInfo = _ref2.componentInfo) === null || _ref2$componentInfo === void 0 ? void 0 : _ref2$componentInfo.name; | ||
var configName = typeof originConfigName === 'string' ? originConfigName : ''; | ||
var propsTitle = typeof title === 'string' ? title : undefined; | ||
return propsTitle !== null && propsTitle !== void 0 ? propsTitle : configName; | ||
}, [title]); | ||
if (!showTitle && !showIcon) { | ||
return null; | ||
} | ||
return React.createElement("div", { | ||
ref: ref, | ||
className: "custom-card-menu ".concat(disabled ? 'disabled' : '', " ").concat(className || ''), | ||
style: style, | ||
onClick: handleClick, | ||
title: viewTitle, | ||
onMouseOver: handleMouseEnter, | ||
onMouseLeave: handleMouseLeave | ||
}, showIcon ? React.createElement("div", { | ||
className: "custom-card-menu-icon" | ||
}, iconContent) : null, showTitle ? React.createElement("div", { | ||
className: "custom-card-menu-text" | ||
}, viewTitle) : null); | ||
}; | ||
// loading icon | ||
if (loading) { | ||
iconContent = /*#__PURE__*/ React.createElement(IconLoading, { | ||
className: "default-icon animate-cricle" | ||
}); | ||
} | ||
const handleClick = React.useCallback((e)=>{ | ||
if (typeof onClick === 'function' && !disabled) { | ||
onClick(e); | ||
e.stopPropagation(); | ||
} | ||
}, [ | ||
disabled, | ||
onClick | ||
]); | ||
const handleMouseEnter = React.useCallback((e)=>{ | ||
setTip(true); | ||
}, [ | ||
setTip | ||
]); | ||
const handleMouseLeave = React.useCallback((e)=>{ | ||
setTip(false); | ||
}, [ | ||
setTip | ||
]); | ||
const viewTitle = React.useMemo(()=>{ | ||
const propsTitle = typeof title === 'string' ? title : undefined; | ||
var _ref; | ||
return (_ref = propsTitle !== null && propsTitle !== void 0 ? propsTitle : originTitle) !== null && _ref !== void 0 ? _ref : ''; | ||
}, [ | ||
originTitle, | ||
title | ||
]); | ||
if (!showTitle && !showIcon) { | ||
return null; | ||
} | ||
return /*#__PURE__*/ React.createElement("div", { | ||
ref: ref, | ||
className: `custom-card-menu ${disabled ? 'disabled' : ''} ${className || ''}`, | ||
style: style, | ||
onClick: handleClick, | ||
title: viewTitle, | ||
onMouseOver: handleMouseEnter, | ||
onMouseLeave: handleMouseLeave | ||
}, showIcon ? /*#__PURE__*/ React.createElement("div", { | ||
className: "custom-card-menu-icon" | ||
}, iconContent) : null, showTitle ? /*#__PURE__*/ React.createElement("div", { | ||
className: "custom-card-menu-text" | ||
}, viewTitle) : null); | ||
}; |
@@ -1,4 +0,4 @@ | ||
export { I18n, getStringRealLength, getAliasName, formatNumberWithConfig, formatNumber, transposeData, LATEST_VERSION, CHANGE_LOGS, revisal, OLDEST_VERSION, getRivisalRange } from 'bi-open'; | ||
export { I18n, getStringRealLength, getAliasName, formatNumberWithConfig, formatNumber, transposeData, LATEST_VERSION, CHANGE_LOGS, revisal, OLDEST_VERSION, getRevisalRange } from 'bi-open'; | ||
export { Interfaces } from './interfaces'; | ||
export { createBIComponent } from 'bi-open-react-sdk'; | ||
export { IconDefault, IconLoading, IconWrapper, MenuItem } from './components'; | ||
export { IconDefault, IconLoading, IconWrapper, MenuItem, CUSTOM_MENU_TOOLTIP_EVENT } from './components'; |
@@ -1,1 +0,4 @@ | ||
export { Interfaces } from 'bi-open'; | ||
/** | ||
* 接口全部来自 bi-open | ||
*/ // eslint-disable-next-line rulesdir/no-useless-export | ||
export { Interfaces } from 'bi-open'; |
{ | ||
"name": "bi-open-menu-sdk", | ||
"version": "0.0.10", | ||
"version": "0.0.11-beta.0", | ||
"main": "dist/main", | ||
@@ -17,4 +17,5 @@ "peerDependencies": { | ||
], | ||
"npmClient": "npm", | ||
"dependencies": { | ||
"bi-open-react-sdk": "^2.1.15" | ||
"react": "16.14.0" | ||
}, | ||
@@ -21,0 +22,0 @@ "module": "dist/module", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
20799
6.29%513
7.32%8
-33.33%2
Infinity%+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed