@zero-library/common 2.2.10 → 2.2.12

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.
package/dist/index.cjs.js CHANGED
@@ -9,12 +9,18 @@ var React16 = require('react');
9
9
  var AES = require('crypto-js/aes');
10
10
  var encUtf8 = require('crypto-js/enc-utf8');
11
11
  var MarkdownIt = require('markdown-it');
12
+ var markdownItDefList = require('markdown-it-deflist');
13
+ var markdownItEmoji = require('markdown-it-emoji');
14
+ var markdownItFootnote = require('markdown-it-footnote');
15
+ var markdownItTaskLists = require('markdown-it-task-lists');
12
16
  var Decimal = require('decimal.js');
13
17
  var dayjs = require('dayjs');
14
18
  var relativeTime = require('dayjs/plugin/relativeTime');
15
19
  var axios = require('axios');
20
+ var markdownItKatex = require('@traptitech/markdown-it-katex');
16
21
  var parse = require('html-react-parser');
17
22
  var jsonrepair = require('jsonrepair');
23
+ require('katex/dist/katex.min.css');
18
24
  var core$1 = require('@react-pdf-viewer/core');
19
25
  var pageNavigation = require('@react-pdf-viewer/page-navigation');
20
26
  var thumbnail = require('@react-pdf-viewer/thumbnail');
@@ -72,10 +78,14 @@ var React16__namespace = /*#__PURE__*/_interopNamespace(React16);
72
78
  var AES__default = /*#__PURE__*/_interopDefault(AES);
73
79
  var encUtf8__default = /*#__PURE__*/_interopDefault(encUtf8);
74
80
  var MarkdownIt__default = /*#__PURE__*/_interopDefault(MarkdownIt);
81
+ var markdownItDefList__default = /*#__PURE__*/_interopDefault(markdownItDefList);
82
+ var markdownItFootnote__default = /*#__PURE__*/_interopDefault(markdownItFootnote);
83
+ var markdownItTaskLists__default = /*#__PURE__*/_interopDefault(markdownItTaskLists);
75
84
  var Decimal__default = /*#__PURE__*/_interopDefault(Decimal);
76
85
  var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
77
86
  var relativeTime__default = /*#__PURE__*/_interopDefault(relativeTime);
78
87
  var axios__default = /*#__PURE__*/_interopDefault(axios);
88
+ var markdownItKatex__default = /*#__PURE__*/_interopDefault(markdownItKatex);
79
89
  var parse__default = /*#__PURE__*/_interopDefault(parse);
80
90
  var zh_CN__default = /*#__PURE__*/_interopDefault(zh_CN);
81
91
  var Table__default = /*#__PURE__*/_interopDefault(Table);
@@ -600,7 +610,7 @@ var getWebSocketUrl = (path, customHost) => {
600
610
  const host = customHost || window.location.host;
601
611
  return `${protocol}//${host}${path}`;
602
612
  };
603
- function transform(source, fieldMap) {
613
+ var transform = (source, fieldMap) => {
604
614
  const result = {};
605
615
  for (const [targetKey, mapping] of Object.entries(fieldMap)) {
606
616
  const key = targetKey;
@@ -613,10 +623,10 @@ function transform(source, fieldMap) {
613
623
  }
614
624
  }
615
625
  return result;
616
- }
617
- function transforms(sources, fieldMap) {
626
+ };
627
+ var transforms = (sources, fieldMap) => {
618
628
  return sources?.map((source) => transform(source, fieldMap)) || [];
619
- }
629
+ };
620
630
  var convertCurrency = (money = "") => {
621
631
  let newMoney = money;
622
632
  const cnNums = ["\u96F6", "\u58F9", "\u8D30", "\u53C1", "\u8086", "\u4F0D", "\u9646", "\u67D2", "\u634C", "\u7396"];
@@ -762,7 +772,7 @@ var executeScript = (script, params) => {
762
772
  console.error("unsafe script");
763
773
  }
764
774
  };
