ol 10.2.2-dev.1729261410863 → 10.2.2-dev.1729350775422
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/dist/ol.js +1 -1
- package/dist/ol.js.map +1 -1
- package/geom/flat/textpath.d.ts +2 -1
- package/geom/flat/textpath.d.ts.map +1 -1
- package/geom/flat/textpath.js +12 -8
- package/package.json +1 -1
- package/render/canvas/Executor.d.ts.map +1 -1
- package/render/canvas/Executor.js +2 -0
- package/render/canvas/TextBuilder.d.ts +5 -0
- package/render/canvas/TextBuilder.d.ts.map +1 -1
- package/render/canvas/TextBuilder.js +11 -0
- package/style/Text.d.ts +23 -0
- package/style/Text.d.ts.map +1 -1
- package/style/Text.js +27 -0
- package/util.js +1 -1
package/geom/flat/textpath.d.ts
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* @param {string} font The font.
|
|
12
12
|
* @param {Object<string, number>} cache A cache of measured widths.
|
|
13
13
|
* @param {number} rotation Rotation to apply to the flatCoordinates to determine whether text needs to be reversed.
|
|
14
|
+
* @param {boolean} keepUpright Whether the text needs to be kept upright
|
|
14
15
|
* @return {Array<Array<*>>|null} The result array (or null if `maxAngle` was
|
|
15
16
|
* exceeded). Entries of the array are x, y, anchorX, angle, chunk.
|
|
16
17
|
*/
|
|
@@ -18,5 +19,5 @@ export function drawTextOnPath(flatCoordinates: Array<number>, offset: number, e
|
|
|
18
19
|
[x: string]: number;
|
|
19
20
|
}) => number, font: string, cache: {
|
|
20
21
|
[x: string]: number;
|
|
21
|
-
}, rotation: number): Array<Array<any>> | null;
|
|
22
|
+
}, rotation: number, keepUpright?: boolean): Array<Array<any>> | null;
|
|
22
23
|
//# sourceMappingURL=textpath.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textpath.d.ts","sourceRoot":"","sources":["textpath.js"],"names":[],"mappings":"AAMA
|
|
1
|
+
{"version":3,"file":"textpath.d.ts","sourceRoot":"","sources":["textpath.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;GAgBG;AACH,gDAhBW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,OACN,MAAM,UACN,MAAM,QACN,MAAM,UACN,MAAM,YACN,MAAM,SACN,MAAM,4BACN,CAAS,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,EAAE,IAAsB,EAAtB;QAAO,MAAM,GAAE,MAAM;CAAC,KAAE,MAAM,QACvD,MAAM,SACN;QAAO,MAAM,GAAE,MAAM;CAAC,YACtB,MAAM,gBACN,OAAO,GACN,KAAK,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC,GAAC,IAAI,CAyI/B"}
|
package/geom/flat/textpath.js
CHANGED
|
@@ -17,6 +17,7 @@ import {rotate} from './transform.js';
|
|
|
17
17
|
* @param {string} font The font.
|
|
18
18
|
* @param {Object<string, number>} cache A cache of measured widths.
|
|
19
19
|
* @param {number} rotation Rotation to apply to the flatCoordinates to determine whether text needs to be reversed.
|
|
20
|
+
* @param {boolean} keepUpright Whether the text needs to be kept upright
|
|
20
21
|
* @return {Array<Array<*>>|null} The result array (or null if `maxAngle` was
|
|
21
22
|
* exceeded). Entries of the array are x, y, anchorX, angle, chunk.
|
|
22
23
|
*/
|
|
@@ -33,6 +34,7 @@ export function drawTextOnPath(
|
|
|
33
34
|
font,
|
|
34
35
|
cache,
|
|
35
36
|
rotation,
|
|
37
|
+
keepUpright = true,
|
|
36
38
|
) {
|
|
37
39
|
let x2 = flatCoordinates[offset];
|
|
38
40
|
let y2 = flatCoordinates[offset + 1];
|
|
@@ -69,14 +71,16 @@ export function drawTextOnPath(
|
|
|
69
71
|
const endX = lerp(x1, x2, interpolate);
|
|
70
72
|
const endY = lerp(y1, y2, interpolate);
|
|
71
73
|
|
|
72
|
-
// Keep text upright
|
|
73
|
-
let reverse;
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
// Keep text upright if the option is selected
|
|
75
|
+
let reverse = false;
|
|
76
|
+
if (keepUpright) {
|
|
77
|
+
if (rotation) {
|
|
78
|
+
const flat = [beginX, beginY, endX, endY];
|
|
79
|
+
rotate(flat, 0, 4, 2, rotation, flat, flat);
|
|
80
|
+
reverse = flat[0] > flat[2];
|
|
81
|
+
} else {
|
|
82
|
+
reverse = beginX > endX;
|
|
83
|
+
}
|
|
80
84
|
}
|
|
81
85
|
|
|
82
86
|
const PI = Math.PI;
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["Executor.js"],"names":[],"mappings":";6BA2Ba,OAAO,wBAAwB,EAAE,KAAK,CAAC,OAAO,kBAAkB,EAAE,WAAW,CAAC;;;;;gBAK7E,MAAM;;;;gBACN,MAAM;;;;gBACN,MAAM;;;;gBACN,MAAM;;;;aACN,MAAM;;;;aACN,MAAM;;;;WACN,KAAK,CAAC,MAAM,CAAC;;;;kBACb,cAAc;;;;qBACd,OAAO,oBAAoB,EAAE,SAAS;;qCAIvC;IAAC,CAAC,EAAE,wBAAwB,CAAC;IAAC,CAAC,EAAE,OAAO,eAAe,EAAE,IAAI,CAAC;IAAC,CAAC,EAAE,OAAO,cAAc,EAAE,KAAK,GAAC,gBAAgB,GAAC,iBAAiB,GAAC,gBAAgB,CAAC;IAAC,CAAC,EAAE,sBAAsB,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,KAAK,CAAC,GAAC,CAAC,CAAC;IAAC,CAAC,EAAE,KAAK,CAAC,GAAC,CAAC,CAAA;CAAC;4BAInN,CAAC,IACD,CAAS,IAAsC,EAAtC,OAAO,kBAAkB,EAAE,WAAW,EAAE,IAA8C,EAA9C,OAAO,8BAA8B,EAAE,OAAO,EAAE,IAA4C,EAA5C,OAAO,sBAAsB,EAAE,aAAa,KAAG,CAAC;AAiE9J;IACE;;;;;;OAMG;IACH,wBANW,MAAM,cACN,MAAM,YACN,OAAO,gBACP,OAAO,cAAc,EAAE,wBAAwB,2CA6GzD;IAnGC;;;OAGG;IACH,oBAFU,OAAO,CAEO;IAExB;;;OAGG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;;OAIG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,2BAAuB;IAEvB;;;OAGG;IACH,wBAFU,KAAK,CAAC,GAAC,CAAC,CAE2B;IAE7C;;;OAGG;IACH,uBAFU,KAAK,CAAC,MAAM,CAAC,CAEoB;IAE3C;;;OAGG;IACH,yBAA0B;IAE1B;;;OAGG;IACH,2BAA2C;IAE3C;;;OAGG;IACH,oCAFU,KAAK,CAAC,GAAC,CAAC,CAEmD;IAErE;;;OAGG;IACH,0BAA6B;IAE7B;;;OAGG;IACH,sBAAsB;IAEtB;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEZ;IAE/C;;OAEG;IACH,cAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,WAAW;KAAC,CAEV;IAEnD;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEZ;IAE/C;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,uBAAoE;IAGtE;;OAEG;IACH,oBAFY,aAAa,CAIxB;IAED;;;;;;OAMG;IACH,kBANW,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC,WACpB,MAAM,WACN,MAAM,aACN,MAAM,GACL,OAAO,cAAc,EAAE,KAAK,CA6GvC;IAED;;;;;;;;OAQG;IACH,+BARW,wBAAwB,MACxB,OAAO,qBAAqB,EAAE,UAAU,MACxC,OAAO,qBAAqB,EAAE,UAAU,MACxC,OAAO,qBAAqB,EAAE,UAAU,MACxC,OAAO,qBAAqB,EAAE,UAAU,mBACxC,KAAK,CAAC,GAAC,CAAC,qBACR,KAAK,CAAC,GAAC,CAAC,QA4BlB;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,yCA+FC;IAED;;;;;;;;;;OAUG;IACH,4BAgDC;IAED;;;OAGG;IACH,cAgBC;IAED;;;;OAIG;IACH,wBASC;IAED;;;;;;;OAOG;IACH,qCA2BC;IAED;;;;;;;;;;;;;OAaG;IACH,
|
|
1
|
+
{"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["Executor.js"],"names":[],"mappings":"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"}
|
|
@@ -1001,6 +1001,7 @@ class Executor {
|
|
|
1001
1001
|
];
|
|
1002
1002
|
declutterMode = instruction[14] || 'declutter';
|
|
1003
1003
|
|
|
1004
|
+
const textKeepUpright = /** @type {boolean} */ (instruction[15]);
|
|
1004
1005
|
const textState = this.textStates[textKey];
|
|
1005
1006
|
const font = textState.font;
|
|
1006
1007
|
const textScale = [
|
|
@@ -1037,6 +1038,7 @@ class Executor {
|
|
|
1037
1038
|
font,
|
|
1038
1039
|
cachedWidths,
|
|
1039
1040
|
viewRotationFromTransform ? 0 : this.viewRotation_,
|
|
1041
|
+
textKeepUpright,
|
|
1040
1042
|
);
|
|
1041
1043
|
drawChars: if (parts) {
|
|
1042
1044
|
/** @type {Array<ReplayImageOrLabelArgs>} */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextBuilder.d.ts","sourceRoot":"","sources":["TextBuilder.js"],"names":[],"mappings":"AAyBA;;;GAGG;AACH,yBAFU;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAC,CAYzH;;AAEF;IAUI;;;OAGG;IACH,gBAAmB;IAEnB;;;OAGG;IACH,cAAe;IAEf;;;OAGG;IACH,qBAAqB;IAErB;;;OAGG;IACH,qBAAqB;IAErB;;;OAGG;IACH,4BAAoC;IAEpC;;;OAGG;IACH,sBAAsB;IAEtB;;;OAGG;IACH,uBAA0B;IAE1B;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEvC;IAGpB;;;OAGG;IACH,yBAA4B;IAE5B;;OAEG;IACH,cAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,WAAW;KAAC,CAEvC;IAEtB;;;OAGG;IACH,mBAAsE;IAEtE;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEvC;IAEpB;;;OAGG;IACH,iBAAkB;IAElB;;;OAGG;IACH,iBAAkB;IAElB;;;OAGG;IACH,mBAAoB;IAEpB;;;OAGG;IACH,uBAA+B;IAE/B;;;;OAIG;IACH,gCAAwC;IAqT1C;;OAEG;IACH,wBAqCC;IAED;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"TextBuilder.d.ts","sourceRoot":"","sources":["TextBuilder.js"],"names":[],"mappings":"AAyBA;;;GAGG;AACH,yBAFU;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAC,CAYzH;;AAEF;IAUI;;;OAGG;IACH,gBAAmB;IAEnB;;;OAGG;IACH,cAAe;IAEf;;;OAGG;IACH,qBAAqB;IAErB;;;OAGG;IACH,qBAAqB;IAErB;;;OAGG;IACH,4BAAoC;IAEpC;;;OAGG;IACH,yBAAiC;IAEjC;;;OAGG;IACH,sBAAsB;IAEtB;;;OAGG;IACH,uBAA0B;IAE1B;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEvC;IAGpB;;;OAGG;IACH,yBAA4B;IAE5B;;OAEG;IACH,cAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,WAAW;KAAC,CAEvC;IAEtB;;;OAGG;IACH,mBAAsE;IAEtE;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEvC;IAEpB;;;OAGG;IACH,iBAAkB;IAElB;;;OAGG;IACH,iBAAkB;IAElB;;;OAGG;IACH,mBAAoB;IAEpB;;;OAGG;IACH,uBAA+B;IAE/B;;;;OAIG;IACH,gCAAwC;IAqT1C;;OAEG;IACH,wBAqCC;IAED;;;;OAIG;IACH,mBAsDC;IAED;;;;OAIG;IACH,iCAJW,OAAO,qBAAqB,EAAE,OAAO,0BAkH/C;CACF;0BAzqByB,cAAc"}
|
|
@@ -79,6 +79,12 @@ class CanvasTextBuilder extends CanvasBuilder {
|
|
|
79
79
|
*/
|
|
80
80
|
this.textRotateWithView_ = undefined;
|
|
81
81
|
|
|
82
|
+
/**
|
|
83
|
+
* @private
|
|
84
|
+
* @type {boolean|undefined}
|
|
85
|
+
*/
|
|
86
|
+
this.textKeepUpright_ = undefined;
|
|
87
|
+
|
|
82
88
|
/**
|
|
83
89
|
* @private
|
|
84
90
|
* @type {number}
|
|
@@ -538,6 +544,7 @@ class CanvasTextBuilder extends CanvasBuilder {
|
|
|
538
544
|
textKey,
|
|
539
545
|
1,
|
|
540
546
|
this.declutterMode_,
|
|
547
|
+
this.textKeepUpright_,
|
|
541
548
|
]);
|
|
542
549
|
this.hitDetectionInstructions.push([
|
|
543
550
|
CanvasInstruction.DRAW_CHARS,
|
|
@@ -555,6 +562,7 @@ class CanvasTextBuilder extends CanvasBuilder {
|
|
|
555
562
|
textKey,
|
|
556
563
|
1 / pixelRatio,
|
|
557
564
|
this.declutterMode_,
|
|
565
|
+
this.textKeepUpright_,
|
|
558
566
|
]);
|
|
559
567
|
}
|
|
560
568
|
|
|
@@ -632,12 +640,15 @@ class CanvasTextBuilder extends CanvasBuilder {
|
|
|
632
640
|
const textOffsetX = textStyle.getOffsetX();
|
|
633
641
|
const textOffsetY = textStyle.getOffsetY();
|
|
634
642
|
const textRotateWithView = textStyle.getRotateWithView();
|
|
643
|
+
const textKeepUpright = textStyle.getKeepUpright();
|
|
635
644
|
const textRotation = textStyle.getRotation();
|
|
636
645
|
this.text_ = textStyle.getText() || '';
|
|
637
646
|
this.textOffsetX_ = textOffsetX === undefined ? 0 : textOffsetX;
|
|
638
647
|
this.textOffsetY_ = textOffsetY === undefined ? 0 : textOffsetY;
|
|
639
648
|
this.textRotateWithView_ =
|
|
640
649
|
textRotateWithView === undefined ? false : textRotateWithView;
|
|
650
|
+
this.textKeepUpright_ =
|
|
651
|
+
textKeepUpright === undefined ? true : textKeepUpright;
|
|
641
652
|
this.textRotation_ = textRotation === undefined ? 0 : textRotation;
|
|
642
653
|
|
|
643
654
|
this.strokeKey_ = strokeState
|
package/style/Text.d.ts
CHANGED
|
@@ -48,6 +48,10 @@ export type Options = {
|
|
|
48
48
|
* Whether to rotate the text with the view.
|
|
49
49
|
*/
|
|
50
50
|
rotateWithView?: boolean | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the text can be rotated 180° to prevent being rendered upside down.
|
|
53
|
+
*/
|
|
54
|
+
keepUpright?: boolean | undefined;
|
|
51
55
|
/**
|
|
52
56
|
* Rotation in radians (positive rotation clockwise).
|
|
53
57
|
*/
|
|
@@ -121,6 +125,7 @@ export type Options = {
|
|
|
121
125
|
* the distance between two text anchors in pixels. Only available when `placement` is set to `'line'`. Overrides 'textAlign'.
|
|
122
126
|
* @property {number|import("../size.js").Size} [scale] Scale.
|
|
123
127
|
* @property {boolean} [rotateWithView=false] Whether to rotate the text with the view.
|
|
128
|
+
* @property {boolean} [keepUpright=true] Whether the text can be rotated 180° to prevent being rendered upside down.
|
|
124
129
|
* @property {number} [rotation=0] Rotation in radians (positive rotation clockwise).
|
|
125
130
|
* @property {string|Array<string>} [text] Text content or rich text content. For plain text provide a string, which can
|
|
126
131
|
* contain line breaks (`\n`). For rich text provide an array of text/font tuples. A tuple consists of the text to
|
|
@@ -171,6 +176,11 @@ declare class Text {
|
|
|
171
176
|
* @type {boolean|undefined}
|
|
172
177
|
*/
|
|
173
178
|
private rotateWithView_;
|
|
179
|
+
/**
|
|
180
|
+
* @private
|
|
181
|
+
* @type {boolean|undefined}
|
|
182
|
+
*/
|
|
183
|
+
private keepUpright_;
|
|
174
184
|
/**
|
|
175
185
|
* @private
|
|
176
186
|
* @type {number|import("../size.js").Size|undefined}
|
|
@@ -321,6 +331,12 @@ declare class Text {
|
|
|
321
331
|
* @api
|
|
322
332
|
*/
|
|
323
333
|
getRotateWithView(): boolean | undefined;
|
|
334
|
+
/**
|
|
335
|
+
* Determine whether the text can be rendered upside down.
|
|
336
|
+
* @return {boolean|undefined} Keep text upright.
|
|
337
|
+
* @api
|
|
338
|
+
*/
|
|
339
|
+
getKeepUpright(): boolean | undefined;
|
|
324
340
|
/**
|
|
325
341
|
* Get the text rotation.
|
|
326
342
|
* @return {number|undefined} Rotation.
|
|
@@ -447,6 +463,13 @@ declare class Text {
|
|
|
447
463
|
* @api
|
|
448
464
|
*/
|
|
449
465
|
setRotateWithView(rotateWithView: boolean): void;
|
|
466
|
+
/**
|
|
467
|
+
* Set whether the text can be rendered upside down.
|
|
468
|
+
*
|
|
469
|
+
* @param {boolean} keepUpright Keep text upright.
|
|
470
|
+
* @api
|
|
471
|
+
*/
|
|
472
|
+
setKeepUpright(keepUpright: boolean): void;
|
|
450
473
|
/**
|
|
451
474
|
* Set the fill.
|
|
452
475
|
*
|
package/style/Text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["Text.js"],"names":[],"mappings":";;;;;;;4BAOa,OAAO,GAAG,MAAM;0BAQhB,MAAM,GAAG,QAAQ,GAAG,OAAO
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["Text.js"],"names":[],"mappings":"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"}
|
package/style/Text.js
CHANGED
|
@@ -39,6 +39,7 @@ const DEFAULT_FILL_COLOR = '#333';
|
|
|
39
39
|
* the distance between two text anchors in pixels. Only available when `placement` is set to `'line'`. Overrides 'textAlign'.
|
|
40
40
|
* @property {number|import("../size.js").Size} [scale] Scale.
|
|
41
41
|
* @property {boolean} [rotateWithView=false] Whether to rotate the text with the view.
|
|
42
|
+
* @property {boolean} [keepUpright=true] Whether the text can be rotated 180° to prevent being rendered upside down.
|
|
42
43
|
* @property {number} [rotation=0] Rotation in radians (positive rotation clockwise).
|
|
43
44
|
* @property {string|Array<string>} [text] Text content or rich text content. For plain text provide a string, which can
|
|
44
45
|
* contain line breaks (`\n`). For rich text provide an array of text/font tuples. A tuple consists of the text to
|
|
@@ -95,6 +96,12 @@ class Text {
|
|
|
95
96
|
*/
|
|
96
97
|
this.rotateWithView_ = options.rotateWithView;
|
|
97
98
|
|
|
99
|
+
/**
|
|
100
|
+
* @private
|
|
101
|
+
* @type {boolean|undefined}
|
|
102
|
+
*/
|
|
103
|
+
this.keepUpright_ = options.keepUpright;
|
|
104
|
+
|
|
98
105
|
/**
|
|
99
106
|
* @private
|
|
100
107
|
* @type {number|import("../size.js").Size|undefined}
|
|
@@ -228,6 +235,7 @@ class Text {
|
|
|
228
235
|
overflow: this.getOverflow(),
|
|
229
236
|
rotation: this.getRotation(),
|
|
230
237
|
rotateWithView: this.getRotateWithView(),
|
|
238
|
+
keepUpright: this.getKeepUpright(),
|
|
231
239
|
scale: Array.isArray(scale) ? scale.slice() : scale,
|
|
232
240
|
text: this.getText(),
|
|
233
241
|
textAlign: this.getTextAlign(),
|
|
@@ -329,6 +337,15 @@ class Text {
|
|
|
329
337
|
return this.rotateWithView_;
|
|
330
338
|
}
|
|
331
339
|
|
|
340
|
+
/**
|
|
341
|
+
* Determine whether the text can be rendered upside down.
|
|
342
|
+
* @return {boolean|undefined} Keep text upright.
|
|
343
|
+
* @api
|
|
344
|
+
*/
|
|
345
|
+
getKeepUpright() {
|
|
346
|
+
return this.keepUpright_;
|
|
347
|
+
}
|
|
348
|
+
|
|
332
349
|
/**
|
|
333
350
|
* Get the text rotation.
|
|
334
351
|
* @return {number|undefined} Rotation.
|
|
@@ -515,6 +532,16 @@ class Text {
|
|
|
515
532
|
this.rotateWithView_ = rotateWithView;
|
|
516
533
|
}
|
|
517
534
|
|
|
535
|
+
/**
|
|
536
|
+
* Set whether the text can be rendered upside down.
|
|
537
|
+
*
|
|
538
|
+
* @param {boolean} keepUpright Keep text upright.
|
|
539
|
+
* @api
|
|
540
|
+
*/
|
|
541
|
+
setKeepUpright(keepUpright) {
|
|
542
|
+
this.keepUpright_ = keepUpright;
|
|
543
|
+
}
|
|
544
|
+
|
|
518
545
|
/**
|
|
519
546
|
* Set the fill.
|
|
520
547
|
*
|
package/util.js
CHANGED