@hufe921/canvas-editor 1.0.5 → 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 +61 -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 +4786 -2873
- 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 +9 -0
- package/dist/src/editor/core/command/CommandAdapt.d.ts +11 -2
- package/dist/src/editor/core/contextmenu/ContextMenu.d.ts +7 -0
- package/dist/src/editor/core/draw/Draw.d.ts +21 -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 +14 -1
- package/dist/src/editor/core/draw/interactive/AreaTool.d.ts +18 -0
- 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/date/DatePicker.d.ts +1 -0
- package/dist/src/editor/core/draw/particle/latex/LaTexParticle.d.ts +6 -1
- package/dist/src/editor/core/draw/particle/table/TableOperate.d.ts +2 -0
- 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/GlobalEvent.d.ts +1 -0
- 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/Common.d.ts +4 -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 +6 -5
- package/dist/src/editor/interface/Area.d.ts +8 -0
- package/dist/src/editor/interface/Checkbox.d.ts +3 -0
- package/dist/src/editor/interface/Control.d.ts +2 -1
- 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 +12 -0
- package/dist/src/editor/interface/Listener.d.ts +7 -1
- package/dist/src/editor/interface/Row.d.ts +12 -0
- package/dist/src/editor/interface/table/Td.d.ts +2 -0
- package/dist/src/editor/utils/element.d.ts +1 -0
- package/dist/src/editor/utils/print.d.ts +1 -0
- package/package.json +14 -13
- package/dist/assets/catalog-B-cbxN0s.js.map +0 -1
- package/dist/assets/value-CLcLo2uw.js.map +0 -1
- package/dist/assets/wordCount-BWZRHbSB.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wordCount-BWZRHbSB.js","names":[],"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":"YAAA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,SAAA,WACA,EAAA,QAAA,WACF,EAAA,CAAA,CAAA,ECeA,SAAS,EAAS,EAAiC,CACjD,IAAI,EAAO,GACP,EAAI,EACR,KAAO,EAAI,EAAY,QAAQ,CAC7B,IAAM,EAAU,EAAY,GACtB,EAAU,EAAQ,MAExB,GACI,GAAS,QACX,EAAQ,EAAQ,OAAS,EAAE,CAAC,OAAS,EAAU,QAC/C,CACA,IACA,QACF,CAEA,GAAI,EAAQ,OAAA,QACN,IAAA,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,KAAK,CAC3B,CACF,OAEG,GAAI,EAAQ,OAAA,YAAgC,CACjD,IAAM,EAAc,EAAQ,YACtB,EAAwB,CAAC,EAC/B,KAAO,EAAI,EAAY,QAAQ,CAC7B,IAAM,EAAa,EAAY,GAC/B,GAAI,IAAgB,EAAW,YAAa,CAC1C,IACA,KACF,CACA,OAAO,EAAW,KAClB,EAAU,KAAK,CAAU,EACzB,GACF,CACA,GAAQ,EAAS,CAAS,CAC5B,MAAO,GAAI,EAAQ,OAAA,QACjB,GAAQ,EAAQ,WACX,GAAI,EAAQ,UACb,IAAA,CAAC,EAAQ,SAAS,KAAM,CAC1B,IAAM,EAAY,EAAQ,UACpB,EAAwB,CAAC,EAC/B,KAAO,EAAI,EAAY,QAAQ,CAC7B,IAAM,EAAW,EAAY,GAC7B,GAAI,IAAc,EAAS,UAAW,CACpC,IACA,KACF,CACI,EAAS,mBAAA,UACX,OAAO,EAAS,UAChB,EAAU,KAAK,CAAQ,GAEzB,GACF,CACA,GAAQ,EAAS,CAAS,CAC5B,OAEC,CAAC,EAAQ,MAAQ,EAAQ,OAAA,SAC1B,CAAC,EAAQ,MAAM,OAEf,GAAQ,EAAQ,OAElB,GACF,CACA,OAAO,CACT,CAEA,SAAS,EAAU,EAAwB,CACzC,IAAM,EAAmB,CAAC,EACtB,EAAS,GAEP,MAAmB,CACvB,AAEE,KADA,EAAO,KAAK,CAAM,EACT,GAEb,EAEM,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,CAAC,EAG9B,GAAI,EAAQ,CAAI,EAAG,CACjB,EAAW,EACX,QACF,CAGA,GACE,EAAqB,CAAI,GACzB,EAAe,CAAI,GACnB,EAAkB,CAAI,EACtB,CACA,GAAU,EACV,QACF,CAGA,EAAW,EACX,EAAO,KAAK,CAAI,CAClB,CAGA,OADA,EAAW,EACJ,CACT,CAEA,UAAY,GAAO,CACjB,IAAM,EAA0B,EAAI,KAQ9B,EAAY,EANC,EAAS,CAET,CAAA,CAChB,QAAY,OAAO,IAAU,EAAG,EAAE,CAAC,CACnC,QAAY,OAAO,IAAM,GAAG,EAAG;CAEN,CAAU,EACtC,YAAY,EAAU,MAAM,CAC9B"}
|