765
- function aesEncrypt(data, key) {
775
+ var aesEncrypt = (data, key) => {
766
776
  if (!key) throw new Error("AES Encrypt: key is required");
767
777
  if (isNullOrUnDef(data)) return "";
768
778
  try {
@@ -772,8 +782,8 @@ function aesEncrypt(data, key) {
772
782
  console.error("AES Encrypt error:", err);
773
783
  throw new Error("AES Encrypt failed");
774
784
  }
775
- }
776
- function aesDecrypt(data, key) {
785
+ };
786
+ var aesDecrypt = (data, key) => {
777
787
  if (!key) throw new Error("AES Decrypt: key is required");
778
788
  if (!data) return null;
779
789
  try {
@@ -785,8 +795,8 @@ function aesDecrypt(data, key) {
785
795
  console.error("AES Decrypt error:", err);
786
796
  return null;
787
797
  }
788
- }
789
- function formatSize(value, options = {}) {
798
+ };
799
+ var formatSize = (value, options = {}) => {
790
800
  if (isNullOrUnDef(value) || !isNumberNoNaN(Number(value))) return value;
791
801
  const UNIT_LIST = ["B", "KB", "MB", "GB", "TB", "PB"];
792
802
  const { from = "KB", precision: precision2 = 2, trimZero = false, maxUnit } = options;
@@ -806,20 +816,45 @@ function formatSize(value, options = {}) {
806
816
  index++;
807
817
  }
808
818
  return `${toFixed(size, precision2, !trimZero)}${UNIT_LIST[index]}`;
809
- }
819
+ };
810
820
  var markdownToText = (() => {
811
821
  const md2 = new MarkdownIt__default.default({
812
822
  html: true,
813
- linkify: true,
814
- typographer: false
815
- });
823
+ breaks: true
824
+ }).use(markdownItTaskLists__default.default).use(markdownItEmoji.full).use(markdownItFootnote__default.default).use(markdownItDefList__default.default);
816
825
  return (markdown) => {
817
826
  if (!isString(markdown)) return "";
818
827
  const html = md2.render(markdown);
819
- const text = html.replace(/<[^>]+>/g, "").replace(/\s+/g, " ").replace(/&quot;/g, '"').replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&#39;/g, "'").trim();
828
+ const text = html.replace(/<[^>]+>/g, " ").replace(/&quot;/g, '"').replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&#39;/g, "'").replace(/\s+/g, " ").trim();
820
829
  return text;
821
830
  };
822
831
  })();
832
+ var findTreeNodesByIds = (tree, ids, formatFn, options = {}) => {
833
+ const { id = "id", children = "children" } = options;
834
+ if (!ids?.length) {
835
+ return [];
836
+ }
837
+ const result = [];
838
+ const idSet = new Set(ids);
839
+ const dfs = (nodes) => {
840
+ for (const node of nodes) {
841
+ if (idSet.size === 0) break;
842
+ const nodeId = node[id];
843
+ if (idSet.has(nodeId)) {
844
+ idSet.delete(nodeId);
845
+ const formatted = formatFn ? formatFn(node) : { ...node, [children]: void 0 };
846
+ if (!isNullOrUnDef(formatted)) {
847
+ result.push(formatted);
848
+ }
849
+ }
850
+ if (node[children]?.length && idSet.size > 0) {
851
+ dfs(node[children]);
852
+ }
853
+ }
854
+ };
855
+ dfs(tree);
856
+ return result;
857
+ };
823
858
  dayjs__default.default.extend(relativeTime__default.default);
824
859
  var DEFAULT_DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
825
860
  var DEFAULT_DATE_FORMAT = "YYYY-MM-DD";
@@ -1301,7 +1336,7 @@ var LazyComponent_default = ({ type, customComponents, ...rest }) => {
1301
1336
  ] });
1302
1337
  return /* @__PURE__ */ jsxRuntime.jsx(React16.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { children: "\u52A0\u8F7D\u4E2D..." }), children: /* @__PURE__ */ jsxRuntime.jsx(LazyComponent, { ...rest }) });
1303
1338
  };
