@cloudbase/weda-ui 3.8.2 → 3.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/configs/components/dataView.d.ts +15 -0
  2. package/dist/configs/components/dataView.js +104 -6
  3. package/dist/configs/components/listView.d.ts +31 -0
  4. package/dist/configs/components/listView.js +145 -24
  5. package/dist/configs/components/wd-form.d.ts +2 -0
  6. package/dist/configs/components/wd-location.d.ts +13 -0
  7. package/dist/configs/components/wd-location.js +10 -0
  8. package/dist/configs/components/wd-markdown.d.ts +110 -0
  9. package/dist/configs/components/wd-markdown.js +171 -0
  10. package/dist/configs/components/wd-menu-layout.d.ts +13 -10
  11. package/dist/configs/components/wd-menu-layout.js +12 -1
  12. package/dist/configs/components/wd-menu-nav-tab-layou.d.ts +27 -0
  13. package/dist/configs/components/wd-menu-nav-tab-layou.js +31 -0
  14. package/dist/configs/components/wd-side-tab.js +1 -0
  15. package/dist/configs/components/wd-table.d.ts +3 -1
  16. package/dist/configs/components/wd-table.js +1 -0
  17. package/dist/configs/components/wd-top-tab.js +1 -0
  18. package/dist/configs/components/wd-upload-image.js +1 -1
  19. package/dist/configs/components/web-view.d.ts +6 -15
  20. package/dist/configs/components/web-view.js +12 -15
  21. package/dist/configs/index.d.ts +404 -40
  22. package/dist/configs/index.js +4 -0
  23. package/dist/configs/type-utils/error.d.ts +1 -0
  24. package/dist/configs/type-utils/error.js +3 -0
  25. package/dist/configs/utils/layout.d.ts +1 -1
  26. package/dist/configs/utils/layout.js +219 -7
  27. package/dist/style/index.scss +1 -1
  28. package/dist/web/components/dataView/index.js +5 -3
  29. package/dist/web/components/form/location/components/LocationH5/location.h5.js +19 -3
  30. package/dist/web/components/form/location/components/LocationPC/location.PC.js +7 -1
  31. package/dist/web/components/index.d.ts +2 -0
  32. package/dist/web/components/index.js +4 -0
  33. package/dist/web/components/listView/index.js +48 -13
  34. package/dist/web/components/listView/interface.d.ts +4 -0
  35. package/dist/web/components/listView/useQueryParams.d.ts +11 -0
  36. package/dist/web/components/listView/useQueryParams.js +23 -0
  37. package/dist/web/components/richTextView/index.js +4 -38
  38. package/dist/web/components/richTextView/useImgTransform.d.ts +1 -0
  39. package/dist/web/components/richTextView/useImgTransform.js +47 -0
  40. package/dist/web/components/slot/index.js +2 -1
  41. package/dist/web/components/wd-form/index.d.ts +1 -0
  42. package/dist/web/components/wd-location/wd-location.js +2 -2
  43. package/dist/web/components/wd-markdown/github-markdown-light.css +1139 -0
  44. package/dist/web/components/wd-markdown/index.d.ts +4 -0
  45. package/dist/web/components/wd-markdown/index.js +3 -0
  46. package/dist/web/components/wd-markdown/style.d.ts +3 -0
  47. package/dist/web/components/wd-markdown/style.js +3 -0
  48. package/dist/web/components/wd-markdown/wd-markdown.d.ts +7 -0
  49. package/dist/web/components/wd-markdown/wd-markdown.js +96 -0
  50. package/dist/web/components/wd-menu-layout/components/H5Menu.js +4 -1
  51. package/dist/web/components/wd-menu-layout/components/NavTabMenu.d.ts +3 -0
  52. package/dist/web/components/wd-menu-layout/components/NavTabMenu.js +7 -0
  53. package/dist/web/components/wd-menu-layout/wd-menu-layout.js +5 -2
  54. package/dist/web/components/wd-menu-nav-tab-layout/index.d.ts +6 -0
  55. package/dist/web/components/wd-menu-nav-tab-layout/index.js +5 -0
  56. package/dist/web/components/wd-table/components/FieldRender/index.js +5 -2
  57. package/dist/web/utils/error.d.ts +13 -0
  58. package/dist/web/utils/error.js +11 -0
  59. package/dist/web/utils/getModelParams.d.ts +2 -0
  60. package/dist/web/utils/getModelParams.js +73 -4
  61. package/package.json +4 -1
