@hufe921/canvas-editor 1.0.6 → 1.1.0
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 +32 -0
- package/README.md +9 -8
- package/dist/assets/catalog-ezAM0r6o.js.map +1 -0
- package/dist/assets/group-BZtj1M7o.js.map +1 -1
- package/dist/assets/value-DKLIEqC1.js.map +1 -0
- package/dist/assets/wordCount-xSvDqE7d.js.map +1 -0
- package/dist/canvas-editor.js +4446 -2824
- package/dist/canvas-editor.js.map +1 -1
- package/dist/canvas-editor.umd.cjs +42 -42
- package/dist/canvas-editor.umd.cjs.map +1 -1
- package/dist/src/editor/core/command/Command.d.ts +5 -0
- package/dist/src/editor/core/command/CommandAdapt.d.ts +7 -2
- package/dist/src/editor/core/contextmenu/ContextMenu.d.ts +7 -0
- package/dist/src/editor/core/draw/Draw.d.ts +17 -10
- package/dist/src/editor/core/draw/column/ColumnManager.d.ts +2 -1
- package/dist/src/editor/core/draw/control/Control.d.ts +3 -2
- package/dist/src/editor/core/draw/control/interactive/ControlSearch.d.ts +2 -1
- package/dist/src/editor/core/draw/control/richtext/Border.d.ts +2 -1
- package/dist/src/editor/core/draw/frame/Background.d.ts +2 -1
- package/dist/src/editor/core/draw/frame/Badge.d.ts +3 -1
- package/dist/src/editor/core/draw/frame/Footer.d.ts +2 -1
- package/dist/src/editor/core/draw/frame/Header.d.ts +2 -1
- package/dist/src/editor/core/draw/frame/LineNumber.d.ts +2 -1
- package/dist/src/editor/core/draw/frame/Margin.d.ts +2 -1
- package/dist/src/editor/core/draw/frame/PageBorder.d.ts +2 -1
- package/dist/src/editor/core/draw/frame/PageNumber.d.ts +2 -1
- package/dist/src/editor/core/draw/frame/Placeholder.d.ts +2 -1
- package/dist/src/editor/core/draw/frame/Watermark.d.ts +4 -3
- package/dist/src/editor/core/draw/graffiti/Graffiti.d.ts +2 -1
- package/dist/src/editor/core/draw/interactive/Area.d.ts +2 -1
- package/dist/src/editor/core/draw/interactive/Group.d.ts +2 -1
- package/dist/src/editor/core/draw/interactive/Search.d.ts +2 -1
- package/dist/src/editor/core/draw/interactive/Spellcheck.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/CheckboxParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/HyperlinkParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/ImageParticle.d.ts +3 -1
- package/dist/src/editor/core/draw/particle/LabelParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/LineBreakParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/ListParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/PageBreakParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/RadioParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/SeparatorParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/SubscriptParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/SuperscriptParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/TextParticle.d.ts +8 -2
- package/dist/src/editor/core/draw/particle/TraceParticle.d.ts +3 -2
- package/dist/src/editor/core/draw/particle/WhiteSpaceParticle.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/block/BlockParticle.d.ts +3 -1
- package/dist/src/editor/core/draw/particle/block/modules/BaseBlock.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/block/modules/VideoBlock.d.ts +2 -1
- package/dist/src/editor/core/draw/particle/latex/LaTexParticle.d.ts +6 -1
- package/dist/src/editor/core/draw/particle/table/TableParticle.d.ts +3 -2
- package/dist/src/editor/core/draw/richtext/AbstractRichText.d.ts +3 -2
- package/dist/src/editor/core/draw/richtext/Highlight.d.ts +2 -1
- package/dist/src/editor/core/draw/richtext/Strikeout.d.ts +2 -1
- package/dist/src/editor/core/draw/richtext/Underline.d.ts +2 -1
- package/dist/src/editor/core/draw/ruler/Ruler.d.ts +31 -2
- package/dist/src/editor/core/event/pagePointer.d.ts +8 -0
- package/dist/src/editor/core/layout/LayoutEngine.d.ts +31 -0
- package/dist/src/editor/core/layout/TextMeasurer.d.ts +10 -0
- package/dist/src/editor/core/range/RangeManager.d.ts +2 -1
- package/dist/src/editor/core/render/BackendFactory.d.ts +3 -0
- package/dist/src/editor/core/render/RenderBackend.d.ts +24 -0
- package/dist/src/editor/core/render/canvas/CanvasBackend.d.ts +19 -0
- package/dist/src/editor/core/render/canvas/CanvasRenderer.d.ts +5 -0
- package/dist/src/editor/core/render/canvas/CanvasSurface.d.ts +17 -0
- package/dist/src/editor/core/render/model/DisplayList.d.ts +62 -0
- package/dist/src/editor/core/render/model/RenderContext.d.ts +48 -0
- package/dist/src/editor/core/render/svg/SvgBackend.d.ts +22 -0
- package/dist/src/editor/core/render/svg/SvgRenderer.d.ts +9 -0
- package/dist/src/editor/core/render/svg/SvgSurface.d.ts +13 -0
- package/dist/src/editor/core/render/svg/scene/PathCompiler.d.ts +16 -0
- package/dist/src/editor/core/render/svg/scene/ResourceKey.d.ts +7 -0
- package/dist/src/editor/core/render/svg/scene/SceneCompiler.d.ts +9 -0
- package/dist/src/editor/core/render/svg/scene/SceneKey.d.ts +28 -0
- package/dist/src/editor/core/render/svg/scene/SceneNode.d.ts +20 -0
- package/dist/src/editor/core/render/svg/scene/SceneReconciler.d.ts +12 -0
- package/dist/src/editor/core/render/svg/scene/SvgNodeFactory.d.ts +14 -0
- package/dist/src/editor/dataset/constant/Common.d.ts +1 -0
- package/dist/src/editor/dataset/enum/Editor.d.ts +4 -0
- package/dist/src/editor/dataset/enum/TabStop.d.ts +11 -0
- package/dist/src/editor/index.d.ts +5 -4
- package/dist/src/editor/interface/Draw.d.ts +4 -0
- package/dist/src/editor/interface/Editor.d.ts +6 -0
- package/dist/src/editor/interface/Element.d.ts +10 -0
- package/dist/src/editor/interface/Listener.d.ts +5 -1
- package/dist/src/editor/interface/Row.d.ts +3 -0
- package/dist/src/editor/utils/element.d.ts +1 -0
- package/dist/src/editor/utils/print.d.ts +1 -0
- package/package.json +10 -10
- package/dist/assets/catalog-B-cbxN0s.js.map +0 -1
- package/dist/assets/value-93HzxRrf.js.map +0 -1
- package/dist/assets/wordCount-BWZRHbSB.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wordCount-xSvDqE7d.js","names":["TraceType","\"INSERTED\"","\"DELETED\"","pickText","text","e","elementList","element","records","t","tr","d","td","hyperlinkId","valueList","hyperlinkE","controlId","controlE","groupText","result","buffer","pushBuffer","isBlank","code","isHalfLetterOrNumber","isHalfPunctuation","isWordBoundary","char","evt","textGroup"],"sources":["../../src/editor/dataset/enum/Trace.ts","../../src/editor/core/worker/works/wordCount.ts"],"sourcesContent":["export enum TraceType {\n INSERTED = 'inserted',\n DELETED = 'deleted'\n}\n","import { TraceType } from '../../../dataset/enum/Trace'\nimport { 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 const records = element.trace\n // 被删除的留痕元素不纳入字数统计\n if (\n !!records?.length &&\n records[records.length - 1].type === TraceType.DELETED\n ) {\n e++\n continue\n }\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":"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"}
|