@hailin-zheng/editor-core 1.0.12 → 1.0.15
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/lib/doc-ruler.js.map +1 -1
- package/lib/framework/common-util.js.map +1 -1
- package/lib/framework/document-change.js.map +1 -1
- package/lib/framework/document-combine.js.map +1 -1
- package/lib/framework/document-comment.js.map +1 -1
- package/lib/framework/document-context.js.map +1 -1
- package/lib/framework/document-eval-func.js.map +1 -1
- package/lib/framework/document-event.js.map +1 -1
- package/lib/framework/document-history.js.map +1 -1
- package/lib/framework/document-images-loader.js.map +1 -1
- package/lib/framework/document-input-cursor.js.map +1 -1
- package/lib/framework/document-paint.js.map +1 -1
- package/lib/framework/document-print-offscreen.js.map +1 -1
- package/lib/framework/document-print.js.map +1 -1
- package/lib/framework/document-segmenter.js.map +1 -1
- package/lib/framework/document-selection.js.map +1 -1
- package/lib/framework/document-template.js.map +1 -1
- package/lib/framework/document-textline-mode.js.map +1 -1
- package/lib/framework/element-define.js.map +1 -1
- package/lib/framework/element-event-define.js.map +1 -1
- package/lib/framework/element-measure.js.map +1 -1
- package/lib/framework/element-paint.js.map +1 -1
- package/lib/framework/element-props.js.map +1 -1
- package/lib/framework/element-reader.js.map +1 -1
- package/lib/framework/element-render-cut.js.map +1 -1
- package/lib/framework/element-serialize.js.map +1 -1
- package/lib/framework/element-util.js.map +1 -1
- package/lib/framework/impl/checkbox/checkbox-impl.js.map +1 -1
- package/lib/framework/impl/comments/comment-content-impl.js.map +1 -1
- package/lib/framework/impl/comments/comment-element-impl.js.map +1 -1
- package/lib/framework/impl/comments/comments-container-impl.js.map +1 -1
- package/lib/framework/impl/comments/comments-util.js.map +1 -1
- package/lib/framework/impl/comments/validate-msg-impl.js.map +1 -1
- package/lib/framework/impl/data-element/data-decorate-impl.js.map +1 -1
- package/lib/framework/impl/data-element/data-element-barcode.js.map +1 -1
- package/lib/framework/impl/data-element/data-element-base-impl.js.map +1 -1
- package/lib/framework/impl/data-element/data-element-check-impl.js.map +1 -1
- package/lib/framework/impl/data-element/data-element-date-impl.js.map +1 -1
- package/lib/framework/impl/data-element/data-element-group-impl.js.map +1 -1
- package/lib/framework/impl/data-element/data-element-image-impl.js.map +1 -1
- package/lib/framework/impl/data-element/data-element-list-impl.js.map +1 -1
- package/lib/framework/impl/data-element/data-element-text-impl.js.map +1 -1
- package/lib/framework/impl/decorate/fill-null-space-imple.js.map +1 -1
- package/lib/framework/impl/document/doc-body-impl.js.map +1 -1
- package/lib/framework/impl/document/doc-body-part-impl.js.map +1 -1
- package/lib/framework/impl/document/doc-container-impl.js.map +1 -1
- package/lib/framework/impl/document/doc-footer-impl.js.map +1 -1
- package/lib/framework/impl/document/doc-header-impl.js.map +1 -1
- package/lib/framework/impl/document/doc-impl.js.map +1 -1
- package/lib/framework/impl/media-formula/menstrual-history.js.map +1 -1
- package/lib/framework/impl/paragraph/p-impl.js.map +1 -1
- package/lib/framework/impl/picture/image-impl.js.map +1 -1
- package/lib/framework/impl/radio/radio-impl.js.map +1 -1
- package/lib/framework/impl/symbol/br-symbol-impl.js.map +1 -1
- package/lib/framework/impl/symbol/p-symbol-impl.js.map +1 -1
- package/lib/framework/impl/table/table-cell-impl.js.map +1 -1
- package/lib/framework/impl/table/table-impl.js.map +1 -1
- package/lib/framework/impl/table/table-row-impl.js.map +1 -1
- package/lib/framework/impl/table/table-split-cell-patch.js.map +1 -1
- package/lib/framework/impl/table/table-split-cell.js.map +1 -1
- package/lib/framework/impl/table/table-util.js.map +1 -1
- package/lib/framework/impl/text/text-impl.js.map +1 -1
- package/lib/framework/impl/text/track-run-impl.js.map +1 -1
- package/lib/framework/notify.js.map +1 -1
- package/lib/framework/range-util.js.map +1 -1
- package/lib/framework/render-context.js.map +1 -1
- package/lib/framework/render-define.js.map +1 -1
- package/lib/framework/selection-overlays.js.map +1 -1
- package/lib/texteditor.js.map +1 -1
- package/lib/util/subject.js.map +1 -1
- package/lib/util/table-bind.js.map +1 -1
- package/package.json +1 -1
package/lib/doc-ruler.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"doc-ruler.js","sourceRoot":"","sources":["../src/med_editor/doc-ruler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAkB,MAAM,gCAAgC,CAAC;AAGhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAU7E,MAAM,OAAO,OAAO;IAcG;IAAkC;IAAiC;IAb9E,GAAG,CAA4B;IAC/B,OAAO,CAAc;IAC7B,MAAM;IACE,UAAU,GAAG,EAAE,CAAC;IACxB,SAAS;IACD,MAAM,CAGb;IACO,YAAY,CAAmB;IAC/B,iBAAiB,GAAoB,EAAE,CAAC;IACxC,eAAe,GAAoB,EAAE,CAAC;IACtC,kBAAkB,GAA+B,MAAM,CAAC;IAChE,YAAmB,MAAyB,EAAS,WAAwB,EAAS,EAAkB;QAArF,WAAM,GAAN,MAAM,CAAmB;QAAS,gBAAW,GAAX,WAAW,CAAa;QAAS,OAAE,GAAF,EAAE,CAAgB;QACpG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG;YACX,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC;QACF,IAAI,CAAC,MAAM,GAAG;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACH,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACnE,CAAC;IAED,cAAc,CAAC,OAAoB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7G,uDAAuD;IAC3D,CAAC;IAED,cAAc;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAA+B,CAAC;QAC3D,OAAO,MAAM,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;IAChD,CAAC;IAEO,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAa;QAC/E,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEO,eAAe,CAAC,CAAS,EAAE,CAAS;QACxC,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,CAAC,IAAI,CAAC,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,aAAa,CAAC,CAAS,EAAE,CAAS;QACtC,MAAM,MAAM,GAAoC,EAAE,CAAC;QACnD,CAAC,IAAI,CAAC,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,WAAW,CAAC,IAAY;QAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,KAAK,CAAC;IACzB,CAAC;IAEO,QAAQ,CAAC,MAAuB;QACpC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,IAAI,GAAG,CAAC;YACT,CAAC,IAAI,GAAG,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,EAAE;gBACT,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzB;iBAAM;gBACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzB;SACJ;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEO,QAAQ,CAAC,IAAY,EAAE,CAAS,EAAE,CAAS;QAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,WAAW;QACP,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEO,eAAe,CAAC,GAAe;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE;YACpD,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAChC;aAAM,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE;YACzD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAChC;aAAM;YACH,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACzB;IACL,CAAC;IAEO,WAAW,CAAC,GAAe;QAC/B,OAAO;YACH,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YACrC,CAAC,EAAE,GAAG,CAAC,OAAO;SACjB,CAAA;IACL,CAAC;IAEO,eAAe,CAAC,GAAe;QACnC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE;YACzD,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO;SACV;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9C,cAAc;QACd,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACzB,OAAO;SACV;aAAM;YACH,IAAI,SAAS,GAAG,CAAC,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;aAC1B;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;aAC1B;SACJ;QACD,IAAI,KAAK,KAAK,CAAC,EAAE;YACb,OAAO;SACV;QACD,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACvG,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;YAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,MAAM,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAC1G,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;YAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;IACL,CAAC;IAEO,aAAa,CAAC,GAAe;QACjC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAGO,WAAW,CAAC,EAAY,EAAE,IAAqB;QACnD,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YACzD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACrL,CAAC,GAAG,CAAC,CAAC,CAAA;aACT;SACJ;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAGD;;OAEG;IACK,QAAQ;QACZ,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QACrH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,MAAM,MAAM,GAAoB,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACxB,MAAM;aACT;YACD,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7E;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IAEO,eAAe;QACnB,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE;YAChC,OAAO;SACV;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAqB,CAAC;QAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,YAA4B,CAAC;QAC1E,MAAM,UAAU,GAAG,cAAc,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC3G,MAAM;QACN,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAA0B,CAAC;QAClH,QAAQ;QACR,MAAM,aAAa,GAAG,WAAW,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAA;QACvE,MAAM;QACN,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,oBAAoB,CAAyB,CAAC;QACxG,QAAQ;QACR,MAAM,YAAY,GAAG,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;QACrE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC;QACjE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEO,WAAW;QACf,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QACD,OAAO,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAEO,iBAAiB,CAAC,WAAyB;QAC/C,MAAM,KAAK,GAA6B,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,YAAY,IAAI,YAAY,YAAY,oBAAoB,EAAE;YAC/D,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,YAAY,YAAY,oBAAoB,EAAE;YAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,oBAAoB,CAAyB,CAAC;YAC1G,MAAM,YAAY,GAAG,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;YACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAA0B,CAAC;gBACrE,MAAM,GAAG,GAAG,WAAW,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAA;gBAC7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACzE;SACJ;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa;QACpD,CAAC,IAAI,GAAG,CAAC;QACT,CAAC,IAAI,GAAG,CAAC;QACT,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAA;QACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SACtB;IACL,CAAC;IAED,SAAS;QACL,OAAO;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QACnC,sDAAsD;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAA+B,CAAC;QAC3D,IAAI,KAAK,KAAK,CAAC,EAAE;YACb,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;SAC/B;aAAM;YACH,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;SAC/D;IACL,CAAC;CAGJ"}
|
1
|
+
{"version":3,"file":"doc-ruler.js","sourceRoot":"lib/","sources":["doc-ruler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAkB,MAAM,gCAAgC,CAAC;AAGhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAU7E,MAAM,OAAO,OAAO;IAcG;IAAkC;IAAiC;IAb9E,GAAG,CAA4B;IAC/B,OAAO,CAAc;IAC7B,MAAM;IACE,UAAU,GAAG,EAAE,CAAC;IACxB,SAAS;IACD,MAAM,CAGb;IACO,YAAY,CAAmB;IAC/B,iBAAiB,GAAoB,EAAE,CAAC;IACxC,eAAe,GAAoB,EAAE,CAAC;IACtC,kBAAkB,GAA+B,MAAM,CAAC;IAChE,YAAmB,MAAyB,EAAS,WAAwB,EAAS,EAAkB;QAArF,WAAM,GAAN,MAAM,CAAmB;QAAS,gBAAW,GAAX,WAAW,CAAa;QAAS,OAAE,GAAF,EAAE,CAAgB;QACpG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG;YACX,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC;QACF,IAAI,CAAC,MAAM,GAAG;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACH,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACnE,CAAC;IAED,cAAc,CAAC,OAAoB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7G,uDAAuD;IAC3D,CAAC;IAED,cAAc;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAA+B,CAAC;QAC3D,OAAO,MAAM,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;IAChD,CAAC;IAEO,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAAa;QAC/E,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEO,eAAe,CAAC,CAAS,EAAE,CAAS;QACxC,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,CAAC,IAAI,CAAC,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,aAAa,CAAC,CAAS,EAAE,CAAS;QACtC,MAAM,MAAM,GAAoC,EAAE,CAAC;QACnD,CAAC,IAAI,CAAC,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,WAAW,CAAC,IAAY;QAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,KAAK,CAAC;IACzB,CAAC;IAEO,QAAQ,CAAC,MAAuB;QACpC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,IAAI,GAAG,CAAC;YACT,CAAC,IAAI,GAAG,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,EAAE;gBACT,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzB;iBAAM;gBACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzB;SACJ;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEO,QAAQ,CAAC,IAAY,EAAE,CAAS,EAAE,CAAS;QAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,WAAW;QACP,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEO,eAAe,CAAC,GAAe;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE;YACpD,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAChC;aAAM,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE;YACzD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAChC;aAAM;YACH,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACzB;IACL,CAAC;IAEO,WAAW,CAAC,GAAe;QAC/B,OAAO;YACH,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YACrC,CAAC,EAAE,GAAG,CAAC,OAAO;SACjB,CAAA;IACL,CAAC;IAEO,eAAe,CAAC,GAAe;QACnC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE;YACzD,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO;SACV;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9C,cAAc;QACd,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACzB,OAAO;SACV;aAAM;YACH,IAAI,SAAS,GAAG,CAAC,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;aAC1B;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;aAC1B;SACJ;QACD,IAAI,KAAK,KAAK,CAAC,EAAE;YACb,OAAO;SACV;QACD,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;SAClC;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACvG,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;YAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,MAAM,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAC1G,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;YAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;IACL,CAAC;IAEO,aAAa,CAAC,GAAe;QACjC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAGO,WAAW,CAAC,EAAY,EAAE,IAAqB;QACnD,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YACzD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACrL,CAAC,GAAG,CAAC,CAAC,CAAA;aACT;SACJ;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAGD;;OAEG;IACK,QAAQ;QACZ,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QACrH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,MAAM,MAAM,GAAoB,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACxB,MAAM;aACT;YACD,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7E;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IAEO,eAAe;QACnB,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE;YAChC,OAAO;SACV;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAqB,CAAC;QAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,YAA4B,CAAC;QAC1E,MAAM,UAAU,GAAG,cAAc,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC3G,MAAM;QACN,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAA0B,CAAC;QAClH,QAAQ;QACR,MAAM,aAAa,GAAG,WAAW,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAA;QACvE,MAAM;QACN,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,oBAAoB,CAAyB,CAAC;QACxG,QAAQ;QACR,MAAM,YAAY,GAAG,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;QACrE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC;QACjE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEO,WAAW;QACf,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QACD,OAAO,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAEO,iBAAiB,CAAC,WAAyB;QAC/C,MAAM,KAAK,GAA6B,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,YAAY,IAAI,YAAY,YAAY,oBAAoB,EAAE;YAC/D,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,YAAY,YAAY,oBAAoB,EAAE;YAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,oBAAoB,CAAyB,CAAC;YAC1G,MAAM,YAAY,GAAG,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;YACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAA0B,CAAC;gBACrE,MAAM,GAAG,GAAG,WAAW,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAA;gBAC7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACzE;SACJ;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa;QACpD,CAAC,IAAI,GAAG,CAAC;QACT,CAAC,IAAI,GAAG,CAAC;QACT,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAA;QACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SACtB;IACL,CAAC;IAED,SAAS;QACL,OAAO;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QACnC,sDAAsD;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAA+B,CAAC;QAC3D,IAAI,KAAK,KAAK,CAAC,EAAE;YACb,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;SAC/B;aAAM;YACH,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;SAC/D;IACL,CAAC;CAGJ","sourcesContent":["import { ElementUtil } from \"./framework/element-util\";\nimport { DocumentCursor, SelectionState } from \"./framework/document-selection\";\nimport { Position, ViewOptions } from \"./framework/element-define\";\nimport { HitEventInfo } from \"./framework/element-event-define\";\nimport { DocumentRenderObject } from \"./framework/impl/document/doc-impl\";\nimport { ParagraphElement, ParagraphRenderObject } from \"./framework/impl/paragraph/p-impl\";\nimport { TableCellRenderObject } from \"./framework/impl/table/table-cell-impl\";\nimport { TableRowRenderObject } from \"./framework/impl/table/table-row-impl\";\nimport { RenderObject } from \"./framework/render-define\";\n\nexport interface RuleOptions {\n width: number;\n pagePL: number;\n pagePR: number;\n docLeft: number;\n\n}\nexport class DocRule {\n private ctx!: CanvasRenderingContext2D;\n private options: RuleOptions;\n //标尺高度\n private ruleHeight = 30;\n //当前标尺的位置\n private thumbX: {\n indent: number,\n hanging: number\n }\n private mouseDownPos!: Position | null;\n private indentThumbPoints: Array<Position> = [];\n private hangThumbPoints: Array<Position> = [];\n private mouseDownThumbType: 'none' | 'indent' | 'hang' = 'none';\n constructor(public canvas: HTMLCanvasElement, public viewOptions: ViewOptions, public ss: SelectionState) {\n this.ctx = this.canvas.getContext('2d') as CanvasRenderingContext2D;\n this.options = {\n width: 0,\n pagePL: 0,\n pagePR: 0,\n docLeft: 0\n };\n this.thumbX = {\n indent: 0,\n hanging: 0\n };\n this.canvas.addEventListener(\"mousedown\", (evt) => this.canvasMousedown(evt));\n this.canvas.addEventListener(\"mousemove\", (evt) => this.canvasMousemove(evt));\n this.canvas.addEventListener(\"mouseup\", (evt) => this.canvasMouseup(evt));\n }\n\n destroy(): void {\n this.canvas.removeEventListener(\"mousedown\", this.canvasMousedown);\n this.canvas.removeEventListener(\"mousemove\", this.canvasMousemove);\n this.canvas.removeEventListener(\"mouseup\", this.canvasMouseup);\n }\n\n setRuleOptions(options: RuleOptions) {\n this.options = options;\n const convertRatio = this.viewOptions.mmToPixelsRatio;\n this.options.pagePL = Math.floor(this.options.pagePL * convertRatio);\n this.options.pagePR = Math.floor(this.options.pagePR * convertRatio);\n this.scaleView();\n ElementUtil.setCanvasProps(this.canvas, this.ctx, { width: this.getParentWidth(), height: this.ruleHeight });\n //this.canvas.style.left = this.options.docLeft + 'px';\n }\n\n getParentWidth(): number {\n const parent = this.canvas.parentElement as HTMLDivElement;\n return parent.getBoundingClientRect().width;\n }\n\n private fillRect(x: number, y: number, width: number, height: number, color: string) {\n this.ctx.fillStyle = color;\n this.ctx.fillRect(x, y, width, height);\n }\n\n private drawIndentThumb(x: number, y: number): Array<Position> {\n const points: Array<Position> = [];\n x -= 4;\n points.push({ x: x, y });\n points.push({ x: x, y: y + 3 });\n points.push({ x: x + 4, y: y + 7 });\n points.push({ x: x + 8, y: y + 3 });\n points.push({ x: x + 8, y });\n points.push({ x: x, y });\n this.drawLine(points);\n return points;\n }\n\n private drawHangThumb(x: number, y: number): Array<Position> {\n const points: Array<{ x: number, y: number }> = [];\n x -= 4;\n points.push({ x: x, y });\n points.push({ x: x, y: y - 3 });\n points.push({ x: x + 4, y: y - 7 });\n points.push({ x: x + 8, y: y - 3 });\n points.push({ x: x + 8, y });\n points.push({ x: x, y });\n points.push({ x: x, y: y + 3 });\n points.push({ x: x + 8, y: y + 3 });\n points.push({ x: x + 8, y: y });\n this.drawLine(points);\n return points;\n }\n\n private measureText(text: string) {\n this.ctx.font = \"8px 'Times New Roman'\";\n const measure = this.ctx.measureText(text);\n return measure.width;\n }\n\n private drawLine(points: Array<Position>): void {\n this.ctx.beginPath();\n this.ctx.save();\n this.ctx.fillStyle = \"white\";\n this.ctx.lineWidth = 0.5;\n for (let j = 0; j < points.length; j++) {\n let { x, y } = points[j];\n x += 0.5;\n y += 0.5;\n if (j === 0) {\n this.ctx.moveTo(x, y);\n } else {\n this.ctx.lineTo(x, y);\n }\n }\n this.ctx.stroke();\n this.ctx.fill();\n this.ctx.closePath();\n this.ctx.restore();\n }\n\n private drawText(text: string, x: number, y: number) {\n this.ctx.save();\n this.ctx.fillStyle = \"rgb(0,0,0)\";\n this.ctx.textBaseline = \"alphabetic\";\n this.ctx.font = \"8px 'Times New Roman'\";\n this.ctx.fillText(text, x, y + 8 - 1);\n this.ctx.restore();\n }\n\n /**\n * 刷新新的状态\n * @param indent \n * @param hang \n */\n refreshRule(): void {\n this.ctx.clearRect(0, 0, this.canvas.width, this.ruleHeight);\n this.ctx.save();\n this.ctx.translate(this.options.docLeft, 0);\n this.drawRule();\n this.ctx.restore();\n }\n\n private canvasMousedown(evt: MouseEvent): void {\n const clickPos = this.getMousePos(evt);\n if (this.pointInPoly(clickPos, this.indentThumbPoints)) {\n this.mouseDownThumbType = 'indent';\n this.mouseDownPos = clickPos;\n } else if (this.pointInPoly(clickPos, this.hangThumbPoints)) {\n this.mouseDownThumbType = 'hang';\n this.mouseDownPos = clickPos;\n } else {\n console.log(\"未点击在里面\");\n }\n }\n\n private getMousePos(evt: MouseEvent): Position {\n return {\n x: evt.offsetX - this.options.docLeft,\n y: evt.offsetY\n }\n }\n\n private canvasMousemove(evt: MouseEvent): void {\n if (['indent', 'hang'].indexOf(this.mouseDownThumbType) < 0) {\n return;\n }\n if (!this.mouseDownPos) {\n return;\n }\n const canvasPos = this.getMousePos(evt);\n let moveX = canvasPos.x - this.mouseDownPos.x;\n //至少移动5px再进行修改\n const remainder = moveX % 5;\n if (Math.abs(remainder) < 3) {\n return;\n } else {\n if (remainder < 0) {\n moveX -= 5 + remainder;\n } else {\n moveX += 5 - remainder;\n }\n }\n if (moveX === 0) {\n return;\n }\n canvasPos.x = this.mouseDownPos.x + moveX;\n const para = this.getCurrPara();\n if (!para) {\n throw new Error('para is null')\n }\n if (this.mouseDownThumbType === 'indent') {\n this.thumbX.indent += moveX;\n this.thumbX.indent = this.thumbX.indent < 0 ? 0 : this.thumbX.indent;\n this.thumbX.indent = this.thumbX.indent > this.options.width ? this.options.width : this.thumbX.indent;\n this.mouseDownPos = canvasPos;\n para.props.indent += moveX;\n this.drawRule();\n }\n if (this.mouseDownThumbType === 'hang') {\n this.thumbX.hanging += moveX;\n this.thumbX.hanging = this.thumbX.hanging < 0 ? 0 : this.thumbX.hanging;\n this.thumbX.hanging = this.thumbX.hanging > this.options.width ? this.options.width : this.thumbX.hanging;\n this.mouseDownPos = canvasPos;\n para.props.hanging += moveX;\n this.drawRule();\n }\n }\n\n private canvasMouseup(evt: MouseEvent): void {\n this.mouseDownThumbType = 'none';\n this.mouseDownPos = null;\n }\n\n\n private pointInPoly(pt: Position, poly: Array<Position>): boolean {\n let c = false;\n for (let i = -1, l = poly.length, j = l - 1; ++i < l; j = i) {\n if (((poly[i].y <= pt.y && pt.y < poly[j].y) || (poly[j].y <= pt.y && pt.y < poly[i].y)) && pt.x < ((poly[j].x - poly[i].x) * (pt.y - poly[i].y)) / (poly[j].y - poly[i].y) + poly[i].x) {\n c = !c\n }\n }\n return c;\n }\n\n\n /**\n * 绘制\n */\n private drawRule(): void {\n this.fillRect(0, 0, this.options.pagePL, this.ruleHeight, \"rgb(198,198,198)\");\n this.fillRect(this.options.width - this.options.pagePR, 0, this.options.pagePR, this.ruleHeight, \"rgb(198,198,198)\");\n for (let j = 0; j < 50; j++) {\n const gantWidth = 20;\n const points: Array<Position> = [];\n const x = j * gantWidth;\n if (x > this.options.width) {\n break;\n }\n const y = 10;\n points.push({ x, y }, { x, y: y + 10 });\n this.drawLine(points);\n const textWidth = this.measureText(j + \"\");\n this.drawText(j + '', x + Math.floor((gantWidth - textWidth) / 2), y + 1);\n }\n this.getRuleMarksPos();\n this.indentThumbPoints = this.drawIndentThumb(this.thumbX.indent, 6);\n this.hangThumbPoints = this.drawHangThumb(this.thumbX.hanging, 25);\n }\n\n private getRuleMarksPos(): void {\n const { startControl, startOffset, startHitInfo } = this.ss;\n if (!startControl || !startHitInfo) {\n return;\n }\n const para = ElementUtil.getParentByType(startControl, ParagraphElement) as ParagraphElement;\n const indent = para.props.indent;\n const hanging = para.props.hanging;\n const { startRegion, hitDocIndex } = this.ss.startHitInfo as HitEventInfo;\n const cursorPosi = DocumentCursor.getElementCursorPos(startControl, startOffset, startRegion, hitDocIndex);\n //当前段落\n const paraRender = ElementUtil.getParentRender(cursorPosi.render, ParagraphRenderObject) as ParagraphRenderObject;\n //当前段落位置\n const paraRenderPos = ElementUtil.getRenderAbsolutePaintPos(paraRender)\n //当前文档\n const docRender = ElementUtil.getParentRender(paraRender, DocumentRenderObject) as DocumentRenderObject;\n //当前文档位置\n const docRenderPos = ElementUtil.getRenderAbsolutePaintPos(docRender)\n this.thumbX.indent = paraRenderPos.x - docRenderPos.x + indent;\n this.thumbX.hanging = paraRenderPos.x - docRenderPos.x + hanging;\n this.setParentMarksPos(paraRender);\n }\n\n private getCurrPara(): ParagraphElement | null {\n const { startControl, startOffset } = this.ss;\n if (!startControl) {\n return null;\n }\n return ElementUtil.getParentByType(startControl, ParagraphElement);\n }\n\n private setParentMarksPos(childRender: RenderObject): Array<{ pos: Position }> {\n const items: Array<{ pos: Position }> = [];\n const parentRender = childRender.parent;\n if (!parentRender || parentRender instanceof DocumentRenderObject) {\n return items;\n }\n if (parentRender instanceof TableRowRenderObject) {\n const docRender = ElementUtil.getParentRender(parentRender, DocumentRenderObject) as DocumentRenderObject;\n const docRenderPos = ElementUtil.getRenderAbsolutePaintPos(docRender)\n for (let i = 0; i < parentRender.length; i++) {\n const cellRender = parentRender.getChild(i) as TableCellRenderObject;\n const pos = ElementUtil.getRenderAbsolutePaintPos(cellRender)\n this.drawCellMark(pos.x - docRenderPos.x, 0, cellRender.padding.left);\n }\n }\n items.push(...this.setParentMarksPos(parentRender));\n return items;\n }\n\n private drawCellMark(x: number, y: number, width: number): void {\n x += 0.5;\n y += 0.5;\n this.fillRect(x, y, width, this.ruleHeight, 'rgb(198,198,198,0.2)')\n for (let i = 0; i < width; i++) {\n this.ctx.save();\n this.ctx.beginPath();\n this.ctx.lineWidth = 0.3;\n this.ctx.setLineDash([0.5, 0.5, 0.5]);\n this.ctx.moveTo(x + i, y);\n this.ctx.lineTo(x + i, y + this.ruleHeight);\n this.ctx.stroke();\n this.ctx.closePath();\n this.ctx.restore();\n }\n }\n\n scaleView(): void {\n return;\n const { scale } = this.viewOptions;\n //this.canvas.style.transformOrigin = 'center center';\n const parent = this.canvas.parentElement as HTMLDivElement;\n if (scale === 1) {\n parent.style.transform = '';\n } else {\n parent.style.transform = `scale(${this.viewOptions.scale})`;\n }\n }\n\n\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common-util.js","sourceRoot":"","sources":["../../src/med_editor/framework/common-util.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"common-util.js","sourceRoot":"lib/","sources":["framework/common-util.ts"],"names":[],"mappings":"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","sourcesContent":["import moment from \"moment\";\nimport { Rect } from \"./element-define\";\nimport { BorderType } from \"./render-define\";\ninterface Position {\n x: number;\n y: number;\n}\n\nexport class CommonUtil {\n\n /**\n * 判断坐标是否在矩形框内\n * @param rect \n * @param position \n * @returns \n */\n static isInsideRectByPosition(rect: Rect, position: Position): boolean {\n return position.x >= rect.x\n &&\n position.x <= rect.x + rect.width\n &&\n position.y >= rect.y\n &&\n position.y <= rect.y + rect.height;\n }\n\n static isInsideRectByRect(rect: Rect, position: Rect): boolean {\n return position.x >= rect.x\n &&\n position.x <= rect.x + rect.width\n &&\n position.y >= rect.y\n &&\n position.y <= rect.y + rect.height\n &&\n position.y + position.height <= rect.y + rect.height\n &&\n position.x + position.width <= rect.x + rect.width;\n }\n\n /**\n * 判断坐标是否在矩形的边框上\n * @param rect \n * @param borderWidth \n * @param position \n */\n static isInRectBorder(rect: Rect, borderWidth: number, position: Position): { borderType: BorderType } {\n const leftBorderRect: Rect = { x: 0, y: 0, width: borderWidth, height: rect.height, maxWidth: 0, maxHeight: 0 };\n const rightBorderRect: Rect = { x: rect.width - borderWidth, y: 0, width: borderWidth, height: rect.height, maxWidth: 0, maxHeight: 0 };\n const topBorderRect: Rect = { x: 0, y: 0, width: rect.width, height: borderWidth, maxWidth: 0, maxHeight: 0 };\n const bottomBorderRect: Rect = { x: 0, y: rect.height - borderWidth, width: rect.width, height: borderWidth, maxWidth: 0, maxHeight: 0 };\n let borderType: BorderType = 'none';\n if (this.isInsideRectByPosition(leftBorderRect, position)) {\n borderType = 'left';\n } else if (this.isInsideRectByPosition(rightBorderRect, position)) {\n borderType = 'right';\n } else if (this.isInsideRectByPosition(topBorderRect, position)) {\n borderType = 'top';\n } else if (this.isInsideRectByPosition(bottomBorderRect, position)) {\n borderType = 'bottom';\n }\n return { borderType };\n }\n\n /**\n * 判断坐标是否在图片的缩放操作点上\n */\n static isInPictureResizePoint(rect: Rect, pos: Position, r: number): { borderType: BorderType } | null {\n const { width, height } = rect;\n const x = 0;\n const y = 0;\n const points: Array<{ x: number, y: number, type: BorderType }> = [{ x, y, type: 'left-top' }, { x: x + width, y, type: 'right-top' }, { x: x + (Math.floor(width / 2)), y: y, type: 'top-middle' }, { x, y: y + Math.floor(height / 2), type: 'left-middle' }, { x, y: y + height, type: 'left-bottom' }, { x: width, y: Math.floor(height / 2), type: 'right-middle' }, { x: x + width, y: y + height, type: 'right-bottom' }, { x: x + (Math.floor(width / 2)), y: y + height, type: 'bottom-middle' }];\n for (let i = 0; i < points.length; i++) {\n const point = points[i];\n const { x: px, y: py } = point;\n if (((px - pos.x) * (px - pos.x) + (py - pos.y) * (py - pos.y)) < r * r) {\n return { borderType: point.type };\n }\n }\n return null;\n }\n\n\n /**\n * 整形符合连线要求\n * @param points \n * @param width \n * @param strokeColor \n */\n static resharpPoints(points: Array<Position>): Array<Position> {\n let prevPoint: Position = points[0];\n const array: Array<Position> = [];\n array.push(prevPoint);\n for (let i = 1; i < points.length; i++) {\n const currPoint = points[i];\n //不在同一水平线\n if (currPoint.y !== prevPoint.y && currPoint.x !== prevPoint.x) {\n array.push({ x: currPoint.x, y: prevPoint.y });\n }\n array.push(currPoint);\n prevPoint = currPoint;\n }\n return array;\n }\n\n static getOffsetX(node: HTMLElement): number {\n if (!node.parentElement) {\n throw new Error('node.parentElement is null')\n }\n const parent = node.parentElement.getBoundingClientRect().left;\n const curr = node.getBoundingClientRect().left;\n return curr - parent;\n }\n\n static randomColor() {\n let str = \"#\";\n for (let i = 0; i < 6; i++) {\n str += Math.floor(Math.random() * 16).toString(16);\n }\n return str;\n }\n\n /**\n * 判断一个数值是否在另一个数值的增益区间中\n * @param val \n * @param offset \n * @param compareValue \n * @returns \n */\n static ApproxmateValueInRange(val: number, offset: number, compareValue: number): boolean {\n return (val - offset) <= compareValue && (val + offset) >= compareValue;\n }\n\n\n static getEmptyValue<T>(val: T, emptyVal: T): T {\n if (!val) {\n return emptyVal;\n }\n return val;\n }\n\n /**\n * 移除并集\n * @param array \n * @param deleteItems \n * @returns \n */\n static removeUnionSet<T>(array: Array<T>, deleteItems: Array<T>): Array<T> {\n const arraySet = new Set(array);\n for (let i = 0; i < deleteItems.length; i++) {\n const item = deleteItems[i];\n if (arraySet.has(item)) {\n arraySet.delete(item)\n }\n }\n return Array.from(arraySet);\n }\n\n static nullToString(val: any): string {\n if (val === null || val === undefined) {\n return '';\n }\n return val;\n }\n\n static formatDate(date: Date, format: string): string {\n return moment(date).format(format);\n }\n\n static formatNow(format: string): string {\n return this.formatDate(new Date(), format);\n }\n\n static parseText(text: string, data: object): string {\n const reg = /\\{(.*?)\\}/g;\n let result = text;\n let match;\n while (match = reg.exec(text)) {\n const key = match[1];\n const value = data[key];\n result = result.replace(match[0], value);\n }\n return result;\n }\n\n //获取和当前日期相差的秒数\n static getNowDiffSeconds(date: Date | string): number {\n date = typeof date === 'string' ? new Date(date) : date;\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n return diff / 1000;\n }\n\n //验证当前字符串是否为日期格式\n static isDate(str: string): boolean {\n const reg = /^\\d{4}-\\d{2}-\\d{2}$/;\n return reg.test(str);\n }\n\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"document-change.js","sourceRoot":"","sources":["../../src/med_editor/framework/document-change.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"document-change.js","sourceRoot":"lib/","sources":["framework/document-change.ts"],"names":[],"mappings":"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","sourcesContent":["import { ICompositionStartInfo, InputData } from \"./document-input-cursor\";\nimport { SelectionRange, SelectionState } from \"./document-selection\";\nimport { ElementUtil } from \"./element-util\";\nimport {\n BlockContainerElement,\n BlockContentElement,\n BranchElement,\n DocMode,\n Element,\n InlineGroupElement,\n LeafElement,\n SelectionContentRange,\n ViewOptions\n} from \"./element-define\";\nimport { TextGroupElement } from \"./impl/text/text-impl\";\nimport { PSymbolElement } from \"./impl/symbol/p-symbol-impl\";\nimport { ParagraphElement } from \"./impl/paragraph/p-impl\";\nimport { RangeUtil } from \"./range-util\";\nimport { TableElement } from \"./impl/table/table-impl\";\nimport { DocumentEvent } from \"./document-event\";\nimport { KeyboradElementEvent } from \"./element-event-define\";\nimport { DataEleBaseProps, ParagraphProps, TextProps } from \"./element-props\";\nimport { ElementSerialize } from \"./element-serialize\";\nimport { ElementReader } from \"./element-reader\";\nimport { BreakElement } from \"./impl/symbol/br-symbol-impl\";\nimport { DataDecorateElement } from \"./impl/data-element/data-decorate-impl\";\nimport { EditorContext } from \"./document-context\";\nimport {\n DataElementInlineGroup,\n InlineGroupInputElement,\n IsInSideDataElement,\n IsInSideInlineGroupInputElement\n} from \"./impl/data-element/data-element-base-impl\";\nimport { DocumentComment } from \"./document-comment\";\nimport { CommentElement } from \"./impl/comments/comment-element-impl\";\nimport { nanoid } from \"nanoid\";\nimport { CommContentElement } from \"./impl/comments/comment-content-impl\";\nimport { ValidateElement } from \"./impl/comments/validate-msg-impl\";\nimport { CommonUtil } from \"./common-util\";\nimport { TrackRunElement, TrackRunTypeEnum } from \"./impl/text/track-run-impl\";\nimport { DocumentBodyElement } from \"./impl/document/doc-body-impl\";\n\n/**\n * 文档内容改变\n */\nexport class DocumentChange {\n constructor(private selectionState: SelectionState, private viewOptions: ViewOptions, private eleReader: ElementReader, private docCtx: EditorContext, private docComment: DocumentComment) {\n }\n\n newInput(data: InputData): void {\n const { startControl, startOffset, collapsed, enableTrackChanges } = this.selectionState;\n if (!collapsed) {\n this.onInputBySelection(data);\n return;\n }\n //判断是否需要创建新的留痕区域\n if (enableTrackChanges && !this.isInCorrectTrackRegion(startControl as Element, TrackRunTypeEnum.Inserted)) {\n this.newInputTrackChanges(data, startControl as LeafElement, startOffset);\n return;\n }\n //当前输入节点是在留痕区域中,但是当前关闭了审阅模式,需要拆分留痕区域,创建新输入节点\n if (!enableTrackChanges && this.isInTrackBlock(startControl)) {\n const newInput = this.splitTrackElement(startControl, startOffset);\n const comp = data.compositionStartInfo as ICompositionStartInfo;\n comp.element = newInput;\n comp.offset = 0;\n this.inputTextGroup(newInput, data);\n return;\n }\n if (!(startControl instanceof TextGroupElement)) {\n if (!data.compositionStartInfo) {\n throw new Error('compositionStartInfo is null');\n }\n const siblingTextEle = startOffset === 1 ? ElementUtil.getNextSiblingElement(startControl) : ElementUtil.getPrevSiblingElement(startControl);\n if (siblingTextEle instanceof TextGroupElement) {\n data.compositionStartInfo.offset = startOffset === 0 ? siblingTextEle.text.length : 0;\n this.inputTextGroup(siblingTextEle, data);\n } else {\n const inputTextProps = this.getDefaultTextProps(startControl, startOffset);\n const newTextGroup = ElementUtil.getNewTextGroup(inputTextProps);\n startControl.parent.addChild(newTextGroup, startControl.getIndex() + startOffset);\n this.inputTextGroup(newTextGroup, data);\n }\n return;\n }\n this.inputTextGroup(startControl, data);\n }\n\n\n /**\n * 选中区域后进行输入\n * 需要处理将选中的区域删除后,进行输入的情况\n */\n onInputBySelection(data: InputData): void {\n this.onRangeDelete();\n this.selectionState.afterSelectionChanged = (newVal) => {\n const { startControl, startOffset, editable } = newVal;\n if (!editable) {\n return false;\n }\n const comp = data.compositionStartInfo as ICompositionStartInfo;\n comp.element = startControl;\n comp.offset = startOffset;\n this.newInput(data);\n return true;\n };\n\n }\n\n /**\n * 当前元素是否在正确的留痕区域(ins-run、del-run),情况分为以下情况\n * 1.留痕块类型为新增,但是留痕块的创建者为其他用户,此时需要拆分留痕区域\n * 2.留痕块为当前用户创建,但是创建时间大于有效的时间,此时需要拆分留痕区域\n * @param startControl\n * @param trackType\n * @returns\n */\n isInCorrectTrackRegion(startControl: Element, trackType: TrackRunTypeEnum): boolean {\n const parent = startControl.parent;\n return parent instanceof TrackRunElement\n && parent.props.userId === this.viewOptions.editUser.id\n && parent.type === trackType\n && CommonUtil.getNowDiffSeconds(parent.props.date) <= this.viewOptions.trackChangePeriod;\n }\n\n /**\n * 当前元素是否在留痕区域(ins-run、del-run)中\n * @param target\n * @param trackType\n * @returns\n */\n isInTrackBlock(target: Element, trackType: TrackRunTypeEnum | null = null): boolean {\n return target.parent instanceof TrackRunElement && (trackType === null || target.parent.type === trackType);\n }\n\n /**\n * 留痕输入\n * @param data\n * @param startControl\n * @param startOffset\n * @returns\n */\n newInputTrackChanges(data: InputData, startControl: LeafElement, startOffset: number): void {\n const userId = this.viewOptions.editUser.id;\n const compInfo = data.compositionStartInfo as ICompositionStartInfo;\n if (this.isInCorrectTrackRegion(startControl, TrackRunTypeEnum.Inserted)) {\n return;\n }\n if (this.isInTrackBlock(startControl)) {\n const newInput = this.createNewTrackInput(startControl, startOffset, TrackRunTypeEnum.Inserted);\n compInfo.offset = 0;\n compInfo.element = newInput;\n this.inputTextGroup(newInput, data);\n return;\n } else {\n const {\n trackElement,\n newTextGroup\n } = this.createTextTrackElement(startControl, null, TrackRunTypeEnum.Inserted);\n this.insertElement(startControl, startOffset, [trackElement])\n compInfo.offset = 0;\n compInfo.element = newTextGroup;\n this.inputTextGroup(newTextGroup, data);\n return;\n }\n }\n\n\n /**\n * 创建新的留痕块,并返回留痕块输入定位文本\n * @param startControl\n * @param startOffset\n * @param trackType\n * @returns\n */\n createNewTrackInput(startControl: LeafElement, startOffset: number, trackType: TrackRunTypeEnum): TextGroupElement {\n const textProps = this.getDefaultTextProps(startControl, startOffset);\n const currTrackEle = startControl.parent as TrackRunElement;\n if (startControl instanceof TextGroupElement && startOffset > 0 && startOffset < startControl.textMeasures.length) {\n const splitText = startControl.spliceText(startOffset, startControl.textMeasures.length, true) as TextGroupElement;\n startControl.parent.addChild(splitText, startControl.getIndex() + 1);\n startOffset = startControl.textMeasures.length;\n }\n startOffset = startOffset > 0 ? 1 : 0;\n const index = startControl.getIndex() + startOffset;\n //切割留痕块\n if (index > 0 && index < currTrackEle.length) {\n const splitTrack = currTrackEle.split(startControl.getIndex() + startOffset) as TrackRunElement;\n currTrackEle.parent.addChild(splitTrack, currTrackEle.getIndex() + 1);\n const { trackElement, newTextGroup } = this.createTextTrackElement(startControl, textProps, trackType);\n currTrackEle.parent.addChild(trackElement, currTrackEle.getIndex() + 1);\n return newTextGroup;\n } else {\n const { trackElement, newTextGroup } = this.createTextTrackElement(startControl, textProps, trackType);\n currTrackEle.parent.addChild(trackElement, currTrackEle.getIndex() + (index === 0 ? 0 : 1));\n return newTextGroup;\n }\n }\n\n /**\n * 获取当前输入节点的文本属性\n * @param startControl\n * @returns\n */\n getDefaultTextProps(startControl: LeafElement, offset: number): TextProps {\n const para = ElementUtil.getParentByType(startControl, ParagraphElement) as ParagraphElement;\n let textProps = para.props.textProps;\n if (startControl instanceof TextGroupElement) {\n textProps = startControl.props;\n }\n const dataEle = ElementUtil.getDataElement(startControl) as DataElementInlineGroup;\n if (dataEle && IsInSideDataElement(startControl, offset)) {\n return dataEle.props.valueTextProps;\n }\n return textProps;\n }\n\n /**\n * 当前元素位于留痕区域内,但是当前编辑模式为非留痕模式,需要将当前留痕元素分割开来,插入新普通文本元素对象,并返回\n * @param startControl\n * @param startOffset\n * @returns\n */\n splitTrackElement(startControl: LeafElement, startOffset: number): TextGroupElement {\n if (!(startControl.parent instanceof TrackRunElement) && startControl instanceof TextGroupElement) {\n return startControl;\n }\n const textProps = this.getDefaultTextProps(startControl, startOffset);\n const currTrackEle = startControl.parent as TrackRunElement;\n if (startControl instanceof TextGroupElement && startOffset > 0 && startOffset < startControl.textMeasures.length) {\n const splitText = startControl.spliceText(startOffset, startControl.textMeasures.length, true) as TextGroupElement;\n startControl.parent.addChild(splitText, startControl.getIndex() + 1);\n startOffset = startControl.textMeasures.length;\n }\n startOffset = startOffset > 0 ? 1 : 0;\n const index = startControl.getIndex() + startOffset;\n if (index > 0 && index < currTrackEle.length) {\n const splitTrack = currTrackEle.split(startControl.getIndex() + startOffset) as TrackRunElement;\n currTrackEle.parent.addChild(splitTrack, currTrackEle.getIndex() + 1);\n const newInput = ElementUtil.getNewTextGroup(textProps);\n currTrackEle.parent.addChild(newInput, currTrackEle.getIndex() + 1);\n return this.splitTrackElement(newInput, 0);\n } else {\n const newInput = ElementUtil.getNewTextGroup(textProps);\n currTrackEle.parent.addChild(newInput, currTrackEle.getIndex() + (index === 0 ? 0 : 1));\n return this.splitTrackElement(newInput, 0);\n }\n }\n\n /**\n * 创建插入(ins-run) 留痕,并且返回留痕的文本元素对象\n * @param startControl\n * @returns\n */\n private createTextTrackElement(startControl: Element, textProps: TextProps | null, trackType: TrackRunTypeEnum): { trackElement: TrackRunElement, newTextGroup: TextGroupElement } {\n const para = ElementUtil.getParentByType(startControl, ParagraphElement) as ParagraphElement;\n const trackElement = this.createTrackElement(trackType);\n textProps = textProps || para.props.textProps;\n const newTextGroup = ElementUtil.getNewTextGroup(textProps);\n newTextGroup.props.color = '#ff4d4f';\n trackElement.addChild(newTextGroup);\n return {\n trackElement,\n newTextGroup\n }\n\n }\n\n private createTrackElement(trackType: TrackRunTypeEnum): TrackRunElement {\n const trackElement = new TrackRunElement(trackType);\n trackElement.props.userId = this.viewOptions.editUser.id;\n trackElement.props.userName = this.viewOptions.editUser.name;\n trackElement.props.date = CommonUtil.formatNow('YYYY-MM-DD HH:mm:ss');\n trackElement.props.id = nanoid(5);\n return trackElement;\n }\n\n private inputTextGroup(text: TextGroupElement, data: InputData): void {\n const prevInputData = data.prevInputData || '';\n const prevInputDataLength = prevInputData.length;\n if (!data.compositionStartInfo) {\n throw new Error('compositionStartInfo is null')\n }\n\n const { element, offset } = data.compositionStartInfo;\n let startInputOffset = offset;\n //startInputOffset -= prevInputDataLength;\n if (!(element instanceof TextGroupElement)) {\n //当前选中元素位于输入元素是起始还是结束位置,如果位于起始位置,则输入偏移量为0,否则为未变更之前的内容length\n if (ElementUtil.getNextSiblingElement(element) === text) {\n startInputOffset = 0;\n } else {\n startInputOffset = text.textMeasures.length - prevInputDataLength;\n }\n }\n text.splice(startInputOffset, prevInputDataLength, data.data);\n //输入后撤销,导致文本组内为空\n if (!text.text.length) {\n this.removeEmptyText(text);\n } else {\n this.selectionState.resetRange(text, startInputOffset + data.data.length);\n }\n }\n\n\n /**\n * backspace,向前删除\n */\n onBackspace(evt: KeyboardEvent): void {\n const { startControl, startOffset, collapsed } = this.selectionState;\n if (!startControl) {\n throw new Error('startControl is null')\n }\n const eventElement = new KeyboradElementEvent(this.docCtx);\n eventElement.key = 'backspace';\n eventElement.source = startControl;\n eventElement.sourceEvent = evt;\n eventElement.sourceOffset = startOffset;\n const res = DocumentEvent.invokeEvent('BackspaceKey', startControl, eventElement, 'Capture', this.docCtx);\n if (res && res.isCancel) {\n return;\n }\n this.docComment.updateComments();\n if (collapsed) {\n this.onBackspaceElement(startControl, startOffset);\n } else {\n this.onRangeDelete();\n }\n }\n\n /**\n * delete,向后删除\n * @param evt\n */\n onDeleteKeyHandler(evt: KeyboardEvent): void {\n const { startControl, startOffset, collapsed } = this.selectionState;\n const eventElement = new KeyboradElementEvent(this.docCtx);\n eventElement.key = 'delete';\n eventElement.source = startControl;\n eventElement.sourceEvent = evt;\n eventElement.sourceOffset = startOffset;\n const res = DocumentEvent.invokeEvent('DeleteKey', startControl, eventElement, 'Capture', this.docCtx);\n if (res && res.isCancel) {\n return;\n }\n if (collapsed) {\n this.onKeyDeleteElement(startControl, startOffset);\n } else {\n this.onRangeDelete();\n }\n }\n\n /**\n * 根据选择范围删除\n */\n private onRangeDelete(): { cursorEle: Element, cursorOffset: number } {\n const { selectedRange } = this.selectionState;\n if (!selectedRange) {\n throw new Error('selectionRange is null')\n }\n //用于刷新后定位光标\n let startPointElement: Element;\n let startPointOffset = 0;\n if (selectedRange.isFullSelected) {\n //某个容器的内容被全部选中\n if (selectedRange.target instanceof BlockContainerElement) {\n startPointElement = selectedRange.target;\n startPointOffset = 0;\n }\n //内容块被选中,需要向上寻找内容块容器\n else if (selectedRange.target instanceof BlockContentElement) {\n const parentContainer = ElementUtil.getParent(selectedRange.target, (item) => item instanceof BlockContainerElement) as BlockContainerElement;\n if (parentContainer) {\n startPointElement = parentContainer;\n startPointOffset = 0;\n } else {\n throw new Error('未能向上寻找到定位的内容块容器')\n }\n } else {\n throw new Error('未知条件区间')\n }\n } else {\n const startRange = RangeUtil.getStartRangeTarget(selectedRange) as SelectionContentRange;\n const endRange = RangeUtil.getEndRangeTarget(selectedRange) as SelectionContentRange;\n if (startRange.isFullSelected) {\n startPointElement = ElementUtil.getRecursionPrevSiblingElement(startRange.target, false, true) as LeafElement;\n startPointOffset = -1;\n //判断结束选区和开始选区是否在一个段落中,尽量落在同一段落中\n if (!startPointElement || ElementUtil.isInSameParagraph(startRange.target, endRange.target)) {\n if (!endRange.isFullSelected) {\n startPointElement = endRange.target;\n startPointOffset = 0;\n }\n }\n } else {\n startPointElement = startRange.target as LeafElement;\n startPointOffset = startRange.startOffset;\n }\n }\n if (this.viewOptions.docMode === DocMode.FormEdit) {\n this.deleteRangeInFormEdit(selectedRange)\n } else {\n this.deleteRange(selectedRange);\n }\n this.selectionState.resetRange(startPointElement, startPointOffset);\n return { cursorEle: startPointElement, cursorOffset: startPointOffset };\n }\n\n /**\n * backspace删除\n * @param control\n * @param offset\n * @returns\n */\n private onBackspaceElement(control: LeafElement, offset: number): void {\n this.selectionState.clear();\n if (offset === 0) {\n const prevEle = ElementUtil.getRecursionPrevSiblingElement(control, false, true);\n if (!prevEle) {\n this.selectionState.resetRange(control, 0);\n return;\n }\n if (ElementUtil.isInSameParagraph(control, prevEle)) {\n if (ElementUtil.getPrevSiblingElement(control) === prevEle) {\n this.onBackspaceElement(prevEle, ElementUtil.getElementEndOffset(prevEle));\n } else {\n this.selectionState.resetRange(prevEle, -1);\n }\n } else {\n //需要判断是否是兄弟段落,兄弟段落,需要合并\n const prevPara = ElementUtil.getParentByType(prevEle, ParagraphElement) as ParagraphElement;\n const currPara = ElementUtil.getParentByType(control, ParagraphElement) as ParagraphElement;\n //表明是紧挨着的两个段落,要进行段落合并\n if (ElementUtil.getPrevSiblingElement(currPara) === prevPara) {\n if (this.selectionState.enableTrackChanges) {\n this.selectionState.resetRange(prevEle, -1);\n return;\n }\n this.combineParagraph(prevPara, currPara, control);\n } else {\n //不是紧挨着的段落,则前一个段落是位于另一个容器里,例如:处于单元格内的段落\n //则不向前定位\n this.selectionState.resetRange(control, offset)\n }\n }\n } else {\n if (control instanceof TextGroupElement) {\n this.onDeleteText(control, offset - 1, 1);\n if (!control.textMeasures.length) {\n this.removeEmptyText(control);\n } else {\n this.selectionState.resetRange(control, offset - 1);\n }\n } else {\n if (control.parent instanceof InlineGroupInputElement && control instanceof DataDecorateElement) {\n const dataEle = control.parent;\n //空数据元,并且当前光标处于数据元开始位置\n if (this.canDeleteInlineGroup(dataEle)) {\n this.setCurosrForDeleteAction(dataEle);\n dataEle.remove();\n return;\n }\n if (control.isPrefix && this.viewOptions.docMode === DocMode.FormEdit) {\n if (this.jumpToPrevDataElement(dataEle)) {\n return;\n }\n }\n }\n if (control.isDecorate) {\n this.onBackspaceElement(control, 0);\n return;\n }\n this.removeElement(control);\n }\n }\n }\n\n /**\n * 跳到上一个数据元中\n * @param currEle\n */\n private jumpToPrevDataElement(currEle: InlineGroupInputElement): boolean {\n if (this.viewOptions.docMode !== DocMode.FormEdit) {\n return false;\n }\n const prevEle = ElementUtil.getPrevDataElement(this.docCtx, currEle as DataElementInlineGroup);\n if (!prevEle) {\n return false;\n }\n if (prevEle) {\n this.selectionState.resetRange(prevEle.endDecorate, 0);\n return true;\n }\n return false;\n }\n\n /**\n * delete删除\n * @param control\n * @param offset\n * @returns\n */\n private onKeyDeleteElement(control: LeafElement, offset: number): void {\n this.selectionState.clear();\n if (offset === ElementUtil.getElementEndOffset(control)) {\n const nextEle = ElementUtil.getRecursionNextSiblingElement(control, false, true);\n if (!nextEle) {\n this.selectionState.resetRange(control, -1);\n return;\n }\n if (ElementUtil.isInSameParagraph(control, nextEle)) {\n if (ElementUtil.getNextSiblingElement(control) === nextEle) {\n this.onKeyDeleteElement(nextEle, 0);\n } else {\n this.selectionState.resetRange(nextEle, 0);\n }\n } else {\n //需要判断是否是兄弟段落,兄弟段落,需要合并\n const nextPara = ElementUtil.getParentByType(nextEle, ParagraphElement) as ParagraphElement;\n const currPara = ElementUtil.getParentByType(control, ParagraphElement) as ParagraphElement;\n //表明是紧挨着的两个段落,要进行段落合并\n if (ElementUtil.getNextSiblingElement(currPara) === nextPara) {\n if (this.selectionState.enableTrackChanges) {\n this.selectionState.resetRange(nextEle, 0);\n return;\n }\n this.combineParagraph(nextPara, currPara, control);\n } else {\n //不是紧挨着的段落,则前一个段落是位于另一个容器里,例如:处于单元格内的段落\n //则不向前定位\n this.selectionState.resetRange(control, offset)\n }\n }\n } else {\n if (control instanceof TextGroupElement) {\n this.onDeleteText(control, offset, 1);\n if (!control.textMeasures.length) {\n this.removeEmptyText(control);\n } else {\n this.selectionState.resetRange(control, offset);\n }\n } else {\n if (control.parent instanceof DataElementInlineGroup && control instanceof DataDecorateElement) {\n const dataEle = control.parent as DataElementInlineGroup;\n //空数据元,并且当前光标处于数据元开始位置\n if (control.isPrefix) {\n if (this.canDeleteInlineGroup(dataEle)) {\n this.setCurosrForDeleteAction(dataEle);\n dataEle.remove();\n } else {\n this.selectionState.resetRange(control, -1);\n }\n return;\n } else if (!control.isPrefix && dataEle.length === 2) {\n this.selectionState.resetRange(dataEle.endDecorate, -1);\n return;\n }\n }\n if (control.isDecorate) {\n //this.onKeyDeleteElement(control, -1);\n return;\n }\n this.removeElement(control);\n }\n }\n }\n\n /**\n * 判断是否可以删除数据组\n * @param dataEle\n * @private\n */\n private canDeleteInlineGroup(dataEle: InlineGroupInputElement): boolean {\n if (this.viewOptions.docMode === DocMode.FormEdit) {\n return false;\n }\n return dataEle.length === 2;\n }\n\n private onDeleteText(text: TextGroupElement, offset: number, len: number): void {\n if (this.selectionState.enableTrackChanges) {\n this.updateDeletedTrackText(text, offset, len)\n } else {\n text.splice(offset, len)\n }\n }\n\n private onDeleteItem(item: LeafElement): void {\n if (this.selectionState.enableTrackChanges) {\n //删除符号不进行留痕\n if (item.type === 'psym') {\n return\n }\n this.onTrackDeleteElement(item);\n } else {\n item.remove();\n item.destroy();\n }\n }\n\n\n /**\n * 当前元素是否在留痕元素内\n * @param target\n * @param trackType\n * @returns\n */\n private isInCurrentUserTrack(target: Element, trackType: TrackRunTypeEnum): boolean {\n if (target.parent instanceof TrackRunElement && target.parent.type === trackType && target.parent.props.userId === this.viewOptions.editUser.id) {\n return true;\n }\n return false;\n }\n\n private isInTrackElement(target: Element, trackType: TrackRunTypeEnum): boolean {\n if (target.parent instanceof TrackRunElement && target.parent.type === trackType) {\n return true;\n }\n return false;\n }\n\n\n /**\n * 留痕除文本以外的其他元素\n * @param control\n */\n private onTrackDeleteElement(target: LeafElement): void {\n const parent = target.parent;\n if (this.isInTrackElement(target, TrackRunTypeEnum.Deleted)) {\n return;\n }\n //当前用户增加的内容,内容直接删除不需要留痕\n if (this.isInCurrentUserTrack(target, TrackRunTypeEnum.Inserted)) {\n target.remove();\n this.removeEmtpyInlineBlock(parent);\n return;\n }\n //target.remove();\n const trackEle = this.getNextTrackElement(target, TrackRunTypeEnum.Deleted);\n trackEle.addChild(target.clone(true), 0);\n target.remove();\n this.removeEmtpyInlineBlock(parent);\n }\n\n /**\n * 更新文本删除留痕\n */\n private updateDeletedTrackText(target: TextGroupElement, offset: number, len: number): void {\n if (this.isInTrackElement(target, TrackRunTypeEnum.Deleted)) {\n return;\n }\n //当前用户增加的内容,当前用户删除时不需要留痕\n if (this.isInCurrentUserTrack(target, TrackRunTypeEnum.Inserted)) {\n target.splice(offset, len);\n return;\n }\n //全部被删除\n if (offset === 0 && len === target.textMeasures.length) {\n const trackInputText = this.getNextTrackInputElement(target, TrackRunTypeEnum.Deleted);\n trackInputText.text = target.text + trackInputText.text;\n target.splice(0, target.textMeasures.length);\n //target.remove();\n return;\n }\n const { leftElement } = this.splitText(target, offset + len);\n target = leftElement as never;\n let trackText: TextGroupElement = this.getNextTrackInputElement(target, TrackRunTypeEnum.Deleted);\n const spText = target.spliceText(target.textMeasures.length - len, target.textMeasures.length, true);\n trackText.splice(0, 0, spText?.text);\n }\n\n\n private getNextTrackInputElement(target: Element, trackType: TrackRunTypeEnum): TextGroupElement {\n const trackElement = ElementUtil.getNextSiblingTrackElement(target, trackType, this.viewOptions.editUser.id)\n if (trackElement) {\n const firstEle = trackElement.getChild(0);\n if (firstEle && firstEle instanceof TextGroupElement) {\n return firstEle;\n } else {\n const newInput = new TextGroupElement();\n trackElement.addChild(newInput, 0);\n target.props.clone(newInput.props);\n return newInput;\n }\n } else {\n const {\n trackElement,\n newTextGroup\n } = this.createTextTrackElement(target, target.props, TrackRunTypeEnum.Deleted);\n target.parent.addChild(trackElement, target.getIndex() + 1);\n return newTextGroup;\n }\n }\n\n\n private getNextTrackElement(target: Element, trackType: TrackRunTypeEnum): TrackRunElement {\n let trackElement = ElementUtil.getNextSiblingTrackElement(target, trackType, this.viewOptions.editUser.id)\n if (!trackElement) {\n trackElement = this.createTrackElement(trackType);\n target.parent.addChild(trackElement, target.getIndex() + 1);\n }\n return trackElement;\n }\n\n\n /**\n * 删除元素并定位光标\n * @param control\n * @returns\n */\n private removeElement(control: LeafElement): void {\n const prevEle = ElementUtil.getRecursionPrevSiblingElement(control, false, true);\n if (!prevEle) {\n const nextEle = ElementUtil.getRecursionNextSiblingElement(control, true, true);\n if (nextEle) {\n this.selectionState.resetRange(nextEle, 0);\n control.remove();\n return;\n }\n return;\n }\n if (ElementUtil.isInSameParagraph(control, prevEle)) {\n this.selectionState.resetRange(prevEle, -1);\n control.remove();\n return;\n } else {\n const nextEle = ElementUtil.getRecursionNextSiblingElement(control, true, true);\n if (nextEle && ElementUtil.getPrevSiblingElement(nextEle) === control) {\n this.selectionState.resetRange(nextEle, 0);\n control.remove();\n return;\n } else {\n this.selectionState.resetRange(prevEle, -1);\n control.remove();\n return;\n }\n }\n }\n\n\n /**\n * 回车事件\n */\n onEnter(): void {\n const { startControl } = this.selectionState;\n const paragraph = ElementUtil.getParentByType(startControl, ParagraphElement) as ParagraphElement;\n const breakPara = this.splitCurrentParagraph();\n //选中的是一个元素\n if (breakPara === paragraph) {\n const clonePara = paragraph.clone(false);\n breakPara.parent.addChild(clonePara, breakPara.getIndex());\n }\n this.selectionState.resetRange(breakPara, 0);\n\n }\n\n /**\n * 插入表格\n * @param tb\n * @returns\n */\n insertTable(tb: TableElement): void {\n const breakPara = this.splitCurrentParagraph();\n breakPara.parent.addChild(tb, breakPara.getIndex());\n this.selectionState.resetRange(tb, 0);\n }\n\n /**\n * 分割当前段落用于插入表格或者粘贴的内容\n * @param insertItems 分割后插入的内容,内容需要是block或者表格对象\n */\n private splitCurrentParagraph(): ParagraphElement {\n const { startControl, startOffset } = this.selectionState;\n const paragraph = ElementUtil.getParentByType(startControl, ParagraphElement) as ParagraphElement;\n const paraContainer = paragraph.parent;\n //如果选中的是段落第一个元素\n const firstLeaf = ElementUtil.getFirstLeafElement(paragraph);\n if ((startControl === firstLeaf && startOffset === 0) || (startControl === firstLeaf && startControl instanceof PSymbolElement)) {\n //this.selectionState.resetRange(paragraph, 0);\n return paragraph;\n }\n const last = ElementUtil.getLastLeafElement(paragraph) as LeafElement;\n const selectedParaRange = RangeUtil.getSelctionRange(startControl, startOffset, last, 1, paragraph);\n selectedParaRange.isFullSelected = false;\n const breakPara = ElementUtil.cloneRange(selectedParaRange, true) as ParagraphElement;\n ElementUtil.fixParagraphContent(paragraph);\n ElementUtil.fixParagraphContent(breakPara);\n paraContainer.addChild(breakPara, paragraph.getIndex() + 1);\n //paraContainer.addChild(tb, breakPara.getIndex());\n //this.selectionState.resetRange(breakPara, 0);\n return breakPara;\n }\n\n /**\n * 合并段落\n */\n combineParagraph(prevPara: ParagraphElement, currPara: ParagraphElement, currElement: Element): void {\n const prevParaLength = prevPara.length;\n for (let i = 0; i < currPara.length; i++) {\n const child = currPara.getChild(i).clone(true);\n prevPara.addChild(child);\n }\n //currPara.remove();\n const currParaContainer = currPara.parent;\n currPara.destroy();\n currParaContainer.removeChild(currPara);\n this.selectionState.resetRange(prevPara.getChild(prevParaLength), 0);\n }\n\n /**\n * 删除选中的区域内容\n * @param range\n */\n deleteRange(range: SelectionContentRange): void {\n const { selectedChildren } = range;\n for (let i = selectedChildren.length - 1; i >= 0; i--) {\n const childRange = selectedChildren[i];\n const { target: childTarget, isFullSelected: childFullSelected } = childRange;\n if (childTarget instanceof LeafElement && !childTarget.isDecorate) {\n if (childFullSelected) {\n this.onDeleteItem(childTarget);\n } else if (childTarget instanceof TextGroupElement) {\n const { startOffset, endOffset } = childRange;\n this.onDeleteText(childTarget, startOffset, endOffset - startOffset);\n }\n } else if (childTarget instanceof BranchElement) {\n //留痕模式\n if (this.selectionState.enableTrackChanges) {\n this.deleteRange(childRange);\n } else {\n //表格全选状态时,执行删除操作\n if (childTarget instanceof TableElement && childFullSelected) {\n childTarget.remove();\n childTarget.destroy();\n }\n //段落全选状态时,执行删除操作\n else if (childTarget instanceof BlockContentElement && childFullSelected) {\n childTarget.remove();\n childTarget.destroy();\n } else if (childTarget instanceof InlineGroupElement && childFullSelected) {\n childTarget.remove();\n childTarget.destroy();\n } else {\n this.deleteRange(childRange);\n }\n }\n }\n }\n }\n\n\n /**\n * 表单区域删除处理\n * @param range\n * @returns\n */\n private deleteRangeInFormEdit(range: SelectionContentRange): void {\n const dataElement = ElementUtil.getDataElement(range.target);\n //在数据元内删除,调用普通的删除处理\n if (dataElement) {\n this.deleteRange(range);\n return;\n }\n //在数据元外删除\n else {\n this.loopForDelDataEleRange(range);\n }\n }\n\n /**\n * 表单模式:删除选中的区域内容\n */\n private loopForDelDataEleRange(range: SelectionContentRange): void {\n const { selectedChildren } = range;\n for (let i = selectedChildren.length - 1; i >= 0; i--) {\n const childRange = selectedChildren[i];\n const { target: childTarget } = childRange;\n if (childTarget instanceof BranchElement) {\n if (childTarget instanceof DataElementInlineGroup) {\n const dataEleProps = childTarget.props as DataEleBaseProps;\n //数据元可编辑\n if (dataEleProps.editable) {\n this.deleteRange(childRange);\n }\n } else {\n this.loopForDelDataEleRange(childRange)\n }\n }\n }\n }\n\n\n /**\n * 向目标移动元素\n * @param sourceElement\n * @param moveElement\n */\n moveElement(targetElement: Element, targetOffset: number, moveElement: Element, moveOffset: number, ss: SelectionState): void {\n moveElement.remove();\n if (targetElement instanceof TextGroupElement) {\n const { leftElement, rightElement } = this.splitText(targetElement, targetOffset);\n if (leftElement) {\n leftElement.parent.addChild(moveElement, leftElement.getIndex() + 1)\n } else if (rightElement) {\n rightElement.parent.addChild(moveElement, rightElement.getIndex())\n }\n } else {\n targetElement.parent.addChild(moveElement, targetElement.getIndex() + targetOffset);\n }\n ss.resetRange(moveElement, moveOffset);\n }\n\n /**\n * 向指定的目标插入元素\n * @param targetElement\n * @param targetOffset\n * @param destEleArray\n */\n insertElement(targetElement: Element, targetOffset: number, destEleArray: Array<Element>): Element | null {\n let lastEle!: Element | null;\n if (targetElement instanceof TextGroupElement) {\n const { leftElement, rightElement } = this.splitText(targetElement, targetOffset);\n if (leftElement) {\n for (let i = 0; i < destEleArray.length; i++) {\n lastEle = destEleArray[i];\n leftElement.parent.addChild(lastEle, leftElement.getIndex() + 1 + i);\n }\n } else if (rightElement) {\n for (let i = 0; i < destEleArray.length; i++) {\n lastEle = destEleArray[i]\n rightElement.parent.addChild(lastEle, rightElement.getIndex());\n }\n }\n } else {\n for (let i = 0; i < destEleArray.length; i++) {\n lastEle = destEleArray[i]\n targetElement.parent.addChild(lastEle, targetElement.getIndex() + targetOffset);\n }\n }\n return lastEle;\n }\n\n\n /**\n * 根据开始位置和结束位置,将字符切割成指定的区间\n * @param splitTextUnit\n * @param start\n * @param end\n * @returns\n */\n static splitTextGroupByRange(text: TextGroupElement, start: number, end: number): TextGroupElement | null {\n end = end === -1 ? text.textMeasures.length : end;\n if (start === end) {\n return null;\n }\n if (start === 0 && end === text.textMeasures.length) {\n return text;\n }\n if (start === text.textMeasures.length) {\n return null;\n }\n let lastTextGroup = text.spliceText(end, -1, true);\n let middleTextGroup = text.spliceText(start, -1, true);\n if (lastTextGroup) {\n text.parent.addChild(lastTextGroup, text.getIndex() + 1);\n }\n if (!middleTextGroup) {\n throw new Error('middleText is null');\n }\n text.parent.addChild(middleTextGroup, text.getIndex() + 1);\n\n if (text.textMeasures.length === 0) {\n text.remove();\n text.destroy();\n }\n return middleTextGroup;\n }\n\n splitText(text: TextGroupElement, offset: number): { leftElement: TextGroupElement | null, rightElement: TextGroupElement | null } {\n offset = offset == -1 ? text.textMeasures.length : offset;\n if (offset === text.textMeasures.length) {\n return {\n leftElement: text,\n rightElement: null\n }\n }\n if (offset === 0) {\n return {\n leftElement: null,\n rightElement: text\n }\n }\n const rightText = text.spliceText(offset, -1, true);\n if (rightText) {\n text.parent.addChild(rightText, text.getIndex() + 1);\n }\n let leftText: TextGroupElement | null = text;\n if (text.textMeasures.length === 0) {\n text.remove();\n leftText = null;\n }\n return {\n leftElement: leftText,\n rightElement: rightText\n }\n }\n\n /**\n * 设置选中的文本样式\n * @param ss\n * @param setterFunc\n * @returns\n */\n static setTextStyle(ss: SelectionState, setterFunc: (tp: TextProps) => void): void {\n const range = ss.selectedRange;\n if (!range || ss.collapsed) {\n return;\n }\n const newSelectionRange = new SelectionRange();\n const startRange = ElementUtil.getFirstSelectedRange(range);\n const endRange = ElementUtil.getLastSelectedRange(range);\n this.recursionSetRangeTextStyle(range, setterFunc);\n if (startRange === endRange) {\n if (startRange.isFullSelected) {\n newSelectionRange.setStart(startRange.target, 0);\n newSelectionRange.setEnd(startRange.target, -1);\n }\n if (startRange.target instanceof TextGroupElement) {\n const startSelectedOffset = ss.startOffset;\n const endSelectedOffset = ss.endOffset;\n const middleElement = this.splitTextGroupByRange(startRange.target, startSelectedOffset, endSelectedOffset);\n if (middleElement) {\n setterFunc(middleElement.props);\n newSelectionRange.setStart(middleElement, 0);\n newSelectionRange.setEnd(middleElement, -1);\n }\n }\n } else {\n if (startRange.isFullSelected) {\n newSelectionRange.setStart(startRange.target, 0);\n } else {\n if (startRange.target instanceof TextGroupElement) {\n const middleElement = this.splitTextGroupByRange(startRange.target, startRange.startOffset, -1);\n if (middleElement) {\n setterFunc(middleElement.props);\n newSelectionRange.setStart(middleElement, 0);\n } else {\n newSelectionRange.setStart(startRange.target, 0);\n }\n } else {\n newSelectionRange.setStart(startRange.target, startRange.startOffset);\n }\n }\n if (endRange.isFullSelected) {\n newSelectionRange.setEnd(endRange.target, -1);\n } else {\n if (endRange.target instanceof TextGroupElement) {\n const middleElement = this.splitTextGroupByRange(endRange.target, 0, endRange.endOffset);\n if (middleElement) {\n setterFunc(middleElement.props);\n newSelectionRange.setEnd(middleElement, -1);\n } else {\n newSelectionRange.setStart(endRange.target, 0);\n }\n\n } else {\n newSelectionRange.setEnd(endRange.target, endRange.endOffset);\n }\n }\n }\n ss.addRange(newSelectionRange);\n }\n\n private static recursionSetRangeTextStyle(range: SelectionContentRange, setterFunc: (tp: TextProps) => void): void {\n RangeUtil.recursionTraversalRangeHandler(range, (itemRange) => {\n if (itemRange.target instanceof TextGroupElement && itemRange.isFullSelected) {\n setterFunc(itemRange.target.props)\n }\n })\n }\n\n\n static setParaAlign(ss: SelectionState, setterFunc: (tp: ParagraphProps) => void): void {\n if (ss.collapsed && ss.startControl) {\n const para = ElementUtil.getParentByType(ss.startControl, ParagraphElement);\n if (para) {\n setterFunc(para.props);\n }\n } else {\n const range = ss.selectedRange;\n if (!range) {\n return;\n }\n RangeUtil.recursionTraversalRangeHandler(range, (itemRange) => {\n if (itemRange.target instanceof ParagraphElement) {\n setterFunc(itemRange.target.props);\n }\n })\n }\n\n }\n\n\n /**\n * 复制\n * @param evt\n * @returns\n */\n onCopy(evt: ClipboardEvent): void {\n evt.preventDefault();\n const copySerializeStr = ElementSerialize.getSelectedJSON(this.selectionState, this.viewOptions);\n if (!copySerializeStr) {\n return;\n }\n evt.clipboardData?.setData('doc/plain', copySerializeStr);\n const copyStr = ElementSerialize.getSelectedText(this.selectionState, this.viewOptions);\n evt.clipboardData?.setData('text/plain', copyStr);\n }\n\n /**\n * 剪切\n * @param evt\n */\n onCut(evt: ClipboardEvent): void {\n this.onCopy(evt);\n this.onRangeDelete();\n }\n\n /**\n * 粘贴\n * @param evt\n * @returns\n */\n onPaste(evt: ClipboardEvent): void {\n evt.preventDefault();\n let pasteText = evt.clipboardData?.getData('text/plain');\n const pasteData = evt.clipboardData?.getData('doc/plain');\n if (!pasteData) {\n if (pasteText) {\n this.pastePlainText(pasteText);\n }\n return;\n }\n const pasteElement = this.eleReader.readElement(JSON.parse(pasteData));\n if (!pasteElement) {\n console.log('粘贴反序列化数据失败', pasteData);\n return;\n }\n const { collapsed } = this.selectionState;\n let { startControl, startOffset } = this.selectionState;\n if (!collapsed) {\n //TODO:如果一个容器内的元素被全部删除,则返回 null\n // const { cursorEle, cursorOffset } = this.onRangeDelete();\n // startControl = cursorEle;\n // startOffset = cursorOffset;\n }\n if (!startControl) {\n return;\n }\n //表单模式:如果复制的是单格式的文本,需要序列化为纯文本处理\n if (this.viewOptions.docMode === DocMode.FormEdit) {\n const pasteString = ElementSerialize.serializeString(pasteElement, { all: false });\n if (pasteString) {\n this.pastePlainText(pasteString);\n }\n return;\n }\n if (pasteElement instanceof ParagraphElement || pasteElement instanceof InlineGroupElement) {\n const children: Array<Element> = [];\n if (pasteElement instanceof ParagraphElement) {\n children.push(...ElementUtil.getChildrenElements(pasteElement));\n } else if (pasteElement instanceof InlineGroupElement) {\n children.push(pasteElement);\n }\n if (!children.length) {\n throw new Error('段落子元素为空');\n }\n const lastEle = this.insertElement(startControl, startOffset, children) as Element;\n this.selectionState.resetRange(lastEle, -1);\n return;\n }\n console.log('粘贴:' + pasteData);\n }\n\n insertSoftBr(): void {\n let { startControl, startOffset } = this.selectionState;\n const lastEle = this.insertElement(startControl, startOffset, [new BreakElement()]) as Element;\n const focusEle = ElementUtil.getNextSiblingElement(lastEle);\n if (focusEle) {\n this.selectionState.resetRange(focusEle, 0);\n }\n\n }\n\n /**\n * 处理黏贴的纯文本\n * @param text\n */\n private pastePlainText(text: string): void {\n const textItems = text.split(/\\r?\\n/);\n const { startControl, startOffset } = this.selectionState;\n if (this.viewOptions.docMode === DocMode.FormEdit || textItems.length === 1 || IsInSideInlineGroupInputElement(startControl, startOffset)) {\n text = text.replace(/[\\n\\r]/g, '');\n this.newInput({\n data: text,\n compositionStartInfo: {\n element: startControl,\n offset: startOffset\n }\n })\n } else {\n const breakPara = this.splitCurrentParagraph();\n for (let i = 0; i < textItems.length; i++) {\n const newPara = breakPara.clone(false) as ParagraphElement;\n const inputTextProps = newPara.props.textProps;\n const newTextEle = ElementUtil.getNewTextGroup(inputTextProps);\n newTextEle.text = textItems[i];\n newPara.addChild(newTextEle, 0);\n breakPara.parent.addChild(newPara, breakPara.getIndex());\n }\n this.selectionState.resetRange(breakPara, 0);\n }\n }\n\n /**\n * 设置当前段落项目符号类型\n */\n setParagraphNumberType(): void {\n const { startControl } = this.selectionState;\n if (!startControl) {\n return;\n }\n const para = ElementUtil.getParentByType(startControl, ParagraphElement) as ParagraphElement;\n if (para.props.numberType >= 0) {\n para.props.numberType = -1;\n para.props.indent = 0;\n } else {\n para.props.numberType = 0;\n para.props.indent = 15;\n }\n }\n\n /**\n * 插入批注\n */\n insertComment(): void {\n const { startControl, startOffset, endControl, endOffset, collapsed } = this.selectionState;\n if (collapsed || !startControl || !endControl) {\n return;\n }\n const id = nanoid(5);\n const startCommMark = new CommentElement();\n startCommMark.props.id = id;\n startCommMark.props.markType = 'start';\n\n const endCommMark = new CommentElement();\n endCommMark.props.id = id;\n endCommMark.props.markType = 'end';\n\n this.insertElement(endControl, endOffset, [endCommMark])\n this.insertElement(startControl, startOffset, [startCommMark])\n\n const commContent = new CommContentElement();\n commContent.props.id = id;\n commContent.props.createId = this.viewOptions.editUser.id;\n commContent.props.createName = this.viewOptions.editUser.name;\n commContent.props.createDate = new Date();\n const pos = this.docComment.getCommMarkIndex(startCommMark);\n if (pos < 0) {\n throw new Error('获取插入的批注位置不正确');\n }\n this.docCtx.document.commentsContainerElement.addChild(commContent, pos);\n this.selectionState.clear();\n\n this.docComment.afterCommentsChanged();\n }\n\n validate(): boolean {\n const dataEleList = this.docCtx.document.treeFilter(item => item instanceof DataElementInlineGroup) as Array<DataElementInlineGroup>;\n const errorEleList = dataEleList.map(item => ({ error: item.validate(), ele: item })).filter(item => item.error);\n if (!errorEleList.length) {\n return true;\n }\n errorEleList.forEach(item => {\n const id = nanoid(5);\n const startCommMark = new CommentElement();\n startCommMark.props.id = id;\n startCommMark.props.markType = 'start';\n\n const endCommMark = new CommentElement();\n endCommMark.props.id = id;\n endCommMark.props.markType = 'end';\n\n item.ele.addChild(startCommMark, 0);\n item.ele.addChild(endCommMark, item.ele.length)\n const caption = CommonUtil.nullToString(item.ele.props.caption);\n const validateElement = new ValidateElement();\n validateElement.props.title = caption + '验证';\n validateElement.props.id = id;\n validateElement.setContent(item.error);\n\n const pos = this.docComment.getCommMarkIndex(startCommMark);\n this.docCtx.document.commentsContainerElement.addChild(validateElement, pos);\n\n\n })\n this.docCtx.selectionState.clear();\n this.docComment.afterCommentsChanged();\n\n return false;\n }\n\n /**\n * 移除空字符串\n * @param text\n */\n removeEmptyText(text: TextGroupElement): void {\n //const nextLeafElementInPara = ElementUtil.getRecursionNextSiblingElement(text, true, true); getComputedStyle\n this.setCurosrForDeleteAction(text);\n const parent = text.parent;\n text.remove();\n this.removeEmtpyInlineBlock(parent);\n }\n\n setCurosrForDeleteAction(control: Element): void {\n const cursorInfo = this.getCursorElementByDeleteAction(control);\n if (cursorInfo) {\n this.selectionState.resetRange(cursorInfo.ele, cursorInfo.offset);\n } else {\n this.selectionState.clear();\n }\n }\n\n getCursorElementByDeleteAction(control: Element): { ele: LeafElement, offset: number } | null {\n const prevLeafElementInPara = ElementUtil.getRecursionPrevSiblingElement(control, false, true);\n //判断是否为同一段落\n if (prevLeafElementInPara && ElementUtil.isInSameParagraph(prevLeafElementInPara, control)) {\n return {\n ele: prevLeafElementInPara,\n offset: ElementUtil.getElementEndOffset(prevLeafElementInPara)\n }\n }\n //同一段落其他元素\n const nextLeafElementInPara = ElementUtil.getRecursionNextSiblingElement(control, true, true);\n if (nextLeafElementInPara) {\n return {\n ele: nextLeafElementInPara,\n offset: 0\n }\n }\n //上一段落\n if (prevLeafElementInPara) {\n return {\n ele: prevLeafElementInPara,\n offset: prevLeafElementInPara instanceof PSymbolElement ? 0 : ElementUtil.getElementEndOffset(prevLeafElementInPara)\n }\n }\n return null;\n }\n\n /**\n * 移除空行内标签\n * @param ele\n */\n removeEmtpyInlineBlock(ele: Element): void {\n if (ele instanceof InlineGroupElement && ele.length === 0) {\n const parent = ele.parent;\n ele.remove();\n this.removeEmtpyInlineBlock(parent);\n }\n }\n\n /**\n * 插入强制换页符号\n */\n insertPageBreakPara(): void {\n const { startControl } = this.selectionState;\n const currPara = ElementUtil.getParentByType(startControl, ParagraphElement)\n if (!currPara) {\n return;\n }\n if (currPara.parent instanceof DocumentBodyElement) {\n const pageBreak = new ParagraphElement();\n pageBreak.props.pageBreak = true;\n pageBreak.props.textAlign = 'center';\n pageBreak.parent.addChild(pageBreak);\n }\n }\n\n\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"document-combine.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"document-combine.js","sourceRoot":"lib/","sources":["framework/document-combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAG7E;;GAEG;AACH,MAAM,OAAO,eAAe;IACxB;;;OAGG;IACH,YAAY,CAAkB;IAE9B,QAAQ,GAAmD,EAAE,CAAC;IAC9D;;OAEG;IACH,GAAG,CAAC,OAAwB,EAAE,EAAU;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI;QACA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,mBAAmB,CAAwB,CAAC;QACjG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAC;YACvD,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,mBAAmB,CAAwB,CAAA;YACrG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;SAClC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ","sourcesContent":["import { DocumentBodyElement } from \"./impl/document/doc-body-impl\";\nimport { DocumentBodyPartElement } from \"./impl/document/doc-body-part-impl\";\nimport { DocumentElement } from \"./impl/document/doc-impl\";\n\n/**\n * 文档合并\n */\nexport class DocumentCombine {\n /**\n * 合并模板文档\n * 用于设置合并后,页眉页脚等统一部分\n */\n mainTemplate!: DocumentElement\n\n docParts: Array<{ doc: DocumentElement, docId: string }> = [];\n /**\n * 添加需要合并的文档部分\n */\n add(docPart: DocumentElement, id: string): void {\n this.docParts.push({ doc: docPart, docId: id })\n }\n\n dispose(): void {\n this.docParts.length = 0;\n }\n\n /**\n * 用于合并文档计算\n */\n load(): DocumentElement {\n const template = this.mainTemplate.clone();\n const body = template.find((item) => item instanceof DocumentBodyElement) as DocumentBodyElement;\n body.clearItems();\n for (let i = 0; i < this.docParts.length; i++) {\n const part = this.docParts[i];\n const docPartContainer = new DocumentBodyPartElement();\n docPartContainer.props.partId = part.docId;\n const docPartBody = part.doc.find(item => item instanceof DocumentBodyElement) as DocumentBodyElement\n docPartContainer.addChild(docPartBody.clone(true));\n body.addChild(docPartContainer)\n }\n return template;\n }\n}"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"document-comment.js","sourceRoot":"","sources":["../../src/med_editor/framework/document-comment.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"document-comment.js","sourceRoot":"lib/","sources":["framework/document-comment.ts"],"names":[],"mappings":"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","sourcesContent":["import { EditorContext } from \"./document-context\";\nimport { ElementUtil } from \"./element-util\";\nimport { CommContentBaseElement, CommContentElement } from \"./impl/comments/comment-content-impl\";\nimport { CommentElement } from \"./impl/comments/comment-element-impl\";\nimport { TextGroupElement } from \"./impl/text/text-impl\";\nimport { RangeUtil } from \"./range-util\";\n\n/**\n * 处理文档批注\n */\nexport class DocumentComment {\n commMarkList: Array<CommentElement> = [];\n commContentList: Array<CommContentBaseElement> = [];\n isDirty: boolean = true;\n constructor(public docCtx: EditorContext) { }\n\n /**\n * 读取审阅标记符号\n */\n readComments(): void {\n if (!this.isDirty) {\n return;\n }\n const commList = this.docCtx.document.treeFilter(item => item.type === 'comm') as Array<CommentElement>;\n const startCommList = commList.filter(item => item.props.markType === \"start\");\n const endCommList = commList.filter(item => item.props.markType === \"end\");\n const commMaps = startCommList.map(startItem => {\n const end = endCommList.find(endItem => endItem.props.id === startItem.props.id);\n if (!end) {\n throw new Error('未找到匹配的结束审阅符号')\n }\n return { start: startItem, end }\n })\n const commContentList: Array<CommContentBaseElement> = [];\n for (let i = 0; i < this.docCtx.document.commentsContainerElement.length; i++) {\n const commContent = this.docCtx.document.commentsContainerElement.getChild(i) as CommContentBaseElement;\n const commMap = commMaps.find(item => item.start.props.id === commContent.props.id);\n if (!commMap) {\n throw new Error('未找到审阅内容对应的审阅符号');\n }\n commContent.startMark = commMap.start;\n commContent.endMark = commMap.end;\n commContentList.push(commContent)\n }\n this.commMarkList = commList;\n this.commContentList = commContentList;\n this.docCtx.viewOptions.showReviewWindow = this.commContentList.length > 0;\n this.isDirty = false;\n }\n\n /**\n * 执行删除前,需要更新批注节点位置\n */\n updateComments(): void {\n const { selectionState } = this.docCtx;\n const { startControl, startOffset, collapsed, selectedRange } = selectionState;\n if (collapsed) {\n if (startOffset === 0) {\n return;\n }\n const nextSiblingEle = ElementUtil.getNextSiblingElement(startControl);\n //紧挨着的元素\n if (nextSiblingEle instanceof CommentElement && nextSiblingEle.props.markType === 'end') {\n if (startControl instanceof TextGroupElement) {\n if (startControl.textMeasures.length === startOffset) {\n this.removeComment(nextSiblingEle.props.id);\n }\n } else {\n this.removeComment(nextSiblingEle.props.id);\n }\n }\n } else {\n //如果开始批注被选中,则需要移动开始批注元素到选区末尾\n //如果结束批注被选中,则需要删除当前批注\n if (!selectedRange) {\n return\n }\n const endRange = RangeUtil.getEndRangeTarget(selectedRange);\n if (!endRange) {\n return\n }\n const commPairs: Array<CommMarkSelectedStatus> = [];\n for (let i = 0; i < this.commContentList.length; i++) {\n const { startMark, endMark } = this.commContentList[i];\n const commPair: CommMarkSelectedStatus = {\n startMark,\n endMark,\n startMarkStatus: RangeUtil.checkElementFullInRange(selectedRange, startMark),\n endMarkStatus: RangeUtil.checkElementFullInRange(selectedRange, endMark),\n };\n commPairs.push(commPair)\n }\n\n for (let i = 0; i < commPairs.length; i++) {\n const commPair = commPairs[i];\n if (commPair.endMarkStatus) {\n this.removeComment(commPair.endMark.props.id);\n } else if (commPair.startMarkStatus) {\n // const newStartMark = new CommentElement();\n // newStartMark.props.id = commPair.startMark.props.id;\n // commPair.startMark.isDecorate = false;\n // DocumentChange.insertElement(endRange.target, endRange.endOffset, [newStartMark]);\n }\n }\n }\n }\n\n\n /**\n * 删除批注\n * @param id \n */\n removeComment(id: string): void {\n const commentMarks = this.commMarkList.filter(item => item.props.id === id);\n const commentContent = this.commContentList.find(item => item.props.id === id);\n commentMarks.forEach(item => item.remove())\n commentContent?.remove();\n this.afterCommentsChanged();\n }\n\n getCommMarkIndex(commMark: CommentElement): number {\n const markType = commMark.props.markType;\n const commList = this.docCtx.document.treeFilter(item => item.type === 'comm') as Array<CommentElement>;\n const startCommList = commList.filter(item => item.props.markType === markType);\n return startCommList.indexOf(commMark);\n }\n\n /**\n * 清除所有批注\n */\n clearAllComments(): void {\n this.readComments();\n for (let i = 0; i < this.commContentList.length; i++) {\n this.removeComment(this.commContentList[i].props.id);\n }\n this.docCtx.selectionState.clear();\n }\n\n /**\n * 清除所有的验证批注\n */\n clearAllValidates(): void {\n this.docCtx.document.treeFilter(item => item.type === 'validate').forEach(item => { this.removeComment(item.props.id) })\n }\n\n /**\n * 批注修改后事件\n * 用于标注当前文档的批注发生更改了,不再重复读取批注,提高性能\n */\n afterCommentsChanged(): void {\n this.isDirty = true;\n }\n\n\n}\n\n\nexport interface CommMarkSelectedStatus {\n startMark: CommentElement,\n endMark: CommentElement,\n startMarkStatus: boolean,\n endMarkStatus: boolean\n}\n"]}
|