@@ -0,0 +1,4 @@
1
+ import { WdMarkdown } from './wd-markdown';
2
+ export { WdMarkdown } from './wd-markdown';
3
+ export type { MarkdownProps } from './wd-markdown';
4
+ export default WdMarkdown;
@@ -0,0 +1,3 @@
1
+ import { WdMarkdown } from './wd-markdown';
2
+ export { WdMarkdown } from './wd-markdown';
3
+ export default WdMarkdown;
@@ -0,0 +1,3 @@
1
+ import './github-markdown-light.css';
2
+ import 'highlight.js/styles/github.min.css';
3
+ import '../style';
@@ -0,0 +1,3 @@
1
+ import './github-markdown-light.css';
2
+ import 'highlight.js/styles/github.min.css';
3
+ import '../style';
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { CommonPropsType } from '../../types';
3
+ import type { DataType } from '../../../configs/components/wd-markdown';
4
+ import './style';
5
+ export interface MarkdownProps extends CommonPropsType, DataType {
6
+ }
7
+ export declare const WdMarkdown: React.ForwardRefExoticComponent<MarkdownProps & React.RefAttributes<any>>;
@@ -0,0 +1,96 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint-disable @typescript-eslint/no-magic-numbers */
3
+ import { useEffect, useState, useCallback, forwardRef, useRef, } from 'react';
4
+ import MarkdownIt from 'markdown-it/dist/markdown-it.js';
5
+ import copy from 'markdown-it-code-copy';
6
+ import hljs from 'highlight.js';
7
+ import { useSetWidgetApi } from '../../utils/widget-api/use-set-widget-api';
8
+ import { useConfig } from '../../utils/config-context';
9
+ import { usePlatform } from '../../utils/platform';
10
+ import classNames from '../../utils/classnames';
11
+ import useDebouncedCallback from '../../utils/hooks/use-debounced-callback';
12
+ import { useImgTransform } from '../richTextView/useImgTransform';
13
+ import { getOnClick } from '../wd-unified-link/utils';
14
+ import './style';
15
+ export const WdMarkdown = forwardRef(function WdMarkdown({ value = '', options, className, style, id, events }, ref) {
16
+ const platform = usePlatform();
17
+ const { classPrefix } = useConfig();
18
+ const cls = classNames({
19
+ [`${classPrefix}-markdown`]: true,
20
+ 'markdown-body': true,
21
+ [`${classPrefix}-${platform}-table`]: true,
22
+ [className]: className,
23
+ });
24
+ // markdown-it实例
25
+ const [mdInstance, setMdInstance] = useState(null);
26
+ const destroy = useCallback(() => {
27
+ if (!mdInstance) {
28
+ return;
29
+ }
30
+ setMdInstance(null);
31
+ }, [mdInstance]);
32
+ const onMarkdownReady = useCallback((mdInstance) => {
33
+ setMdInstance(mdInstance);
34
+ if (events === null || events === void 0 ? void 0 : events.onReady) {
35
+ events === null || events === void 0 ? void 0 : events.onReady({ markdownInstance: mdInstance });
36
+ }
37
+ }, [events]);
38
+ // 初始化markdown-it实例
39
+ const init = useDebouncedCallback(useCallback(async (options) => {
40
+ let md = mdInstance;
41
+ if (md) {
42
+ destroy();
43
+ }
44
+ md = new MarkdownIt({
45
+ // 默认开启高亮
46
+ highlight: function (str, lang) {
47
+ if (lang && hljs.getLanguage(lang)) {
48
+ try {
49
+ return hljs.highlight(lang, str).value;
50
+ }
51
+ catch (__) { }
52
+ }
53
+ return ''; // 使用额外的默认转义
54
+ },
55
+ ...options,
56
+ });
57
+ md.use(copy);
58
+ onMarkdownReady(md);
59
+ }, [mdInstance, onMarkdownReady, destroy]), 500, {
60
+ maxWait: 1000,
61
+ });
62
+ useEffect(() => {
63
+ init(options);
64
+ }, [init, options]);
65
+ const [html, setHtml] = useState('');
66
+ useEffect(() => {
67
+ if (mdInstance) {
68
+ setHtml(mdInstance === null || mdInstance === void 0 ? void 0 : mdInstance.render(value));
69
+ }
70
+ }, [mdInstance, value]);
71
+ const displayValue = useImgTransform(html);
72
+ const markdownRef = useRef(null);
73
+ useEffect(() => {
74
+ if (markdownRef.current) {
75
+ markdownRef.current.querySelectorAll('a').forEach((a) => {
76
+ const url = a.href;
77
+ // 若非同域 默认新页面打开
78
+ if (/https?:\/\//.test(url) &&
79
+ !url.startsWith(window.location.origin)) {
80
+ a.target = a.target || '_blank';
81
+ }
82
+ a.addEventListener('click', (e) => {
83
+ getOnClick({ url })(e);
84
+ });
85
+ });
86
+ }
87
+ }, [displayValue]);
88
+ useSetWidgetApi(() => {
89
+ return {
90
+ value,
91
+ markdownInstance: mdInstance,
92
+ updateMarkdownInstance: ({ markdownInstance }) => setMdInstance(markdownInstance),
93
+ };
94
+ }, [value, mdInstance], ref);
95
+ return (_jsx("div", { ref: markdownRef, className: cls, style: style, id: id, children: mdInstance && (_jsx("div", { dangerouslySetInnerHTML: { __html: displayValue } })) }));
96
+ });
@@ -5,6 +5,7 @@ import { WdIcon, WdMenuList } from '../../index';
5
5
  import { Drawer, ConfigProvider } from 'tea-component';
