@hufe921/canvas-editor 0.9.131 → 0.9.133
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/CHANGELOG.md +53 -0
- package/README.md +1 -1
- package/dist/assets/catalog-Cno2frQt.js.map +1 -0
- package/dist/assets/group-Bz5rW3In.js.map +1 -0
- package/dist/assets/value-CEZhhW6y.js.map +1 -0
- package/dist/assets/wordCount-C2BnvS6l.js.map +1 -0
- package/dist/canvas-editor.js +17218 -0
- package/dist/canvas-editor.js.map +1 -0
- package/dist/canvas-editor.umd.cjs +76 -0
- package/dist/canvas-editor.umd.cjs.map +1 -0
- package/dist/src/editor/core/draw/Draw.d.ts +3 -0
- package/dist/src/editor/core/draw/interactive/Magnifier.d.ts +19 -0
- package/dist/src/editor/core/event/GlobalEvent.d.ts +1 -0
- package/dist/src/editor/core/observer/SelectionObserver.d.ts +1 -0
- package/dist/src/editor/dataset/constant/Editor.d.ts +1 -1
- package/dist/src/editor/dataset/constant/Magnifier.d.ts +2 -0
- package/dist/src/editor/dataset/enum/Area.d.ts +2 -2
- package/dist/src/editor/dataset/enum/Control.d.ts +1 -1
- package/dist/src/editor/dataset/enum/Editor.d.ts +6 -6
- package/dist/src/editor/dataset/enum/KeyMap.d.ts +1 -0
- package/dist/src/editor/dataset/enum/List.d.ts +3 -3
- package/dist/src/editor/dataset/enum/table/Table.d.ts +1 -1
- package/dist/src/editor/interface/Editor.d.ts +2 -0
- package/dist/src/editor/interface/Magnifier.d.ts +6 -0
- package/dist/src/editor/utils/element.d.ts +1 -1
- package/package.json +33 -24
- package/dist/canvas-editor.es.js +0 -25199
- package/dist/canvas-editor.es.js.map +0 -1
- package/dist/canvas-editor.umd.js +0 -102
- package/dist/canvas-editor.umd.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wordCount-C2BnvS6l.js","names":[],"sources":["../../src/editor/core/worker/works/wordCount.ts"],"sourcesContent":["import { IElement } from '../../../interface/Element'\n\nenum ElementType {\n TEXT = 'text',\n TABLE = 'table',\n HYPERLINK = 'hyperlink',\n CONTROL = 'control',\n LATEX = 'latex'\n}\n\nenum ControlComponent {\n VALUE = 'value'\n}\n\nconst ZERO = '\\u200B'\nconst WRAP = '\\n'\n\nfunction pickText(elementList: IElement[]): string {\n let text = ''\n let e = 0\n while (e < elementList.length) {\n const element = elementList[e]\n // 表格、超链接递归处理\n if (element.type === ElementType.TABLE) {\n if (element.trList) {\n for (let t = 0; t < element.trList.length; t++) {\n const tr = element.trList[t]\n for (let d = 0; d < tr.tdList.length; d++) {\n const td = tr.tdList[d]\n text += pickText(td.value)\n }\n }\n }\n } else if (element.type === ElementType.HYPERLINK) {\n const hyperlinkId = element.hyperlinkId\n const valueList: IElement[] = []\n while (e < elementList.length) {\n const hyperlinkE = elementList[e]\n if (hyperlinkId !== hyperlinkE.hyperlinkId) {\n e--\n break\n }\n delete hyperlinkE.type\n valueList.push(hyperlinkE)\n e++\n }\n text += pickText(valueList)\n } else if (element.type === ElementType.LATEX) {\n text += element.value\n } else if (element.controlId) {\n if (!element.control?.hide) {\n const controlId = element.controlId\n const valueList: IElement[] = []\n while (e < elementList.length) {\n const controlE = elementList[e]\n if (controlId !== controlE.controlId) {\n e--\n break\n }\n if (controlE.controlComponent === ControlComponent.VALUE) {\n delete controlE.controlId\n valueList.push(controlE)\n }\n e++\n }\n text += pickText(valueList)\n }\n } else if (\n (!element.type || element.type === ElementType.TEXT) &&\n !element.area?.hide\n ) {\n text += element.value\n }\n e++\n }\n return text\n}\n\nfunction groupText(text: string): string[] {\n const result: string[] = []\n let buffer = ''\n\n const pushBuffer = () => {\n if (buffer) {\n result.push(buffer)\n buffer = ''\n }\n }\n // 空白字符\n const isBlank = (code: number): boolean => {\n return (\n // ASCII whitespace\n code <= 32 ||\n // NBSP\n code === 160 ||\n // Unicode spaces\n (code >= 8192 && code <= 8202) ||\n // Narrow NBSP\n code === 8239 ||\n // Ideographic space (全角空格)\n code === 12288 ||\n // Zero-width chars\n (code >= 8203 && code <= 8207) ||\n // Direction marks\n (code >= 8234 && code <= 8238) ||\n // Word joiner\n code === 8288 ||\n // BOM\n code === 65279\n )\n }\n\n // 半角英文字母和数字\n const isHalfLetterOrNumber = (code: number) =>\n (code >= 48 && code <= 57) || // 0-9\n (code >= 65 && code <= 90) || // A-Z\n (code >= 97 && code <= 122) // a-z\n\n // 半角标点符号(包括连接符、小数点、斜杠等)\n const isHalfPunctuation = (code: number) =>\n (code >= 33 && code <= 47) ||\n (code >= 58 && code <= 64) ||\n (code >= 91 && code <= 96) ||\n (code >= 123 && code <= 126)\n\n // 可作为单词边界的标点(花括号等)\n const isWordBoundary = (code: number) => code === 123 || code === 125\n\n for (const char of text) {\n const code = char.charCodeAt(0)\n\n // 跳过空白字符\n if (isBlank(code)) {\n pushBuffer()\n continue\n }\n\n // 半角英文字母和数字 || 花括号:用于处理 {E_k} 这种形式 || 半角标点符号 => 可能是一个单词的开始或延续\n if (\n isHalfLetterOrNumber(code) ||\n isWordBoundary(code) ||\n isHalfPunctuation(code)\n ) {\n buffer += char\n continue\n }\n\n // 其他字符(中文、全角标点、全角特殊符号、拉丁文、特殊符号等):按独立字符处理\n pushBuffer()\n result.push(char)\n }\n\n pushBuffer()\n return result\n}\n\nonmessage = evt => {\n const elementList = <IElement[]>evt.data\n // 提取文本\n const originText = pickText(elementList)\n // 过滤文本\n const filterText = originText\n .replace(new RegExp(`^${ZERO}`), '')\n .replace(new RegExp(ZERO, 'g'), WRAP)\n // 文本分组\n const textGroup = groupText(filterText)\n postMessage(textGroup.length)\n}\n"],"mappings":"YAEA,IAAK,EAAL,SAAA,EAAA,OACE,GAAA,KAAO,OACP,EAAA,MAAQ,QACR,EAAA,UAAY,YACZ,EAAA,QAAU,UACV,EAAA,MAAQ,WALL,GAAA,EAAA,CAMJ,CAEI,EAAL,SAAA,EAAA,OACE,GAAA,MAAQ,WADL,GAAA,EAAA,CAEJ,CAKD,SAAS,EAAS,EAAiC,CACjD,IAAI,EAAO,GACP,EAAI,EACR,KAAO,EAAI,EAAY,QAAQ,CAC7B,IAAM,EAAU,EAAY,GAE5B,GAAI,EAAQ,OAAS,EAAY,UAC3B,EAAQ,OACV,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAO,OAAQ,IAAK,CAC9C,IAAM,EAAK,EAAQ,OAAO,GAC1B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,OAAO,OAAQ,IAAK,CACzC,IAAM,EAAK,EAAG,OAAO,GACrB,GAAQ,EAAS,EAAG,MAAM,WAIvB,EAAQ,OAAS,EAAY,UAAW,CACjD,IAAM,EAAc,EAAQ,YACtB,EAAwB,EAAE,CAChC,KAAO,EAAI,EAAY,QAAQ,CAC7B,IAAM,EAAa,EAAY,GAC/B,GAAI,IAAgB,EAAW,YAAa,CAC1C,IACA,MAEF,OAAO,EAAW,KAClB,EAAU,KAAK,EAAW,CAC1B,IAEF,GAAQ,EAAS,EAAU,SAClB,EAAQ,OAAS,EAAY,MACtC,GAAQ,EAAQ,cACP,EAAQ,cACb,CAAC,EAAQ,SAAS,KAAM,CAC1B,IAAM,EAAY,EAAQ,UACpB,EAAwB,EAAE,CAChC,KAAO,EAAI,EAAY,QAAQ,CAC7B,IAAM,EAAW,EAAY,GAC7B,GAAI,IAAc,EAAS,UAAW,CACpC,IACA,MAEE,EAAS,mBAAqB,EAAiB,QACjD,OAAO,EAAS,UAChB,EAAU,KAAK,EAAS,EAE1B,IAEF,GAAQ,EAAS,EAAU,QAG5B,CAAC,EAAQ,MAAQ,EAAQ,OAAS,EAAY,OAC/C,CAAC,EAAQ,MAAM,OAEf,GAAQ,EAAQ,OAElB,IAEF,OAAO,EAGT,SAAS,EAAU,EAAwB,CACzC,IAAM,EAAmB,EAAE,CACvB,EAAS,GAEP,MAAmB,CACvB,AAEE,KADA,EAAO,KAAK,EAAO,CACV,KAIP,EAAW,GAGb,GAAQ,IAER,IAAS,KAER,GAAQ,MAAQ,GAAQ,MAEzB,IAAS,MAET,IAAS,OAER,GAAQ,MAAQ,GAAQ,MAExB,GAAQ,MAAQ,GAAQ,MAEzB,IAAS,MAET,IAAS,MAKP,EAAwB,GAC3B,GAAQ,IAAM,GAAQ,IACtB,GAAQ,IAAM,GAAQ,IACtB,GAAQ,IAAM,GAAQ,IAGnB,EAAqB,GACxB,GAAQ,IAAM,GAAQ,IACtB,GAAQ,IAAM,GAAQ,IACtB,GAAQ,IAAM,GAAQ,IACtB,GAAQ,KAAO,GAAQ,IAGpB,EAAkB,GAAiB,IAAS,KAAO,IAAS,IAElE,IAAK,IAAM,KAAQ,EAAM,CACvB,IAAM,EAAO,EAAK,WAAW,EAAE,CAG/B,GAAI,EAAQ,EAAK,CAAE,CACjB,GAAY,CACZ,SAIF,GACE,EAAqB,EAAK,EAC1B,EAAe,EAAK,EACpB,EAAkB,EAAK,CACvB,CACA,GAAU,EACV,SAIF,GAAY,CACZ,EAAO,KAAK,EAAK,CAInB,OADA,GAAY,CACL,EAGT,UAAY,GAAO,CACjB,IAAM,EAA0B,EAAI,KAQ9B,EAAY,EANC,EAAS,EAET,CAChB,QAAY,OAAO,KAAW,CAAE,GAAG,CACnC,QAAY,OAAO,IAAM,IAAI,CAAE;EAEN,CAAW,CACvC,YAAY,EAAU,OAAO"}
|