@univerjs/engine-render 1.0.0-alpha.3 → 1.0.0-alpha.5
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/cjs/index.js +93 -4
- package/lib/es/index.js +92 -5
- package/lib/types/components/docs/doc-component.d.ts +3 -0
- package/lib/types/components/docs/extensions/font-and-base-line.d.ts +1 -0
- package/lib/types/components/sheets/interfaces.d.ts +1 -0
- package/lib/types/components/sheets/sheet.render-skeleton.d.ts +5 -2
- package/lib/types/drawing-group.d.ts +8 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/umd/index.js +2 -2
- package/package.json +3 -3
package/lib/cjs/index.js
CHANGED
|
@@ -19192,6 +19192,29 @@ const DEFAULT_PADDING_DATA = {
|
|
|
19192
19192
|
r: 2
|
|
19193
19193
|
};
|
|
19194
19194
|
const RENDER_RAW_FORMULA_KEY = "RENDER_RAW_FORMULA";
|
|
19195
|
+
function getShrinkToFitScale(contentWidth, availableWidth, fontSize) {
|
|
19196
|
+
if (contentWidth <= availableWidth || contentWidth <= 0 || availableWidth <= 0 || fontSize <= 0) return 1;
|
|
19197
|
+
return Math.max(1 / fontSize, availableWidth / contentWidth);
|
|
19198
|
+
}
|
|
19199
|
+
function scaleDocumentDataForShrinkToFit(documentData, scale, fallbackFontSize) {
|
|
19200
|
+
var _scaled$documentStyle, _defaultTextStyle$fs, _scaled$body;
|
|
19201
|
+
const scaled = _univerjs_core.Tools.deepClone(documentData);
|
|
19202
|
+
const defaultTextStyle = (_scaled$documentStyle = scaled.documentStyle.textStyle) !== null && _scaled$documentStyle !== void 0 ? _scaled$documentStyle : {};
|
|
19203
|
+
const defaultFontSize = (_defaultTextStyle$fs = defaultTextStyle.fs) !== null && _defaultTextStyle$fs !== void 0 ? _defaultTextStyle$fs : fallbackFontSize;
|
|
19204
|
+
scaled.documentStyle.textStyle = {
|
|
19205
|
+
...defaultTextStyle,
|
|
19206
|
+
fs: defaultFontSize * scale
|
|
19207
|
+
};
|
|
19208
|
+
(_scaled$body = scaled.body) === null || _scaled$body === void 0 || (_scaled$body = _scaled$body.textRuns) === null || _scaled$body === void 0 || _scaled$body.forEach((textRun) => {
|
|
19209
|
+
var _textRun$ts, _textStyle$fs;
|
|
19210
|
+
const textStyle = (_textRun$ts = textRun.ts) !== null && _textRun$ts !== void 0 ? _textRun$ts : {};
|
|
19211
|
+
textRun.ts = {
|
|
19212
|
+
...textStyle,
|
|
19213
|
+
fs: ((_textStyle$fs = textStyle.fs) !== null && _textStyle$fs !== void 0 ? _textStyle$fs : defaultFontSize) * scale
|
|
19214
|
+
};
|
|
19215
|
+
});
|
|
19216
|
+
return scaled;
|
|
19217
|
+
}
|
|
19195
19218
|
function getResolvedRenderHorizontalAlign$1(horizontalAlign, cellData) {
|
|
19196
19219
|
if (horizontalAlign !== _univerjs_core.HorizontalAlign.UNSPECIFIED) return horizontalAlign;
|
|
19197
19220
|
if ((cellData === null || cellData === void 0 ? void 0 : cellData.t) === _univerjs_core.CellValueType.NUMBER || !_univerjs_core.Tools.isDefine(cellData === null || cellData === void 0 ? void 0 : cellData.t) && typeof (cellData === null || cellData === void 0 ? void 0 : cellData.v) === "number") return _univerjs_core.HorizontalAlign.RIGHT;
|
|
@@ -20151,6 +20174,29 @@ let SpreadsheetSkeleton = class SpreadsheetSkeleton extends _univerjs_core.Sheet
|
|
|
20151
20174
|
(_this$_stylesCache$ba3 = this._stylesCache.backgroundPositions) === null || _this$_stylesCache$ba3 === void 0 || _this$_stylesCache$ba3.setValue(row, col, cellInfo);
|
|
20152
20175
|
}
|
|
20153
20176
|
}
|
|
20177
|
+
_applyShrinkToFit(row, col, fontCache, style) {
|
|
20178
|
+
var _style$pd5, _fontCache$cellData, _padding$l, _padding$r, _extension$leftOffset, _extension$rightOffse, _style$fs, _getDocsSkeletonPageS3, _fontCache$displayTex;
|
|
20179
|
+
if (style.stf !== _univerjs_core.BooleanNumber.TRUE) return;
|
|
20180
|
+
const cellInfo = this.getCellWithCoordByIndex(row, col, false);
|
|
20181
|
+
const startX = cellInfo.isMergedMainCell ? cellInfo.mergeInfo.startX : cellInfo.startX;
|
|
20182
|
+
const endX = cellInfo.isMergedMainCell ? cellInfo.mergeInfo.endX : cellInfo.endX;
|
|
20183
|
+
const padding = (_style$pd5 = style.pd) !== null && _style$pd5 !== void 0 ? _style$pd5 : DEFAULT_PADDING_DATA;
|
|
20184
|
+
const extension = (_fontCache$cellData = fontCache.cellData) === null || _fontCache$cellData === void 0 ? void 0 : _fontCache$cellData.fontRenderExtension;
|
|
20185
|
+
const availableWidth = endX - startX - ((_padding$l = padding.l) !== null && _padding$l !== void 0 ? _padding$l : DEFAULT_PADDING_DATA.l) - ((_padding$r = padding.r) !== null && _padding$r !== void 0 ? _padding$r : DEFAULT_PADDING_DATA.r) - ((_extension$leftOffset = extension === null || extension === void 0 ? void 0 : extension.leftOffset) !== null && _extension$leftOffset !== void 0 ? _extension$leftOffset : 0) - ((_extension$rightOffse = extension === null || extension === void 0 ? void 0 : extension.rightOffset) !== null && _extension$rightOffse !== void 0 ? _extension$rightOffse : 0);
|
|
20186
|
+
const fallbackFontSize = (_style$fs = style.fs) !== null && _style$fs !== void 0 ? _style$fs : _univerjs_core.DEFAULT_STYLES.fs;
|
|
20187
|
+
const scale = getShrinkToFitScale(fontCache.documentSkeleton ? ((_getDocsSkeletonPageS3 = getDocsSkeletonPageSize(fontCache.documentSkeleton, fontCache.vertexAngle)) !== null && _getDocsSkeletonPageS3 !== void 0 ? _getDocsSkeletonPageS3 : { width: 0 }).width : FontCache.getMeasureText((_fontCache$displayTex = fontCache.displayText) !== null && _fontCache$displayTex !== void 0 ? _fontCache$displayTex : (0, _univerjs_core.getDisplayValueFromCell)(fontCache.cellData), fontCache.fontString).width, availableWidth, fallbackFontSize);
|
|
20188
|
+
if (scale >= 1) return;
|
|
20189
|
+
fontCache.shrinkScale = scale;
|
|
20190
|
+
if (fontCache.documentSkeleton) {
|
|
20191
|
+
const documentModel = new _univerjs_core.DocumentDataModel(scaleDocumentDataForShrinkToFit(fontCache.documentSkeleton.getViewModel().getDataModel().getSnapshot(), scale, fallbackFontSize));
|
|
20192
|
+
const documentSkeleton = DocumentSkeleton.create(new DocumentViewModel(documentModel), this._localeService);
|
|
20193
|
+
documentSkeleton.calculate();
|
|
20194
|
+
fontCache.documentSkeleton = documentSkeleton;
|
|
20195
|
+
} else fontCache.fontString = getFontStyleString({
|
|
20196
|
+
...style,
|
|
20197
|
+
fs: fallbackFontSize * scale
|
|
20198
|
+
}).fontCache;
|
|
20199
|
+
}
|
|
20154
20200
|
_setFontStylesCache(row, col, cellData, style, hasMergeData = true) {
|
|
20155
20201
|
var _style$tr2;
|
|
20156
20202
|
if ((0, _univerjs_core.isNullCell)(cellData)) return;
|
|
@@ -20209,6 +20255,7 @@ let SpreadsheetSkeleton = class SpreadsheetSkeleton extends _univerjs_core.Sheet
|
|
|
20209
20255
|
}
|
|
20210
20256
|
const fontCacheItem = config;
|
|
20211
20257
|
setRenderTextCache(fontCacheItem, cellData);
|
|
20258
|
+
this._applyShrinkToFit(row, col, fontCacheItem, style);
|
|
20212
20259
|
this._calculateOverflowCell(row, col, fontCacheItem, hasMergeData);
|
|
20213
20260
|
this._stylesCache.fontMatrix.setValue(row, col, fontCacheItem);
|
|
20214
20261
|
}
|
|
@@ -21244,6 +21291,12 @@ var DocComponent = class extends RenderComponent {
|
|
|
21244
21291
|
_defineProperty(this, "pageMarginLeft", 0);
|
|
21245
21292
|
_defineProperty(this, "pageMarginTop", 0);
|
|
21246
21293
|
_defineProperty(this, "pageLayoutType", 0);
|
|
21294
|
+
_defineProperty(this, "onTextFillImageLoaded", void 0);
|
|
21295
|
+
this.onTextFillImageLoaded = () => {
|
|
21296
|
+
var _config$onTextFillIma;
|
|
21297
|
+
this.makeDirty(true);
|
|
21298
|
+
config === null || config === void 0 || (_config$onTextFillIma = config.onTextFillImageLoaded) === null || _config$onTextFillIma === void 0 || _config$onTextFillIma.call(config);
|
|
21299
|
+
};
|
|
21247
21300
|
this._setConfig(config);
|
|
21248
21301
|
}
|
|
21249
21302
|
getSkeleton() {
|
|
@@ -21772,7 +21825,6 @@ var Image$1 = class extends Shape {
|
|
|
21772
21825
|
this._props = { ...config };
|
|
21773
21826
|
if (config.image) {
|
|
21774
21827
|
this._native = config.image;
|
|
21775
|
-
this._native.crossOrigin = "anonymous";
|
|
21776
21828
|
this.makeDirty(true);
|
|
21777
21829
|
} else if (config.url) {
|
|
21778
21830
|
this._native = document.createElement("img");
|
|
@@ -23638,6 +23690,7 @@ var FontAndBaseLine = class extends docExtension {
|
|
|
23638
23690
|
{}
|
|
23639
23691
|
);
|
|
23640
23692
|
_defineProperty(this, "_textFillImageCache", /* @__PURE__ */ new Map());
|
|
23693
|
+
_defineProperty(this, "_textFillImageLoadListeners", /* @__PURE__ */ new Map());
|
|
23641
23694
|
}
|
|
23642
23695
|
draw(ctx, _parentScale, glyph, _, _more) {
|
|
23643
23696
|
var _glyph$parent;
|
|
@@ -23763,10 +23816,32 @@ var FontAndBaseLine = class extends docExtension {
|
|
|
23763
23816
|
return pattern;
|
|
23764
23817
|
}
|
|
23765
23818
|
_getTextFillImage(source) {
|
|
23819
|
+
var _this$parent;
|
|
23820
|
+
const onTextFillImageLoaded = (_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.onTextFillImageLoaded;
|
|
23766
23821
|
const cached = this._textFillImageCache.get(source);
|
|
23767
|
-
if (cached)
|
|
23822
|
+
if (cached) {
|
|
23823
|
+
if (!cached.complete && onTextFillImageLoaded) {
|
|
23824
|
+
var _this$_textFillImageL;
|
|
23825
|
+
(_this$_textFillImageL = this._textFillImageLoadListeners.get(source)) === null || _this$_textFillImageL === void 0 || _this$_textFillImageL.add(onTextFillImageLoaded);
|
|
23826
|
+
}
|
|
23827
|
+
return cached;
|
|
23828
|
+
}
|
|
23768
23829
|
const image = new Image();
|
|
23769
|
-
|
|
23830
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
23831
|
+
if (onTextFillImageLoaded) listeners.add(onTextFillImageLoaded);
|
|
23832
|
+
this._textFillImageLoadListeners.set(source, listeners);
|
|
23833
|
+
image.onload = () => {
|
|
23834
|
+
image.onload = null;
|
|
23835
|
+
image.onerror = null;
|
|
23836
|
+
const loadListeners = this._textFillImageLoadListeners.get(source);
|
|
23837
|
+
this._textFillImageLoadListeners.delete(source);
|
|
23838
|
+
loadListeners === null || loadListeners === void 0 || loadListeners.forEach((listener) => listener());
|
|
23839
|
+
};
|
|
23840
|
+
image.onerror = () => {
|
|
23841
|
+
image.onload = null;
|
|
23842
|
+
image.onerror = null;
|
|
23843
|
+
this._textFillImageLoadListeners.delete(source);
|
|
23844
|
+
};
|
|
23770
23845
|
image.src = source;
|
|
23771
23846
|
this._textFillImageCache.set(source, image);
|
|
23772
23847
|
return image.complete ? image : null;
|
|
@@ -26533,6 +26608,11 @@ var DrawingGroupObject = class extends Group {
|
|
|
26533
26608
|
width: 0,
|
|
26534
26609
|
height: 0
|
|
26535
26610
|
});
|
|
26611
|
+
_defineProperty(this, "_outerShadow", void 0);
|
|
26612
|
+
}
|
|
26613
|
+
setOuterShadow(shadow) {
|
|
26614
|
+
this._outerShadow = shadow;
|
|
26615
|
+
this.makeDirty(true);
|
|
26536
26616
|
}
|
|
26537
26617
|
/**
|
|
26538
26618
|
* Set the baseBound (chOff/chExt in OOXML) for this group.
|
|
@@ -26580,6 +26660,12 @@ var DrawingGroupObject = class extends Group {
|
|
|
26580
26660
|
const centerX = realLeft + realWidth / 2;
|
|
26581
26661
|
const centerY = realTop + realHeight / 2;
|
|
26582
26662
|
ctx.transform(m[0], m[1], m[2], m[3], centerX, centerY);
|
|
26663
|
+
if (this._outerShadow) {
|
|
26664
|
+
ctx.shadowColor = this._outerShadow.shadowColor;
|
|
26665
|
+
ctx.shadowBlur = this._outerShadow.shadowBlur;
|
|
26666
|
+
ctx.shadowOffsetX = this._outerShadow.shadowOffsetX;
|
|
26667
|
+
ctx.shadowOffsetY = this._outerShadow.shadowOffsetY;
|
|
26668
|
+
}
|
|
26583
26669
|
const objects = this.getObjectsByOrder();
|
|
26584
26670
|
for (let i = 0; i < objects.length; i++) objects[i].render(ctx, bounds);
|
|
26585
26671
|
ctx.restore();
|
|
@@ -27516,7 +27602,7 @@ Engine = __decorate([__decorateParam(2, ICanvasColorService)], Engine);
|
|
|
27516
27602
|
//#endregion
|
|
27517
27603
|
//#region package.json
|
|
27518
27604
|
var name = "@univerjs/engine-render";
|
|
27519
|
-
var version = "1.0.0-alpha.
|
|
27605
|
+
var version = "1.0.0-alpha.5";
|
|
27520
27606
|
|
|
27521
27607
|
//#endregion
|
|
27522
27608
|
//#region src/config/config.ts
|
|
@@ -28789,6 +28875,7 @@ var Transformer = class extends _univerjs_core.Disposable {
|
|
|
28789
28875
|
_recoverySizeBoundary(selectedObjects, ancestorLeft, ancestorTop, topSceneWidth, topSceneHeight) {
|
|
28790
28876
|
for (let i = 0; i < selectedObjects.length; i++) {
|
|
28791
28877
|
const moveObject = selectedObjects[i];
|
|
28878
|
+
if (this._getConfig(moveObject).moveBoundaryEnabled === false) continue;
|
|
28792
28879
|
const { left, top, width, height } = moveObject;
|
|
28793
28880
|
const newTransform = {};
|
|
28794
28881
|
if (left + ancestorLeft < this.zeroLeft) {
|
|
@@ -32128,6 +32215,7 @@ exports.getRotateOffsetAndFarthestHypotenuse = getRotateOffsetAndFarthestHypoten
|
|
|
32128
32215
|
exports.getRotateOrientation = getRotateOrientation;
|
|
32129
32216
|
exports.getRotatedBoundInGroup = getRotatedBoundInGroup;
|
|
32130
32217
|
exports.getScale = getScale;
|
|
32218
|
+
exports.getShrinkToFitScale = getShrinkToFitScale;
|
|
32131
32219
|
exports.getSizeForDom = getSizeForDom;
|
|
32132
32220
|
exports.getSystemHighlightColor = getSystemHighlightColor;
|
|
32133
32221
|
exports.getTableIdAndSliceIndex = getTableIdAndSliceIndex;
|
|
@@ -32184,6 +32272,7 @@ exports.renderTextWatermark = renderTextWatermark;
|
|
|
32184
32272
|
exports.renderUserInfoWatermark = renderUserInfoWatermark;
|
|
32185
32273
|
exports.renderWatermark = renderWatermark;
|
|
32186
32274
|
exports.requestNewFrame = requestNewFrame;
|
|
32275
|
+
exports.scaleDocumentDataForShrinkToFit = scaleDocumentDataForShrinkToFit;
|
|
32187
32276
|
exports.setDocsCustomBlockRenderViewportProvider = setDocsCustomBlockRenderViewportProvider;
|
|
32188
32277
|
exports.setDocsTableRenderViewportProvider = setDocsTableRenderViewportProvider;
|
|
32189
32278
|
exports.setLineType = setLineType;
|
package/lib/es/index.js
CHANGED
|
@@ -19191,6 +19191,29 @@ const DEFAULT_PADDING_DATA = {
|
|
|
19191
19191
|
r: 2
|
|
19192
19192
|
};
|
|
19193
19193
|
const RENDER_RAW_FORMULA_KEY = "RENDER_RAW_FORMULA";
|
|
19194
|
+
function getShrinkToFitScale(contentWidth, availableWidth, fontSize) {
|
|
19195
|
+
if (contentWidth <= availableWidth || contentWidth <= 0 || availableWidth <= 0 || fontSize <= 0) return 1;
|
|
19196
|
+
return Math.max(1 / fontSize, availableWidth / contentWidth);
|
|
19197
|
+
}
|
|
19198
|
+
function scaleDocumentDataForShrinkToFit(documentData, scale, fallbackFontSize) {
|
|
19199
|
+
var _scaled$documentStyle, _defaultTextStyle$fs, _scaled$body;
|
|
19200
|
+
const scaled = Tools.deepClone(documentData);
|
|
19201
|
+
const defaultTextStyle = (_scaled$documentStyle = scaled.documentStyle.textStyle) !== null && _scaled$documentStyle !== void 0 ? _scaled$documentStyle : {};
|
|
19202
|
+
const defaultFontSize = (_defaultTextStyle$fs = defaultTextStyle.fs) !== null && _defaultTextStyle$fs !== void 0 ? _defaultTextStyle$fs : fallbackFontSize;
|
|
19203
|
+
scaled.documentStyle.textStyle = {
|
|
19204
|
+
...defaultTextStyle,
|
|
19205
|
+
fs: defaultFontSize * scale
|
|
19206
|
+
};
|
|
19207
|
+
(_scaled$body = scaled.body) === null || _scaled$body === void 0 || (_scaled$body = _scaled$body.textRuns) === null || _scaled$body === void 0 || _scaled$body.forEach((textRun) => {
|
|
19208
|
+
var _textRun$ts, _textStyle$fs;
|
|
19209
|
+
const textStyle = (_textRun$ts = textRun.ts) !== null && _textRun$ts !== void 0 ? _textRun$ts : {};
|
|
19210
|
+
textRun.ts = {
|
|
19211
|
+
...textStyle,
|
|
19212
|
+
fs: ((_textStyle$fs = textStyle.fs) !== null && _textStyle$fs !== void 0 ? _textStyle$fs : defaultFontSize) * scale
|
|
19213
|
+
};
|
|
19214
|
+
});
|
|
19215
|
+
return scaled;
|
|
19216
|
+
}
|
|
19194
19217
|
function getResolvedRenderHorizontalAlign$1(horizontalAlign, cellData) {
|
|
19195
19218
|
if (horizontalAlign !== HorizontalAlign.UNSPECIFIED) return horizontalAlign;
|
|
19196
19219
|
if ((cellData === null || cellData === void 0 ? void 0 : cellData.t) === CellValueType.NUMBER || !Tools.isDefine(cellData === null || cellData === void 0 ? void 0 : cellData.t) && typeof (cellData === null || cellData === void 0 ? void 0 : cellData.v) === "number") return HorizontalAlign.RIGHT;
|
|
@@ -20150,6 +20173,29 @@ let SpreadsheetSkeleton = class SpreadsheetSkeleton extends SheetSkeleton {
|
|
|
20150
20173
|
(_this$_stylesCache$ba3 = this._stylesCache.backgroundPositions) === null || _this$_stylesCache$ba3 === void 0 || _this$_stylesCache$ba3.setValue(row, col, cellInfo);
|
|
20151
20174
|
}
|
|
20152
20175
|
}
|
|
20176
|
+
_applyShrinkToFit(row, col, fontCache, style) {
|
|
20177
|
+
var _style$pd5, _fontCache$cellData, _padding$l, _padding$r, _extension$leftOffset, _extension$rightOffse, _style$fs, _getDocsSkeletonPageS3, _fontCache$displayTex;
|
|
20178
|
+
if (style.stf !== BooleanNumber.TRUE) return;
|
|
20179
|
+
const cellInfo = this.getCellWithCoordByIndex(row, col, false);
|
|
20180
|
+
const startX = cellInfo.isMergedMainCell ? cellInfo.mergeInfo.startX : cellInfo.startX;
|
|
20181
|
+
const endX = cellInfo.isMergedMainCell ? cellInfo.mergeInfo.endX : cellInfo.endX;
|
|
20182
|
+
const padding = (_style$pd5 = style.pd) !== null && _style$pd5 !== void 0 ? _style$pd5 : DEFAULT_PADDING_DATA;
|
|
20183
|
+
const extension = (_fontCache$cellData = fontCache.cellData) === null || _fontCache$cellData === void 0 ? void 0 : _fontCache$cellData.fontRenderExtension;
|
|
20184
|
+
const availableWidth = endX - startX - ((_padding$l = padding.l) !== null && _padding$l !== void 0 ? _padding$l : DEFAULT_PADDING_DATA.l) - ((_padding$r = padding.r) !== null && _padding$r !== void 0 ? _padding$r : DEFAULT_PADDING_DATA.r) - ((_extension$leftOffset = extension === null || extension === void 0 ? void 0 : extension.leftOffset) !== null && _extension$leftOffset !== void 0 ? _extension$leftOffset : 0) - ((_extension$rightOffse = extension === null || extension === void 0 ? void 0 : extension.rightOffset) !== null && _extension$rightOffse !== void 0 ? _extension$rightOffse : 0);
|
|
20185
|
+
const fallbackFontSize = (_style$fs = style.fs) !== null && _style$fs !== void 0 ? _style$fs : DEFAULT_STYLES.fs;
|
|
20186
|
+
const scale = getShrinkToFitScale(fontCache.documentSkeleton ? ((_getDocsSkeletonPageS3 = getDocsSkeletonPageSize(fontCache.documentSkeleton, fontCache.vertexAngle)) !== null && _getDocsSkeletonPageS3 !== void 0 ? _getDocsSkeletonPageS3 : { width: 0 }).width : FontCache.getMeasureText((_fontCache$displayTex = fontCache.displayText) !== null && _fontCache$displayTex !== void 0 ? _fontCache$displayTex : getDisplayValueFromCell(fontCache.cellData), fontCache.fontString).width, availableWidth, fallbackFontSize);
|
|
20187
|
+
if (scale >= 1) return;
|
|
20188
|
+
fontCache.shrinkScale = scale;
|
|
20189
|
+
if (fontCache.documentSkeleton) {
|
|
20190
|
+
const documentModel = new DocumentDataModel(scaleDocumentDataForShrinkToFit(fontCache.documentSkeleton.getViewModel().getDataModel().getSnapshot(), scale, fallbackFontSize));
|
|
20191
|
+
const documentSkeleton = DocumentSkeleton.create(new DocumentViewModel(documentModel), this._localeService);
|
|
20192
|
+
documentSkeleton.calculate();
|
|
20193
|
+
fontCache.documentSkeleton = documentSkeleton;
|
|
20194
|
+
} else fontCache.fontString = getFontStyleString({
|
|
20195
|
+
...style,
|
|
20196
|
+
fs: fallbackFontSize * scale
|
|
20197
|
+
}).fontCache;
|
|
20198
|
+
}
|
|
20153
20199
|
_setFontStylesCache(row, col, cellData, style, hasMergeData = true) {
|
|
20154
20200
|
var _style$tr2;
|
|
20155
20201
|
if (isNullCell(cellData)) return;
|
|
@@ -20208,6 +20254,7 @@ let SpreadsheetSkeleton = class SpreadsheetSkeleton extends SheetSkeleton {
|
|
|
20208
20254
|
}
|
|
20209
20255
|
const fontCacheItem = config;
|
|
20210
20256
|
setRenderTextCache(fontCacheItem, cellData);
|
|
20257
|
+
this._applyShrinkToFit(row, col, fontCacheItem, style);
|
|
20211
20258
|
this._calculateOverflowCell(row, col, fontCacheItem, hasMergeData);
|
|
20212
20259
|
this._stylesCache.fontMatrix.setValue(row, col, fontCacheItem);
|
|
20213
20260
|
}
|
|
@@ -21243,6 +21290,12 @@ var DocComponent = class extends RenderComponent {
|
|
|
21243
21290
|
_defineProperty(this, "pageMarginLeft", 0);
|
|
21244
21291
|
_defineProperty(this, "pageMarginTop", 0);
|
|
21245
21292
|
_defineProperty(this, "pageLayoutType", 0);
|
|
21293
|
+
_defineProperty(this, "onTextFillImageLoaded", void 0);
|
|
21294
|
+
this.onTextFillImageLoaded = () => {
|
|
21295
|
+
var _config$onTextFillIma;
|
|
21296
|
+
this.makeDirty(true);
|
|
21297
|
+
config === null || config === void 0 || (_config$onTextFillIma = config.onTextFillImageLoaded) === null || _config$onTextFillIma === void 0 || _config$onTextFillIma.call(config);
|
|
21298
|
+
};
|
|
21246
21299
|
this._setConfig(config);
|
|
21247
21300
|
}
|
|
21248
21301
|
getSkeleton() {
|
|
@@ -21771,7 +21824,6 @@ var Image$1 = class extends Shape {
|
|
|
21771
21824
|
this._props = { ...config };
|
|
21772
21825
|
if (config.image) {
|
|
21773
21826
|
this._native = config.image;
|
|
21774
|
-
this._native.crossOrigin = "anonymous";
|
|
21775
21827
|
this.makeDirty(true);
|
|
21776
21828
|
} else if (config.url) {
|
|
21777
21829
|
this._native = document.createElement("img");
|
|
@@ -23637,6 +23689,7 @@ var FontAndBaseLine = class extends docExtension {
|
|
|
23637
23689
|
{}
|
|
23638
23690
|
);
|
|
23639
23691
|
_defineProperty(this, "_textFillImageCache", /* @__PURE__ */ new Map());
|
|
23692
|
+
_defineProperty(this, "_textFillImageLoadListeners", /* @__PURE__ */ new Map());
|
|
23640
23693
|
}
|
|
23641
23694
|
draw(ctx, _parentScale, glyph, _, _more) {
|
|
23642
23695
|
var _glyph$parent;
|
|
@@ -23762,10 +23815,32 @@ var FontAndBaseLine = class extends docExtension {
|
|
|
23762
23815
|
return pattern;
|
|
23763
23816
|
}
|
|
23764
23817
|
_getTextFillImage(source) {
|
|
23818
|
+
var _this$parent;
|
|
23819
|
+
const onTextFillImageLoaded = (_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.onTextFillImageLoaded;
|
|
23765
23820
|
const cached = this._textFillImageCache.get(source);
|
|
23766
|
-
if (cached)
|
|
23821
|
+
if (cached) {
|
|
23822
|
+
if (!cached.complete && onTextFillImageLoaded) {
|
|
23823
|
+
var _this$_textFillImageL;
|
|
23824
|
+
(_this$_textFillImageL = this._textFillImageLoadListeners.get(source)) === null || _this$_textFillImageL === void 0 || _this$_textFillImageL.add(onTextFillImageLoaded);
|
|
23825
|
+
}
|
|
23826
|
+
return cached;
|
|
23827
|
+
}
|
|
23767
23828
|
const image = new Image();
|
|
23768
|
-
|
|
23829
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
23830
|
+
if (onTextFillImageLoaded) listeners.add(onTextFillImageLoaded);
|
|
23831
|
+
this._textFillImageLoadListeners.set(source, listeners);
|
|
23832
|
+
image.onload = () => {
|
|
23833
|
+
image.onload = null;
|
|
23834
|
+
image.onerror = null;
|
|
23835
|
+
const loadListeners = this._textFillImageLoadListeners.get(source);
|
|
23836
|
+
this._textFillImageLoadListeners.delete(source);
|
|
23837
|
+
loadListeners === null || loadListeners === void 0 || loadListeners.forEach((listener) => listener());
|
|
23838
|
+
};
|
|
23839
|
+
image.onerror = () => {
|
|
23840
|
+
image.onload = null;
|
|
23841
|
+
image.onerror = null;
|
|
23842
|
+
this._textFillImageLoadListeners.delete(source);
|
|
23843
|
+
};
|
|
23769
23844
|
image.src = source;
|
|
23770
23845
|
this._textFillImageCache.set(source, image);
|
|
23771
23846
|
return image.complete ? image : null;
|
|
@@ -26532,6 +26607,11 @@ var DrawingGroupObject = class extends Group {
|
|
|
26532
26607
|
width: 0,
|
|
26533
26608
|
height: 0
|
|
26534
26609
|
});
|
|
26610
|
+
_defineProperty(this, "_outerShadow", void 0);
|
|
26611
|
+
}
|
|
26612
|
+
setOuterShadow(shadow) {
|
|
26613
|
+
this._outerShadow = shadow;
|
|
26614
|
+
this.makeDirty(true);
|
|
26535
26615
|
}
|
|
26536
26616
|
/**
|
|
26537
26617
|
* Set the baseBound (chOff/chExt in OOXML) for this group.
|
|
@@ -26579,6 +26659,12 @@ var DrawingGroupObject = class extends Group {
|
|
|
26579
26659
|
const centerX = realLeft + realWidth / 2;
|
|
26580
26660
|
const centerY = realTop + realHeight / 2;
|
|
26581
26661
|
ctx.transform(m[0], m[1], m[2], m[3], centerX, centerY);
|
|
26662
|
+
if (this._outerShadow) {
|
|
26663
|
+
ctx.shadowColor = this._outerShadow.shadowColor;
|
|
26664
|
+
ctx.shadowBlur = this._outerShadow.shadowBlur;
|
|
26665
|
+
ctx.shadowOffsetX = this._outerShadow.shadowOffsetX;
|
|
26666
|
+
ctx.shadowOffsetY = this._outerShadow.shadowOffsetY;
|
|
26667
|
+
}
|
|
26582
26668
|
const objects = this.getObjectsByOrder();
|
|
26583
26669
|
for (let i = 0; i < objects.length; i++) objects[i].render(ctx, bounds);
|
|
26584
26670
|
ctx.restore();
|
|
@@ -27515,7 +27601,7 @@ Engine = __decorate([__decorateParam(2, ICanvasColorService)], Engine);
|
|
|
27515
27601
|
//#endregion
|
|
27516
27602
|
//#region package.json
|
|
27517
27603
|
var name = "@univerjs/engine-render";
|
|
27518
|
-
var version = "1.0.0-alpha.
|
|
27604
|
+
var version = "1.0.0-alpha.5";
|
|
27519
27605
|
|
|
27520
27606
|
//#endregion
|
|
27521
27607
|
//#region src/config/config.ts
|
|
@@ -28788,6 +28874,7 @@ var Transformer = class extends Disposable {
|
|
|
28788
28874
|
_recoverySizeBoundary(selectedObjects, ancestorLeft, ancestorTop, topSceneWidth, topSceneHeight) {
|
|
28789
28875
|
for (let i = 0; i < selectedObjects.length; i++) {
|
|
28790
28876
|
const moveObject = selectedObjects[i];
|
|
28877
|
+
if (this._getConfig(moveObject).moveBoundaryEnabled === false) continue;
|
|
28791
28878
|
const { left, top, width, height } = moveObject;
|
|
28792
28879
|
const newTransform = {};
|
|
28793
28880
|
if (left + ancestorLeft < this.zeroLeft) {
|
|
@@ -31901,4 +31988,4 @@ var Viewport = class {
|
|
|
31901
31988
|
};
|
|
31902
31989
|
|
|
31903
31990
|
//#endregion
|
|
31904
|
-
export { BASE_OBJECT_ARRAY, BG_Z_INDEX, BORDER_TYPE, BORDER_Z_INDEX, Background, BaseObject, Border, BreakType, CHECK_OBJECT_ARRAY, CIRCLE_OBJECT_ARRAY, COLOR_BLACK_RGB, CURSOR_TYPE, Canvas, CanvasColorService, CanvasRenderMode, CheckboxShape, Circle, ColumnHeaderLayout, ComponentExtension, Control, Custom, CustomObject, DEFAULT_DOCUMENT_FONTSIZE, DEFAULT_FONTFACE_PLANE, DEFAULT_FRAME_LIST_SIZE, DEFAULT_FRAME_SAMPLE_SIZE, DEFAULT_MEASURE_TEXT, DEFAULT_OFFSET_SPACING, DEFAULT_PADDING_DATA, DEFAULT_SKELETON_FOOTER, DEFAULT_SKELETON_HEADER, DOCUMENT_CONTEXT_CLIP_TYPE, DRAWING_OBJECT_LAYER_INDEX, DRAWING_OBJECT_LOWER_LAYER_INDEX, DRAWING_OBJECT_UPPER_LAYER_INDEX, DashedRect, DataStreamTreeNode, DeviceInputEventType, DeviceType, DocBackground, DocSimpleSkeleton, DocumentEditArea, DocumentSkeleton, DocumentSkeletonPageType, DocumentViewModel, Documents, DocumentsSpanAndLineExtensionRegistry, Drawing, DrawingGroupObject, DumbCanvasColorService, EXPAND_SIZE_FOR_RENDER_OVERFLOW, Engine, EventConstants, FIX_ONE_PIXEL_BLUR_OFFSET, FONT_EXTENSION_Z_INDEX, Font, FontCache, GlyphType, Group, HitCanvas, ICanvasColorService, INITIAL_MATRIX, INITIAL_Path2, IRenderManagerService, IRenderingEngine, IWatermarkTypeEnum, Image$1 as Image, IsSafari, LINK_VIEW_PORT_TYPE, Layer, LineType, Liquid, MAIN_VIEW_PORT_KEY, MAXIMUM_COL_WIDTH, MAXIMUM_ROW_HEIGHT, MEASURE_EXTENT, MEASURE_EXTENT_FOR_PARAGRAPH, MIDDLE_CELL_POS_MAGIC_NUMBER, MIN_COL_WIDTH, Marker, NORMAL_TEXT_SELECTION_PLUGIN_STYLE, ORIENTATION_TYPE, ObjectType, PATH_OBJECT_ARRAY, PRINTING_BG_Z_INDEX, PageLayoutType, Path, Path2, PerformanceMonitor, PointerInput, RECT_OBJECT_ARRAY, REGULAR_POLYGON_OBJECT_ARRAY, RENDER_CLASS_TYPE, RENDER_RAW_FORMULA_KEY, RICHTEXT_OBJECT_ARRAY, Rect, RegularPolygon, RenderComponent, RenderManagerService, RenderUnit, RichText, RollingAverage, RowHeaderLayout, SHAPE_OBJECT_ARRAY, SHAPE_TYPE, SHEET_EXTENSION_PREFIX, SHEET_EXTENSION_TYPE, SHEET_VIEWPORT_KEY, SLIDE_NAVIGATION_KEY, Scene, SceneCanvas, SceneViewer, ScrollBar, ScrollTimer, ScrollTimerType, Shape, SheetColumnHeaderExtensionRegistry, SheetComponent, SheetExtension, SheetRowHeaderExtensionRegistry, ShowGridlinesState, SkeletonType, Slide, Spreadsheet, SpreadsheetColumnHeader, SpreadsheetExtensionRegistry, SpreadsheetHeader, SpreadsheetRowHeader, SpreadsheetSkeleton, TEXT_OBJECT_ARRAY, TRANSFORM_CHANGE_OBSERVABLE_TYPE, Text, Transform, UNIVER_WATERMARK_LAYER_INDEX, UNIVER_WATERMARK_STORAGE_KEY, UniverPrintingContext, UniverRenderEnginePlugin, UniverRenderingContext, UniverRenderingContext2D, VERTICAL_ROTATE_ANGLE, Vector2, Viewport, WatermarkLayer, calculateRectRotate, cancelRequestFrame, checkStyle, cjk, clampRange, clearLineByBorderType, compareDocumentSkeletonNestedPagePathOrder, convertTextRotation, convertTransformToOffsetX, convertTransformToOffsetY, createCanvasElement, createImageElement, degToRad, documentSkeletonLineIterator, documentSkeletonTableIterator, drawDiagonalLineByBorderType, drawLineByBorderType, expandRangeIfIntersects, fixLineWidthByScale, generateRandomKey, getCellByIndexWithMergeInfo, getCellPositionByIndex, getCharSpaceApply, getColor, getCurrentScrollXY, getCurrentTypeOfRenderer, getDPI, getDevicePixelRatio, getDocsCustomBlockRenderViewport, getDocsSkeletonPageSize, getDocsTableRenderViewport, getDocumentSkeletonColumnPagePathInfo, getDocumentSkeletonNestedPageOffset, getDrawingGroupState, getFirstGrapheme, getFontStyleString, getGroupState, getLastColumn, getLastLine, getLineOffset, getLineWidth, getLineWith, getNextWheelZoomRatio, getNumberUnitValue, getOffsetRectForDom, getPageFromPath, getParagraphByGlyph, getPointerPrefix, getRenderTransformBaseOnParentBound, getRotateOffsetAndFarthestHypotenuse, getRotateOrientation, getRotatedBoundInGroup, getScale, getSizeForDom, getSystemHighlightColor, getTableIdAndSliceIndex, getTranslateInSpreadContextWithPixelRatio, getValueType, glyphIterator, hasAllLatin, hasArabic, hasBasicLatin, hasLatinExtendedA, hasLatinExtendedB, hasLatinOneSupplement, hasListGlyph, hasSpace, hasThai, hasTibetan, hasUnMergedCellInRow, inViewRanges, injectStyle, isArray, isCjkCenterAlignedPunctuation, isCjkLeftAlignedPunctuation, isCjkRightAlignedPunctuation, isDate, isEmojiGrapheme, isFirstGlyph, isFunction, isIndentByGlyph, isLastGlyph, isNumber, isObject, isPlaceholderOrSpace, isRectIntersect, isRegExp, isSameLine, isString, lineIterator, measureDocumentNoWrapTextRangeWidth, measureDocumentNoWrapTextWidth, measureDocumentUnbreakableTextWidth, mergeInfoOffset, parseDataStreamToTree, pixelToPt, precisionTo, ptToMM, ptToPixel, ptToPx, pxToInch, pxToNum, pxToPt, radToDeg, renderImageWatermark, renderTextWatermark, renderUserInfoWatermark, renderWatermark, requestNewFrame, setDocsCustomBlockRenderViewportProvider, setDocsTableRenderViewportProvider, setLineType, sheetContentViewportKeys, sheetHeaderViewportKeys, startWithEmoji, toPx, transformObjectOutOfGroup, withCurrentTypeOfRenderer };
|
|
31991
|
+
export { BASE_OBJECT_ARRAY, BG_Z_INDEX, BORDER_TYPE, BORDER_Z_INDEX, Background, BaseObject, Border, BreakType, CHECK_OBJECT_ARRAY, CIRCLE_OBJECT_ARRAY, COLOR_BLACK_RGB, CURSOR_TYPE, Canvas, CanvasColorService, CanvasRenderMode, CheckboxShape, Circle, ColumnHeaderLayout, ComponentExtension, Control, Custom, CustomObject, DEFAULT_DOCUMENT_FONTSIZE, DEFAULT_FONTFACE_PLANE, DEFAULT_FRAME_LIST_SIZE, DEFAULT_FRAME_SAMPLE_SIZE, DEFAULT_MEASURE_TEXT, DEFAULT_OFFSET_SPACING, DEFAULT_PADDING_DATA, DEFAULT_SKELETON_FOOTER, DEFAULT_SKELETON_HEADER, DOCUMENT_CONTEXT_CLIP_TYPE, DRAWING_OBJECT_LAYER_INDEX, DRAWING_OBJECT_LOWER_LAYER_INDEX, DRAWING_OBJECT_UPPER_LAYER_INDEX, DashedRect, DataStreamTreeNode, DeviceInputEventType, DeviceType, DocBackground, DocSimpleSkeleton, DocumentEditArea, DocumentSkeleton, DocumentSkeletonPageType, DocumentViewModel, Documents, DocumentsSpanAndLineExtensionRegistry, Drawing, DrawingGroupObject, DumbCanvasColorService, EXPAND_SIZE_FOR_RENDER_OVERFLOW, Engine, EventConstants, FIX_ONE_PIXEL_BLUR_OFFSET, FONT_EXTENSION_Z_INDEX, Font, FontCache, GlyphType, Group, HitCanvas, ICanvasColorService, INITIAL_MATRIX, INITIAL_Path2, IRenderManagerService, IRenderingEngine, IWatermarkTypeEnum, Image$1 as Image, IsSafari, LINK_VIEW_PORT_TYPE, Layer, LineType, Liquid, MAIN_VIEW_PORT_KEY, MAXIMUM_COL_WIDTH, MAXIMUM_ROW_HEIGHT, MEASURE_EXTENT, MEASURE_EXTENT_FOR_PARAGRAPH, MIDDLE_CELL_POS_MAGIC_NUMBER, MIN_COL_WIDTH, Marker, NORMAL_TEXT_SELECTION_PLUGIN_STYLE, ORIENTATION_TYPE, ObjectType, PATH_OBJECT_ARRAY, PRINTING_BG_Z_INDEX, PageLayoutType, Path, Path2, PerformanceMonitor, PointerInput, RECT_OBJECT_ARRAY, REGULAR_POLYGON_OBJECT_ARRAY, RENDER_CLASS_TYPE, RENDER_RAW_FORMULA_KEY, RICHTEXT_OBJECT_ARRAY, Rect, RegularPolygon, RenderComponent, RenderManagerService, RenderUnit, RichText, RollingAverage, RowHeaderLayout, SHAPE_OBJECT_ARRAY, SHAPE_TYPE, SHEET_EXTENSION_PREFIX, SHEET_EXTENSION_TYPE, SHEET_VIEWPORT_KEY, SLIDE_NAVIGATION_KEY, Scene, SceneCanvas, SceneViewer, ScrollBar, ScrollTimer, ScrollTimerType, Shape, SheetColumnHeaderExtensionRegistry, SheetComponent, SheetExtension, SheetRowHeaderExtensionRegistry, ShowGridlinesState, SkeletonType, Slide, Spreadsheet, SpreadsheetColumnHeader, SpreadsheetExtensionRegistry, SpreadsheetHeader, SpreadsheetRowHeader, SpreadsheetSkeleton, TEXT_OBJECT_ARRAY, TRANSFORM_CHANGE_OBSERVABLE_TYPE, Text, Transform, UNIVER_WATERMARK_LAYER_INDEX, UNIVER_WATERMARK_STORAGE_KEY, UniverPrintingContext, UniverRenderEnginePlugin, UniverRenderingContext, UniverRenderingContext2D, VERTICAL_ROTATE_ANGLE, Vector2, Viewport, WatermarkLayer, calculateRectRotate, cancelRequestFrame, checkStyle, cjk, clampRange, clearLineByBorderType, compareDocumentSkeletonNestedPagePathOrder, convertTextRotation, convertTransformToOffsetX, convertTransformToOffsetY, createCanvasElement, createImageElement, degToRad, documentSkeletonLineIterator, documentSkeletonTableIterator, drawDiagonalLineByBorderType, drawLineByBorderType, expandRangeIfIntersects, fixLineWidthByScale, generateRandomKey, getCellByIndexWithMergeInfo, getCellPositionByIndex, getCharSpaceApply, getColor, getCurrentScrollXY, getCurrentTypeOfRenderer, getDPI, getDevicePixelRatio, getDocsCustomBlockRenderViewport, getDocsSkeletonPageSize, getDocsTableRenderViewport, getDocumentSkeletonColumnPagePathInfo, getDocumentSkeletonNestedPageOffset, getDrawingGroupState, getFirstGrapheme, getFontStyleString, getGroupState, getLastColumn, getLastLine, getLineOffset, getLineWidth, getLineWith, getNextWheelZoomRatio, getNumberUnitValue, getOffsetRectForDom, getPageFromPath, getParagraphByGlyph, getPointerPrefix, getRenderTransformBaseOnParentBound, getRotateOffsetAndFarthestHypotenuse, getRotateOrientation, getRotatedBoundInGroup, getScale, getShrinkToFitScale, getSizeForDom, getSystemHighlightColor, getTableIdAndSliceIndex, getTranslateInSpreadContextWithPixelRatio, getValueType, glyphIterator, hasAllLatin, hasArabic, hasBasicLatin, hasLatinExtendedA, hasLatinExtendedB, hasLatinOneSupplement, hasListGlyph, hasSpace, hasThai, hasTibetan, hasUnMergedCellInRow, inViewRanges, injectStyle, isArray, isCjkCenterAlignedPunctuation, isCjkLeftAlignedPunctuation, isCjkRightAlignedPunctuation, isDate, isEmojiGrapheme, isFirstGlyph, isFunction, isIndentByGlyph, isLastGlyph, isNumber, isObject, isPlaceholderOrSpace, isRectIntersect, isRegExp, isSameLine, isString, lineIterator, measureDocumentNoWrapTextRangeWidth, measureDocumentNoWrapTextWidth, measureDocumentUnbreakableTextWidth, mergeInfoOffset, parseDataStreamToTree, pixelToPt, precisionTo, ptToMM, ptToPixel, ptToPx, pxToInch, pxToNum, pxToPt, radToDeg, renderImageWatermark, renderTextWatermark, renderUserInfoWatermark, renderWatermark, requestNewFrame, scaleDocumentDataForShrinkToFit, setDocsCustomBlockRenderViewportProvider, setDocsTableRenderViewportProvider, setLineType, sheetContentViewportKeys, sheetHeaderViewportKeys, startWithEmoji, toPx, transformObjectOutOfGroup, withCurrentTypeOfRenderer };
|
|
@@ -31,12 +31,15 @@ export interface IDocumentsConfig extends IPageMarginLayout {
|
|
|
31
31
|
pageFillColor?: string;
|
|
32
32
|
pageStrokeColor?: string;
|
|
33
33
|
marginStrokeColor?: string;
|
|
34
|
+
/** Called after an image used by a text fill finishes loading. */
|
|
35
|
+
onTextFillImageLoaded?: () => void;
|
|
34
36
|
}
|
|
35
37
|
export declare abstract class DocComponent extends RenderComponent<IDocumentSkeletonGlyph | IDocumentSkeletonLine, DOCS_EXTENSION_TYPE, IBoundRectNoAngle[]> {
|
|
36
38
|
private _skeleton?;
|
|
37
39
|
pageMarginLeft: number;
|
|
38
40
|
pageMarginTop: number;
|
|
39
41
|
pageLayoutType: PageLayoutType;
|
|
42
|
+
readonly onTextFillImageLoaded: () => void;
|
|
40
43
|
constructor(oKey: string, _skeleton?: DocumentSkeleton | undefined, config?: IDocumentsConfig);
|
|
41
44
|
getSkeleton(): DocumentSkeleton | undefined;
|
|
42
45
|
setSkeleton(skeleton: DocumentSkeleton): void;
|
|
@@ -33,6 +33,7 @@ export declare class FontAndBaseLine extends docExtension {
|
|
|
33
33
|
*/
|
|
34
34
|
actualFontMap: Record<string, string>;
|
|
35
35
|
private _textFillImageCache;
|
|
36
|
+
private _textFillImageLoadListeners;
|
|
36
37
|
constructor();
|
|
37
38
|
draw(ctx: UniverRenderingContext, _parentScale: IScale, glyph: IDocumentSkeletonGlyph, _?: IBoundRectNoAngle, _more?: IDrawInfo): void;
|
|
38
39
|
private _fillTextWithTextFill;
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type {
|
|
16
|
+
import type { ICellData, ICellDataForSheetInterceptor, ICellInfo, ICellWithCoord, IColAutoWidthInfo, IColumnRange, IDocumentData, IGetRowColByPosOptions, IPaddingData, IRange, IRowAutoHeightInfo, IRowRange, ISize, IStyleData, ITextRotation, Nullable, Styles, Worksheet } from '@univerjs/core';
|
|
17
17
|
import type { IBoundRectNoAngle, IPoint, IViewportInfo } from '../../basics/vector2';
|
|
18
18
|
import type { Scene } from '../../scene';
|
|
19
19
|
import type { IFontCacheItem, IStylesCache } from './interfaces';
|
|
20
|
-
import { BooleanNumber, HorizontalAlign, IConfigService, IContextService, Injector, LocaleService, ObjectMatrix, SheetSkeleton, VerticalAlign, WrapStrategy } from '@univerjs/core';
|
|
20
|
+
import { BooleanNumber, DocumentDataModel, HorizontalAlign, IConfigService, IContextService, Injector, LocaleService, ObjectMatrix, SheetSkeleton, VerticalAlign, WrapStrategy } from '@univerjs/core';
|
|
21
21
|
import { DocumentSkeleton } from '../docs/layout/doc-skeleton';
|
|
22
22
|
import { SHEET_VIEWPORT_KEY } from './interfaces';
|
|
23
23
|
interface IRowColumnRange extends IRowRange, IColumnRange {
|
|
@@ -39,6 +39,8 @@ export declare const DEFAULT_PADDING_DATA: {
|
|
|
39
39
|
r: number;
|
|
40
40
|
};
|
|
41
41
|
export declare const RENDER_RAW_FORMULA_KEY = "RENDER_RAW_FORMULA";
|
|
42
|
+
export declare function getShrinkToFitScale(contentWidth: number, availableWidth: number, fontSize: number): number;
|
|
43
|
+
export declare function scaleDocumentDataForShrinkToFit(documentData: IDocumentData, scale: number, fallbackFontSize: number): IDocumentData;
|
|
42
44
|
export interface ICacheItem {
|
|
43
45
|
bg: boolean;
|
|
44
46
|
border: boolean;
|
|
@@ -253,6 +255,7 @@ export declare class SpreadsheetSkeleton extends SheetSkeleton {
|
|
|
253
255
|
resetRangeCache(ranges: IRange[]): void;
|
|
254
256
|
_setBorderStylesCache(row: number, col: number, style: Nullable<IStyleData>, options: ISetStylesCacheForOneCellOptions | undefined): void;
|
|
255
257
|
_setBgStylesCache(row: number, col: number, style: Nullable<IStyleData>, options: ISetStylesCacheForOneCellOptions | undefined): void;
|
|
258
|
+
private _applyShrinkToFit;
|
|
256
259
|
_setFontStylesCache(row: number, col: number, cellData: Nullable<ICellDataForSheetInterceptor>, style: IStyleData, hasMergeData?: boolean): void;
|
|
257
260
|
/**
|
|
258
261
|
* Set border background and font to this._stylesCache cell by cell.
|
|
@@ -19,6 +19,12 @@ import type { IViewportInfo, Vector2 } from './basics';
|
|
|
19
19
|
import type { UniverRenderingContext } from './context';
|
|
20
20
|
import { Transform } from './basics';
|
|
21
21
|
import { Group } from './group';
|
|
22
|
+
export interface IDrawingGroupShadow {
|
|
23
|
+
shadowColor: string;
|
|
24
|
+
shadowBlur: number;
|
|
25
|
+
shadowOffsetX: number;
|
|
26
|
+
shadowOffsetY: number;
|
|
27
|
+
}
|
|
22
28
|
export declare class DrawingGroupObject extends Group {
|
|
23
29
|
protected _selfSizeMode: boolean;
|
|
24
30
|
/**
|
|
@@ -28,6 +34,8 @@ export declare class DrawingGroupObject extends Group {
|
|
|
28
34
|
* When rendering, positions are mapped from baseBound space to the group's current transform.
|
|
29
35
|
*/
|
|
30
36
|
private _baseBound;
|
|
37
|
+
private _outerShadow?;
|
|
38
|
+
setOuterShadow(shadow?: IDrawingGroupShadow): void;
|
|
31
39
|
/**
|
|
32
40
|
* Set the baseBound (chOff/chExt in OOXML) for this group.
|
|
33
41
|
* This defines the coordinate space of children within the group.
|
package/lib/types/index.d.ts
CHANGED
|
@@ -44,6 +44,7 @@ export type { IUniverEngineRenderConfig } from './config/config';
|
|
|
44
44
|
export * from './context';
|
|
45
45
|
export * from './custom';
|
|
46
46
|
export { DrawingGroupObject } from './drawing-group';
|
|
47
|
+
export type { IDrawingGroupShadow } from './drawing-group';
|
|
47
48
|
export * from './engine';
|
|
48
49
|
export * from './group';
|
|
49
50
|
export * from './layer';
|