6
6
  import { slotDiv, MenuLayoutContext } from '../utils';
7
7
  export const H5Menu = forwardRef(function H5Menu(props, ref) {
8
+ const { outerClickClosable = true } = props;
8
9
  const { classPrefix } = useConfig();
9
10
  const [visible, setVisible] = useState(false);
10
11
  const provider = useMemo(() => {
@@ -14,5 +15,7 @@ export const H5Menu = forwardRef(function H5Menu(props, ref) {
14
15
  },
15
16
  };
16
17
  }, [setVisible]);
17
- return (_jsxs(MenuLayoutContext.Provider, { value: provider, children: [_jsxs("div", { className: `${classPrefix}-menulayout__bar-wrap`, children: [_jsx("div", { className: `${classPrefix}-menulayout__bar-logo`, children: slotDiv(props.headSlot) }), _jsx("div", { className: `${classPrefix}-menulayout__bar-content`, children: slotDiv(props.headRightSlot, { justifyContent: 'flex-end' }) }), _jsx("div", { className: `${classPrefix}-menulayout__bar-extra`, children: !visible ? (_jsx(WdIcon, { name: "td:view-list", size: "md", onClick: () => setVisible(true) })) : (_jsx(WdIcon, { name: "td:close", size: "md", onClick: () => setVisible(false) })) }), _jsx(ConfigProvider, { classPrefix: "wedatea2td", children: _jsxs(Drawer, { style: { visibility: visible ? 'visible' : 'hidden' }, size: 'm', placement: 'right', disableAnimation: true, outerClickClosable: false, showMask: visible, visible: true, onClose: () => setVisible(false), className: `${classPrefix}-menulayout-h5__drawer ${classPrefix}-menulayout__menu`, children: [_jsx(WdMenuList, { ...props, className: "", id: "", style: {}, ref: ref }), _jsx("div", { className: `${classPrefix}-menulayout-h5__drawer-slot ${classPrefix}-menulayout-body__footer`, children: slotDiv(props.footerSlot) })] }) })] }), _jsx("div", { className: `${classPrefix}-menulayout-body`, children: _jsx("div", { className: `${classPrefix}-menulayout-body__content ${classPrefix}-menulayout__body`, children: props.contentSlot }) })] }));
18
+ return (_jsxs(MenuLayoutContext.Provider, { value: provider, children: [_jsxs("div", { className: `${classPrefix}-menulayout__bar-wrap`, children: [_jsx("div", { className: `${classPrefix}-menulayout__bar-logo`, children: slotDiv(props.headSlot) }), _jsx("div", { className: `${classPrefix}-menulayout__bar-content`, children: slotDiv(props.headRightSlot, { justifyContent: 'flex-end' }) }), _jsx("div", { className: `${classPrefix}-menulayout__bar-extra`,
19
+ // 防止连续触发
20
+ style: props.outerClickClosable && visible ? { pointerEvents: 'none' } : {}, children: !visible ? (_jsx(WdIcon, { name: "td:view-list", size: "md", onClick: () => setVisible(true) })) : (_jsx(WdIcon, { name: "td:close", size: "md", onClick: () => setVisible(false) })) }), _jsx(ConfigProvider, { classPrefix: "wedatea2td", children: _jsxs(Drawer, { size: 'm', placement: 'right', disableAnimation: true, outerClickClosable: outerClickClosable, showMask: visible, visible: visible, onClose: () => setVisible(false), className: `${classPrefix}-menulayout-h5__drawer ${classPrefix}-menulayout__menu`, children: [_jsx(WdMenuList, { ...props, className: "", id: "", style: {}, ref: ref }), _jsx("div", { className: `${classPrefix}-menulayout-h5__drawer-slot ${classPrefix}-menulayout-body__footer`, children: slotDiv(props.footerSlot) })] }) })] }), _jsx("div", { className: `${classPrefix}-menulayout-body`, children: _jsx("div", { className: `${classPrefix}-menulayout-body__content ${classPrefix}-menulayout__body`, children: props.contentSlot }) })] }));
18
21
  });
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { WdMenuLayoutProps } from '../wd-menu-layout';
3
+ export declare const NavTabMenu: React.ForwardRefExoticComponent<WdMenuLayoutProps & React.RefAttributes<unknown>>;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { useConfig } from '../../../utils/config-context';
4
+ export const NavTabMenu = forwardRef(function TabMenu(props) {
5
+ const { classPrefix } = useConfig();
6
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: `${classPrefix}-menulayout-header`, children: props.headRightSlot }), _jsx("div", { className: `${classPrefix}-menulayout-body__content ${classPrefix}-menulayout__body`, children: props.contentSlot }), _jsx("div", { className: `${classPrefix}-menulayout-body__left-slot ${classPrefix}-menulayout-body__footer`, children: props.footerSlot })] }));
7
+ });
@@ -5,6 +5,7 @@ import { PlantMenu } from './components/PlantMenu';
5
5
  import { VerticalMenu } from './components/VerticalMenu';