1304
- var md = MarkdownIt__default.default({ html: true, breaks: true });
1339
+ var md = MarkdownIt__default.default({ html: true, breaks: true }).use(markdownItTaskLists__default.default).use(markdownItEmoji.full).use(markdownItFootnote__default.default).use(markdownItDefList__default.default).use(markdownItKatex__default.default);
1305
1340
  md.renderer.rules.link_open = function(tokens, idx, options, env, self) {
1306
1341
  const token = tokens[idx];
1307
1342
  token.attrPush(["target", "_blank"]);
@@ -1615,7 +1650,7 @@ var useDeepEffect_default = (effect, deps) => {
1615
1650
  prevDepsRef.current = deps;
1616
1651
  return effect();
1617
1652
  }
1618
- }, [depsChanged]);
1653
+ }, [depsChanged, effect, ...deps]);
1619
1654
  };
1620
1655
  var useRefState_default = (init) => {
1621
1656
  const [state, setState] = React16.useState(init);
@@ -2029,7 +2064,7 @@ var PdfPreview_default = ({ password, fileUrl, pageNo = 1, scale = 1, isHasThumb
2029
2064
  }, 500);
2030
2065
  onSetPageNo?.(currentPage + 1);
2031
2066
  }, [currentPage]);
2032
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: embedRef, className: styles_module_default.nsPreviewPdf, children: /* @__PURE__ */ jsxRuntime.jsx(core$1.Worker, { workerUrl: `//logosdata.cn/public/pdf/pdf.worker.min.js`, children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Splitter, { onResize: setSizes, children: [
2067
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: embedRef, className: styles_module_default.nsPreviewPdf, children: /* @__PURE__ */ jsxRuntime.jsx(core$1.Worker, { workerUrl: `https://logosdata.cn/public/pdf/pdf.worker.min.js`, children: /* @__PURE__ */ jsxRuntime.jsxs(antd.Splitter, { onResize: setSizes, children: [
2033
2068
  isHasThumbnails && /* @__PURE__ */ jsxRuntime.jsx(antd.Splitter.Panel, { resizable: false, size: sizes[0], min: 250, max: 500, collapsible: true, children: /* @__PURE__ */ jsxRuntime.jsx(Thumbnails, {}) }),
2034
2069
  /* @__PURE__ */ jsxRuntime.jsx(antd.Splitter.Panel, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "height-full", children: [
2035
2070
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -2050,13 +2085,13 @@ var PdfPreview_default = ({ password, fileUrl, pageNo = 1, scale = 1, isHasThumb
2050
2085
  // 启用 CMap 支持,解决中文字体显示问题
2051
2086
  // cMapUrl: 指定 CMap 文件的 URL,用于处理非拉丁字符(如中文)
2052
2087
  // cMapPacked: 使用压缩的 CMap 文件以提高性能
2053
- cMapUrl: "//logosdata.cn/public/pdf/pdfjs-dist@3.2.146/cmaps/",
2088
+ cMapUrl: "https://logosdata.cn/public/pdf/pdfjs-dist@3.2.146/cmaps/",
2054
2089
  // 使用可用的源
2055
2090
  cMapPacked: true,
2056
2091
  // 禁用字体子集化,确保完整字体加载
2057
2092
  disableFontFace: false,
2058
2093
  // 启用标准字体支持
2059
- standardFontDataUrl: "//logosdata.cn/public/pdf/pdfjs-dist@3.2.146/standard_fonts/",
2094
+ standardFontDataUrl: "https://logosdata.cn/public/pdf/pdfjs-dist@3.2.146/standard_fonts/",
2060
2095
  // 设置字体回退策略
2061
2096
  fallbackFontName: "Helvetica"
2062
2097
  });
@@ -6083,6 +6118,7 @@ exports.downloadFile = downloadFile;
6083
6118
  exports.emit = emit;
6084
6119
  exports.emitToChild = emitToChild;
6085
6120
  exports.executeScript = executeScript;
6121
+ exports.findTreeNodesByIds = findTreeNodesByIds;
6086
6122
  exports.formatDate = formatDate;
6087
6123
  exports.formatNumberWithCommas = formatNumberWithCommas;
6088
6124
  exports.formatSize = formatSize;