6
6
  import { TabMenu } from './components/TabMenu';
7
7
  import { NavMenu } from './components/NavMenu';
8
+ import { NavTabMenu } from './components/NavTabMenu';
8
9
  import { H5Menu } from './components/H5Menu';
9
10
  import { useConfig } from '../../utils/config-context';
10
11
  import classNames from '../../utils/classnames';
@@ -14,8 +15,10 @@ export const WdMenuLayout = forwardRef(function WdMenuLayout(props, ref) {
14
15
  const { classPrefix } = useConfig();
15
16
  const platform = usePlatform();
16
17
  const _type = props.type || props.template;
17
- const type = platform === 'h5' && !['tab', 'nav'].includes(_type) ? 'h5' : _type;
18
+ const type = platform === 'h5' && !['tab', 'nav', 'navTab'].includes(_type)
19
+ ? 'h5'
20
+ : _type;
18
21
  return (
19
22
  // 1024px 800px为方便测试 开发时去掉
20
- _jsxs("div", { id: props.id, style: props.style, className: classNames(props.className, `${classPrefix}-menulayout`, `${classPrefix}-menulayout-root`, ['h5'].includes(type) ? `${classPrefix}-menulayout-h5-root` : '', `${classPrefix}-menulayout--${type}`), children: [['horizontal'].includes(type) && (_jsx(HorizontalMenu, { ...props, ref: ref })), ['vertical'].includes(type) && (_jsx(VerticalMenu, { ...props, ref: ref })), ['plant'].includes(type) && _jsx(PlantMenu, { ...props, ref: ref }), ['h5'].includes(type) && _jsx(H5Menu, { ...props, ref: ref }), ['tab'].includes(type) && _jsx(TabMenu, { ...props, ref: ref }), ['nav'].includes(type) && _jsx(NavMenu, { ...props, ref: ref })] }));
23
+ _jsxs("div", { id: props.id, style: props.style, className: classNames(props.className, `${classPrefix}-menulayout`, `${classPrefix}-menulayout-root`, ['h5'].includes(type) ? `${classPrefix}-menulayout-h5-root` : '', `${classPrefix}-menulayout--${type}`), children: [['horizontal'].includes(type) && (_jsx(HorizontalMenu, { ...props, ref: ref })), ['vertical'].includes(type) && (_jsx(VerticalMenu, { ...props, ref: ref })), ['plant'].includes(type) && _jsx(PlantMenu, { ...props, ref: ref }), ['h5'].includes(type) && _jsx(H5Menu, { ...props, ref: ref }), ['tab'].includes(type) && _jsx(TabMenu, { ...props, ref: ref }), ['nav'].includes(type) && _jsx(NavMenu, { ...props, ref: ref }), ['navTab'].includes(type) && (_jsx(NavTabMenu, { ...props, ref: ref }))] }));
21
24
  });
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import type { CommonPropsType } from '../../types';
3
+ export default function WdMenuNavTabLayout({ children, className, style, id, }: PropsType): JSX.Element;
4
+ export interface PropsType extends CommonPropsType {
5
+ title?: string;
6
+ }
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import classNames from '../../utils/classnames';
3
+ export default function WdMenuNavTabLayout({ children, className, style, id, }) {
4
+ return (_jsx("div", { role: "container", id: id, style: style, className: classNames({ 'weda-ui': true, [className]: className }), children: children }));
5
+ }
@@ -138,8 +138,8 @@ export function getFieldRender(field = {}, extra = {}) {
138
138
  }
139
139
  return (_jsx(TextWrap, { ...textProps, children: fieldValue[relatedField] || fieldValue[primaryField] || '-' }));
140
140
  }
141
- else if (format === 'x-video') {
142
- // 视频
141
+ else if (format === 'x-video' || format === 'x-music') {
142
+ // 视频/音频
143
143
  return _jsx(VideoPreview, { value: fieldValue });
144
144
  }
145
145
  else {
@@ -165,6 +165,9 @@ export function getFieldRender(field = {}, extra = {}) {
165
165
  if (format === 'x-location') {
166
166
  return xLocationRender(fieldValue, modelType);
167
167
  }
168
+ else if (format === 'x-json') {
169
+ return _jsx(TextWrap, { ...textProps, children: JSON.stringify(fieldValue) });
170
+ }
168
171
  else if (modelType === 'detail') {
169
172
  return objectRender({
170
173
  value: fieldValue,
@@ -8,3 +8,16 @@ export declare class WdCompError extends Error {
8
8
  original?: Error;
9
9
  });
10
10
  }
11
+ export declare const errorHandler: ({ id, code, error }: {
12
+ id?: string;
13
+ code: any;
14
+ error: any;
15
+ }) => {
16
+ compError: WdCompError;
17
+ comErrorInfo: {
18
+ code: any;
19
+ requestId: any;
20
+ original: any;
21
+ message: string;
22
+ };
23
+ };
@@ -25,3 +25,14 @@ export class WdCompError extends Error {
25
25
  this.original = context === null || context === void 0 ? void 0 : context.original;
26
26
  }
27
27
  }
28
+ export const errorHandler = ({ id = '', code, error }) => {
29
+ const comErrorInfo = {
30
+ code: (error === null || error === void 0 ? void 0 : error.code) || code,
31
+ requestId: error === null || error === void 0 ? void 0 : error.requestId,
32
+ original: error,
33
+ message: `[组件${id}:${code}]${(error === null || error === void 0 ? void 0 : error.message) || code}`,
34
+ };
35
+ const compError = new WdCompError(comErrorInfo.message, comErrorInfo);
36
+ console.error(comErrorInfo);
37
+ return { compError, comErrorInfo };
38
+ };
@@ -2,5 +2,7 @@ export function convertWhere(props: any, supportManyRelated: any): any;
2
2
  export function getModelParams(props: any): {
3
3
  orderBy: any;
4
4
  orderType: any;
5
+ filter: any;
6
+ select: {};
5
7
  where: any[];
6
8
  };
@@ -19,22 +19,91 @@ export const convertWhere = (props, supportManyRelated) => {
19
19
  where = where === null || where === void 0 ? void 0 : where.filter((i) => !isEmptyObj(i));
20
20
  return Array.isArray(where) ? where : [];
21
21
  };
22
+ /**
23
+ * 拼接filter参数
24
+ */
25
+ const getFilter = (wList) => {
26
+ var _a, _b, _c;
27
+ let where = [];
28
+ let filter = { where: {} };
29
+ if ((_a = wList === null || wList === void 0 ? void 0 : wList.where) === null || _a === void 0 ? void 0 : _a.$or) {
30
+ const wListWhere = ((_b = wList === null || wList === void 0 ? void 0 : wList.where) === null || _b === void 0 ? void 0 : _b.$or) || [];
31
+ if ((wList === null || wList === void 0 ? void 0 : wList.constructor) === Object) {
32
+ where = [...wListWhere];
33
+ filter = {
34
+ ...wList,
35
+ where: {
36
+ $or: where,
37
+ },
38
+ };
39
+ }
40
+ }
41
+ else {
42
+ const wListWhere = ((_c = wList === null || wList === void 0 ? void 0 : wList.where) === null || _c === void 0 ? void 0 : _c.$and) || [];
43
+ if ((wList === null || wList === void 0 ? void 0 : wList.constructor) === Object) {
44
+ where = [...wListWhere];
45
+ filter = {
46
+ ...wList,
47
+ where: {
48
+ $and: where,
49
+ },
50
+ };
51
+ }
52
+ }
53
+ if (Array.isArray(wList)) {
54
+ where = [...wList];
55
+ filter = {
56
+ where: {
57
+ $and: where,
58
+ },
59
+ };
60
+ }
61
+ return getParseValue(filter);
62
+ };
63
+ const getSelectFields = (props) => {
64
+ let select = {};
65
+ // 支持自定义查询字段
66
+ if (props.selectFieldType === 'custom') {
67
+ const _selectFields = Array.isArray(props.selectFields)
68
+ ? props.selectFields
69
+ : [];
70
+ _selectFields.forEach((name) => {
71
+ select[name] = true;
72
+ });
73
+ }
74
+ else {
75
+ select = { $master: true };
76
+ }
77
+ return select;
78
+ };
22
79
  /**
23
80
  * 获取tcb查询条件
24
81
  */
25
82
  export const getModelParams = (props) => {
83
+ var _a;
26
84
  const params = {};
27
85
  try {
28
- const where = convertWhere(props);
29
86
  const { orderBy, orderType } = props || {};
30
87
  if (orderBy && ['asc', 'desc'].includes(orderType)) {
31
88
  params['orderBy'] = orderBy;
32
89
  params['orderType'] = orderType;
33
90
  }
34
- if (Array.isArray(where) && where.length > 0) {
35
- params['where'] = where;
91
+ if (props.supportManyRelated) {
92
+ // 支持多关联查询,需要将查询条件转换为filter
93
+ if (((_a = props === null || props === void 0 ? void 0 : props.queryCondition) === null || _a === void 0 ? void 0 : _a.constructor) === Object) {
94
+ params['filter'] = getFilter(props.queryCondition);
95
+ }
96
+ params.select = getSelectFields(props);
97
+ }
98
+ else {
99
+ const where = convertWhere(props);
100
+ if (Array.isArray(where) && where.length > 0) {
101
+ params['where'] = where;
102
+ }
36
103
  }
37
104
  }
38
- catch (e) { }
105
+ catch (e) {
106
+ console.error('getModelParams error', e);
107
+ }
39
108
  return params;
40
109
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/weda-ui",
3
- "version": "3.8.2",
3
+ "version": "3.9.1",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index",
6
6
  "miniprogram": "mpdist",
@@ -105,11 +105,14 @@
105
105
  "echarts": "^5.3.0",
106
106
  "echarts-for-react": "^3.0.2",
107
107
  "eslint-plugin-compat": "^4.1.4",
108
+ "highlight.js": "^11.10.0",
108
109
  "js-beautify": "^1.15.1",
109
110
  "jsonexport": "3.2.0",
110
111
  "lodash.get": "^4.4.2",
111
112
  "lodash.isequal": "^4.5.0",
112
113
  "lodash.set": "^4.3.2",
114
+ "markdown-it": "^14.1.0",
115
+ "markdown-it-code-copy": "^0.1.2",
113
116
  "moment": "^2.29.4",
114
117
  "object.fromentries": "^2.0.7",
115
118
  "prop-types": "^15.7.2",