ol 10.2.2-dev.1729036924104 → 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.
@@ -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;;;;;;;;;;;;;;;GAeG;AACH,gDAfW,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,GACL,KAAK,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC,GAAC,IAAI,CAsI/B"}
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"}
@@ -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 (rotation) {
75
- const flat = [beginX, beginY, endX, endY];
76
- rotate(flat, 0, 4, 2, rotation, flat, flat);
77
- reverse = flat[0] > flat[2];
78
- } else {
79
- reverse = beginX > endX;
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/layer/Flow.d.ts CHANGED
@@ -143,7 +143,8 @@ export type Options = {
143
143
  * Experimental layer that renders particles moving through a vector field.
144
144
  *
145
145
  * @extends BaseTileLayer<SourceType, FlowLayerRenderer>
146
- * @fires import("../render/Event.js").RenderEvent
146
+ * @fires import("../render/Event.js").RenderEvent#prerender
147
+ * @fires import("../render/Event.js").RenderEvent#postrender
147
148
  */
148
149
  declare class FlowLayer extends BaseTileLayer<import("../source/DataTile.js").default<import("../DataTile.js").default>, FlowLayerRenderer> {
149
150
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["Flow.js"],"names":[],"mappings":";;;;;sBAuRc,MAAM;;;;wBACN,MAAM;;;;yBACN,MAAM;;;;2BACN,MAAM;;;;kCACN,MAAM;;;;oCACN,MAAM;;;;+BACN,MAAM;;;;iCACN,MAAM;;yBA9QP,OAAO,uBAAuB,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;cAetC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8WpB;;;;;;GAMG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,EA2CjB;IAlCC;;;OAGG;IACH,eAAiC;IAKjC;;;OAGG;IACH,kBAAiC;IAEjC;;;OAGG;IACH,qBAAuC;IAEvC;;;OAGG;IACH,mBAAmC;IAEnC;;;OAGG;IACH,wBAAkD;IAKpD;;OAEG;IACH,4BAIC;IAED;;;OAGG;IACH,gCAFW;YAAO,MAAM,GAAE,MAAM;KAAC,QAKhC;IAED;;;;;OAKG;IACH,mBAJW,OAAO,cAAc,EAAE,MAAM,cAC7B,MAAM,GACL,KAAK,CAAC,UAAU,CAAC,CAM5B;CAgBF;8BA3ewC,gCAAgC;0BAD/C,eAAe"}
1
+ {"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["Flow.js"],"names":[],"mappings":";;;;;sBAuRc,MAAM;;;;wBACN,MAAM;;;;yBACN,MAAM;;;;2BACN,MAAM;;;;kCACN,MAAM;;;;oCACN,MAAM;;;;+BACN,MAAM;;;;iCACN,MAAM;;yBA9QP,OAAO,uBAAuB,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;cAetC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8WpB;;;;;;;GAOG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,EA2CjB;IAlCC;;;OAGG;IACH,eAAiC;IAKjC;;;OAGG;IACH,kBAAiC;IAEjC;;;OAGG;IACH,qBAAuC;IAEvC;;;OAGG;IACH,mBAAmC;IAEnC;;;OAGG;IACH,wBAAkD;IAKpD;;OAEG;IACH,4BAIC;IAED;;;OAGG;IACH,gCAFW;YAAO,MAAM,GAAE,MAAM;KAAC,QAKhC;IAED;;;;;OAKG;IACH,mBAJW,OAAO,cAAc,EAAE,MAAM,cAC7B,MAAM,GACL,KAAK,CAAC,UAAU,CAAC,CAM5B;CAgBF;8BA5ewC,gCAAgC;0BAD/C,eAAe"}
package/layer/Flow.js CHANGED
@@ -400,7 +400,8 @@ const sources = [];
400
400
  * Experimental layer that renders particles moving through a vector field.
401
401
  *
402
402
  * @extends BaseTileLayer<SourceType, FlowLayerRenderer>
403
- * @fires import("../render/Event.js").RenderEvent
403
+ * @fires import("../render/Event.js").RenderEvent#prerender
404
+ * @fires import("../render/Event.js").RenderEvent#postrender
404
405
  */
405
406
  class FlowLayer extends BaseTileLayer {
406
407
  /**
@@ -273,7 +273,8 @@ export type Options = {
273
273
  * Layer that renders a grid for a coordinate system (currently only EPSG:4326 is supported).
274
274
  * Note that the view projection must define both extent and worldExtent.
275
275
  *
276
- * @fires import("../render/Event.js").RenderEvent
276
+ * @fires import("../render/Event.js").RenderEvent#prerender
277
+ * @fires import("../render/Event.js").RenderEvent#postrender
277
278
  * @extends {VectorLayer<VectorSource<Feature>>}
278
279
  * @api
279
280
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Graticule.d.ts","sourceRoot":"","sources":["Graticule.js"],"names":[],"mappings":";;;;;UA2Ec,KAAK;;;;UACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAuCG,MAAM,KAAE,MAAM;;;;;;;gCAId,MAAM,KAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA9CrC;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AAEH;;;;;;;;GAQG;AACH;IACE;;OAEG;IACH,2CAuUC;IA9SC;;;OAGG;IACH,oBAAuB;IAEvB;;;OAGG;IACH,gBAAuB;IAEvB;;;OAGG;IACH,gBAAuB;IAEvB;;;OAGG;IACH,gBAAwB;IAExB;;;OAGG;IACH,gBAAwB;IAExB;;;OAGG;IACH,cAAqB;IAErB;;;OAGG;IACH,cAAqB;IAErB;;;OAGG;IACH,cAAsB;IAEtB;;;OAGG;IACH,cAAsB;IAEtB;;;OAGG;IACH,oBAC6D;IAE7D;;;OAGG;IACH,kBAAwE;IAExE;;;OAGG;IACH,mBAAoB;IAEpB;;;OAGG;IACH,mBAAoB;IAEpB;;;OAGG;IACH,qBAG0B;IAE1B;;;OAGG;IACH,6BAAqC;IAErC;;;OAGG;IACH,2BAAmC;IAEnC;;;OAGG;IACH,gCAAmC;IAEnC;;;OAGG;IACH,oBAAuB;IAEvB;;;OAGG;IACH,qBAAwB;IAExB;;;OAGG;IACH,iBAAoB;IAEpB;;;OAGG;IACH,kBAAqB;IAErB;;;OAGG;IACH,yBAA4B;IAE5B;;;OAGG;IACH,yBAA4B;IAG1B;;;OAGG;IACH,2BAG+B;IAE/B;;;OAGG;IACH,2BAG+B;IAE/B;;;;;OAKG;IACH,0BACsE;IAEtE;;;;;OAKG;IACH,0BACsE;IAEtE;;;OAGG;IACH,2BAeE;IAEF;;;;OAIG;IACH,uBAIC;IAED;;;OAGG;IACH,2BAeE;IAEF;;;;OAIG;IACH,uBAIC;IAQH;;;OAGG;IACH,mBACiE;IAcjE;;;;OAIG;IACH,qBAAsB;IAEtB;;;OAGG;IACH,mBAEE;IAEF;;;OAGG;IACH,sBAAyB;IAEzB;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,4BAA+B;IAKjC;;;;;;OAMG;IACH,yBAJW,OAAO,cAAc,EAAE,MAAM,cAC7B,MAAM,GACL,KAAK,CAAC,OAAO,cAAc,EAAE,MAAM,CAAC,CAoB/C;IAED;;;;;OAKG;IACH,uBAJW,OAAO,WAAW,EAAE,MAAM,cAC1B,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,QA4EjD;IAED;;;;;;;;;OASG;IACH,qBAuBC;IAED;;;;;;;;;OASG;IACH,qBAuBC;IAED;;;OAGG;IACH,oBAiFC;IAED;;;;;;OAMG;IACH,yBAsNC;IAED;;;;OAIG;IACH,qBA0BC;IAED;;;;;;;;OAQG;IACH,qBAiBC;IAED;;;;;;OAMG;IACH,0BAwBC;IAED;;;;OAIG;IACH,gBAHY,KAAK,CAAC,UAAU,CAAC,CAK5B;IAED;;;;;;;;OAQG;IACH,qBAgBC;IAED;;;;;;OAMG;IACH,0BAwBC;IAED;;;;OAIG;IACH,gBAHY,KAAK,CAAC,UAAU,CAAC,CAK5B;IAED;;;OAGG;IACH,8BA0EC;CACF;kBAhuCiB,kBAAkB;mBACjB,oBAAoB;iBAEtB,kBAAkB;oBANf,eAAe;yBAQV,qBAAqB;wBADtB,aAAa;uBALd,uBAAuB"}
1
+ {"version":3,"file":"Graticule.d.ts","sourceRoot":"","sources":["Graticule.js"],"names":[],"mappings":";;;;;UA2Ec,KAAK;;;;UACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAuCG,MAAM,KAAE,MAAM;;;;;;;gCAId,MAAM,KAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA9CrC;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AAEH;;;;;;;;;GASG;AACH;IACE;;OAEG;IACH,2CAuUC;IA9SC;;;OAGG;IACH,oBAAuB;IAEvB;;;OAGG;IACH,gBAAuB;IAEvB;;;OAGG;IACH,gBAAuB;IAEvB;;;OAGG;IACH,gBAAwB;IAExB;;;OAGG;IACH,gBAAwB;IAExB;;;OAGG;IACH,cAAqB;IAErB;;;OAGG;IACH,cAAqB;IAErB;;;OAGG;IACH,cAAsB;IAEtB;;;OAGG;IACH,cAAsB;IAEtB;;;OAGG;IACH,oBAC6D;IAE7D;;;OAGG;IACH,kBAAwE;IAExE;;;OAGG;IACH,mBAAoB;IAEpB;;;OAGG;IACH,mBAAoB;IAEpB;;;OAGG;IACH,qBAG0B;IAE1B;;;OAGG;IACH,6BAAqC;IAErC;;;OAGG;IACH,2BAAmC;IAEnC;;;OAGG;IACH,gCAAmC;IAEnC;;;OAGG;IACH,oBAAuB;IAEvB;;;OAGG;IACH,qBAAwB;IAExB;;;OAGG;IACH,iBAAoB;IAEpB;;;OAGG;IACH,kBAAqB;IAErB;;;OAGG;IACH,yBAA4B;IAE5B;;;OAGG;IACH,yBAA4B;IAG1B;;;OAGG;IACH,2BAG+B;IAE/B;;;OAGG;IACH,2BAG+B;IAE/B;;;;;OAKG;IACH,0BACsE;IAEtE;;;;;OAKG;IACH,0BACsE;IAEtE;;;OAGG;IACH,2BAeE;IAEF;;;;OAIG;IACH,uBAIC;IAED;;;OAGG;IACH,2BAeE;IAEF;;;;OAIG;IACH,uBAIC;IAQH;;;OAGG;IACH,mBACiE;IAcjE;;;;OAIG;IACH,qBAAsB;IAEtB;;;OAGG;IACH,mBAEE;IAEF;;;OAGG;IACH,sBAAyB;IAEzB;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,4BAA+B;IAKjC;;;;;;OAMG;IACH,yBAJW,OAAO,cAAc,EAAE,MAAM,cAC7B,MAAM,GACL,KAAK,CAAC,OAAO,cAAc,EAAE,MAAM,CAAC,CAoB/C;IAED;;;;;OAKG;IACH,uBAJW,OAAO,WAAW,EAAE,MAAM,cAC1B,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,QA4EjD;IAED;;;;;;;;;OASG;IACH,qBAuBC;IAED;;;;;;;;;OASG;IACH,qBAuBC;IAED;;;OAGG;IACH,oBAiFC;IAED;;;;;;OAMG;IACH,yBAsNC;IAED;;;;OAIG;IACH,qBA0BC;IAED;;;;;;;;OAQG;IACH,qBAiBC;IAED;;;;;;OAMG;IACH,0BAwBC;IAED;;;;OAIG;IACH,gBAHY,KAAK,CAAC,UAAU,CAAC,CAK5B;IAED;;;;;;;;OAQG;IACH,qBAgBC;IAED;;;;;;OAMG;IACH,0BAwBC;IAED;;;;OAIG;IACH,gBAHY,KAAK,CAAC,UAAU,CAAC,CAK5B;IAED;;;OAGG;IACH,8BA0EC;CACF;kBAjuCiB,kBAAkB;mBACjB,oBAAoB;iBAEtB,kBAAkB;oBANf,eAAe;yBAQV,qBAAqB;wBADtB,aAAa;uBALd,uBAAuB"}
@@ -177,7 +177,8 @@ const INTERVALS = [
177
177
  * Layer that renders a grid for a coordinate system (currently only EPSG:4326 is supported).
178
178
  * Note that the view projection must define both extent and worldExtent.
179
179
  *
180
- * @fires import("../render/Event.js").RenderEvent
180
+ * @fires import("../render/Event.js").RenderEvent#prerender
181
+ * @fires import("../render/Event.js").RenderEvent#postrender
181
182
  * @extends {VectorLayer<VectorSource<Feature>>}
182
183
  * @api
183
184
  */
@@ -81,7 +81,8 @@ export type Options<FeatureType extends import("../Feature.js").FeatureLike = im
81
81
  * property on the layer object; for example, setting `title: 'My Title'` in the
82
82
  * options means that `title` is observable, and has get/set accessors.
83
83
  *
84
- * @fires import("../render/Event.js").RenderEvent
84
+ * @fires import("../render/Event.js").RenderEvent#prerender
85
+ * @fires import("../render/Event.js").RenderEvent#postrender
85
86
  * @template {import("../Feature.js").FeatureLike} [FeatureType=import("../Feature.js").default]
86
87
  * @template {import("../source/Vector.js").default<FeatureType>} [VectorSourceType=import("../source/Vector.js").default<FeatureType>]
87
88
  * @extends {BaseVector<FeatureType, VectorSourceType, WebGLPointsLayerRenderer>}
@@ -1 +1 @@
1
- {"version":3,"file":"Heatmap.d.ts","sourceRoot":"","sources":["Heatmap.js"],"names":[],"mappings":";oBAUoD,WAAW,SAAlD,OAAQ,eAAe,EAAE,WAAY,mEACiB,gBAAgB,SAAtE,OAAQ,qBAAqB,EAAE,OAAO,CAAC,WAAW,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuBnC,OAAO,eAAe,EAAE,OAAO,KAAE,MAAM;;;;;;;;;;;;AAuBrE;;;;;;;;;;;;GAYG;AACH,sBALoD,WAAW,SAAlD,OAAQ,eAAe,EAAE,WAAY,mEACiB,gBAAgB,SAAtE,OAAQ,qBAAqB,EAAE,OAAO,CAAC,WAAW,CAAE;IAK/D;;OAEG;IACH,0EA0CC;IA/BC;;;OAGG;IACH,kBAAqB;IAYrB;;OAEG;IACH,wBAOY;IAOd;;;;;OAKG;IACH,WAJY,MAAM,CAMjB;IAED;;;;;OAKG;IACH,eAJY,KAAK,CAAC,MAAM,CAAC,CAMxB;IAED;;;;;OAKG;IACH,aAJY,MAAM,CAMjB;IAED;;OAEG;IACH,+BAEC;IAED;;;;;OAKG;IACH,cAJW,MAAM,QAMhB;IAED;;;;;OAKG;IACH,oBAJW,KAAK,CAAC,MAAM,CAAC,QAMvB;IAED;;;;;OAKG;IACH,kBAJW,MAAM,QAMhB;IAkED;;OAEG;IACH,iCAAoB;CACrB;qCAzPoC,kCAAkC;uBADhD,iBAAiB"}
1
+ {"version":3,"file":"Heatmap.d.ts","sourceRoot":"","sources":["Heatmap.js"],"names":[],"mappings":";oBAUoD,WAAW,SAAlD,OAAQ,eAAe,EAAE,WAAY,mEACiB,gBAAgB,SAAtE,OAAQ,qBAAqB,EAAE,OAAO,CAAC,WAAW,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuBnC,OAAO,eAAe,EAAE,OAAO,KAAE,MAAM;;;;;;;;;;;;AAuBrE;;;;;;;;;;;;;GAaG;AACH,sBALoD,WAAW,SAAlD,OAAQ,eAAe,EAAE,WAAY,mEACiB,gBAAgB,SAAtE,OAAQ,qBAAqB,EAAE,OAAO,CAAC,WAAW,CAAE;IAK/D;;OAEG;IACH,0EA0CC;IA/BC;;;OAGG;IACH,kBAAqB;IAYrB;;OAEG;IACH,wBAOY;IAOd;;;;;OAKG;IACH,WAJY,MAAM,CAMjB;IAED;;;;;OAKG;IACH,eAJY,KAAK,CAAC,MAAM,CAAC,CAMxB;IAED;;;;;OAKG;IACH,aAJY,MAAM,CAMjB;IAED;;OAEG;IACH,+BAEC;IAED;;;;;OAKG;IACH,cAJW,MAAM,QAMhB;IAED;;;;;OAKG;IACH,oBAJW,KAAK,CAAC,MAAM,CAAC,QAMvB;IAED;;;;;OAKG;IACH,kBAJW,MAAM,QAMhB;IAkED;;OAEG;IACH,iCAAoB;CACrB;qCA1PoC,kCAAkC;uBADhD,iBAAiB"}
package/layer/Heatmap.js CHANGED
@@ -62,7 +62,8 @@ const DEFAULT_GRADIENT = ['#00f', '#0ff', '#0f0', '#ff0', '#f00'];
62
62
  * property on the layer object; for example, setting `title: 'My Title'` in the
63
63
  * options means that `title` is observable, and has get/set accessors.
64
64
  *
65
- * @fires import("../render/Event.js").RenderEvent
65
+ * @fires import("../render/Event.js").RenderEvent#prerender
66
+ * @fires import("../render/Event.js").RenderEvent#postrender
66
67
  * @template {import("../Feature.js").FeatureLike} [FeatureType=import("../Feature.js").default]
67
68
  * @template {import("../source/Vector.js").default<FeatureType>} [VectorSourceType=import("../source/Vector.js").default<FeatureType>]
68
69
  * @extends {BaseVector<FeatureType, VectorSourceType, WebGLPointsLayerRenderer>}
@@ -122,7 +122,8 @@ export type Options<VectorSourceType extends import("../source/Vector.js").defau
122
122
  *
123
123
  * @template {import("../source/Vector.js").default<import('../Feature').FeatureLike>} VectorSourceType
124
124
  * @extends {Layer<VectorSourceType, WebGLPointsLayerRenderer>}
125
- * @fires import("../render/Event.js").RenderEvent
125
+ * @fires import("../render/Event.js").RenderEvent#prerender
126
+ * @fires import("../render/Event.js").RenderEvent#postrender
126
127
  */
127
128
  declare class WebGLPointsLayer<VectorSourceType extends import("../source/Vector.js").default<import("../Feature").FeatureLike>> extends Layer<VectorSourceType, WebGLPointsLayerRenderer> {
128
129
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"WebGLPoints.d.ts","sourceRoot":"","sources":["WebGLPoints.js"],"names":[],"mappings":";oBAQuF,gBAAgB,SAA1F,OAAQ,qBAAqB,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,WAAW,CAAE;;;;WAExE,OAAO,mBAAmB,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAHpD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,+BAJuF,gBAAgB,SAA1F,OAAQ,qBAAqB,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,WAAW,CAAE;IAKpF;;OAEG;IACH,qBAFW,OAAO,CAAC,gBAAgB,CAAC,EAwBnC;IAjBC;;;OAGG;IACH,qBAAoD;IAEpD;;;OAGG;IACH,wBAAoD;IAEpD;;;OAGG;IACH,8BAA0D;IAyB5D;;;OAGG;IACH,gCAFW;YAAO,MAAM,GAAE,MAAM;KAAC,QAKhC;CACF;qCA1HoC,kCAAkC;kBADrD,YAAY"}
1
+ {"version":3,"file":"WebGLPoints.d.ts","sourceRoot":"","sources":["WebGLPoints.js"],"names":[],"mappings":";oBAQuF,gBAAgB,SAA1F,OAAQ,qBAAqB,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,WAAW,CAAE;;;;WAExE,OAAO,mBAAmB,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAHpD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,+BALuF,gBAAgB,SAA1F,OAAQ,qBAAqB,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,WAAW,CAAE;IAMpF;;OAEG;IACH,qBAFW,OAAO,CAAC,gBAAgB,CAAC,EAwBnC;IAjBC;;;OAGG;IACH,qBAAoD;IAEpD;;;OAGG;IACH,wBAAoD;IAEpD;;;OAGG;IACH,8BAA0D;IAyB5D;;;OAGG;IACH,gCAFW;YAAO,MAAM,GAAE,MAAM;KAAC,QAKhC;CACF;qCA3HoC,kCAAkC;kBADrD,YAAY"}
@@ -64,7 +64,8 @@ import {parseLiteralStyle} from '../webgl/styleparser.js';
64
64
  *
65
65
  * @template {import("../source/Vector.js").default<import('../Feature').FeatureLike>} VectorSourceType
66
66
  * @extends {Layer<VectorSourceType, WebGLPointsLayerRenderer>}
67
- * @fires import("../render/Event.js").RenderEvent
67
+ * @fires import("../render/Event.js").RenderEvent#prerender
68
+ * @fires import("../render/Event.js").RenderEvent#postrender
68
69
  */
69
70
  class WebGLPointsLayer extends Layer {
70
71
  /**
@@ -161,7 +161,8 @@ export type ParsedStyle = {
161
161
  * options means that `title` is observable, and has get/set accessors.
162
162
  *
163
163
  * @extends BaseTileLayer<SourceType, WebGLTileLayerRenderer>
164
- * @fires import("../render/Event.js").RenderEvent
164
+ * @fires import("../render/Event.js").RenderEvent#prerender
165
+ * @fires import("../render/Event.js").RenderEvent#postrender
165
166
  * @api
166
167
  */
167
168
  declare class WebGLTileLayer extends BaseTileLayer<import("../source/DataTile.js").default<import("../DataTile.js").default | import("../ImageTile.js").default>, WebGLTileLayerRenderer<any>> {
@@ -1 +1 @@
1
- {"version":3,"file":"WebGLTile.d.ts","sourceRoot":"","sources":["WebGLTile.js"],"names":[],"mappings":";yBAmBa,OAAO,uBAAuB,EAAE,OAAO,CAAC,OAAO,gBAAgB,EAAE,OAAO,GAAC,OAAO,iBAAiB,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wIA+C/E,OAAO,cAAc,EAAE,MAAM,QAAE,MAAM,KAAE,KAAK,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiBnF,MAAM;;;;oBACN,MAAM;;;;cACN;YAAO,MAAM,GAAC,OAAO,oBAAoB,EAAE,YAAY;KAAC;;;;qBACxD,KAAK,CAAC,OAAO,4BAA4B,EAAE,OAAO,CAAC;;AA0LjE;;;;;;;;;;;GAWG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,EAyCjB;IA/BC;;;OAGG;IACH,iBAA+B;IAE/B;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,4BAA8B;IAE9B;;;OAGG;IACH,eAAmB;IAEnB;;;OAGG;IACH,wBAAkD;IAKpD;;;;;OAKG;IACH,mBAJW,OAAO,cAAc,EAAE,MAAM,cAC7B,MAAM,GACL,KAAK,CAAC,UAAU,CAAC,CAW5B;IAED;;;OAGG;IACH,4BAHY,UAAU,CAKrB;IAWD;;OAEG;IACH,4BAkBC;IAED;;;OAGG;IACH,4BAMC;IAED;;OAEG;IACH,wDAUC;IAED;;;;OAIG;IACH,0BAJW,OAAO,QAAQ,EAAE,UAAU,WAC3B,KAAK,CAAC,UAAU,CAAC,GAChB,WAAW,CAYtB;IAED;;;;;;OAMG;IACH,4BANY,OAAO,WAAW,EAAE,UAAU,OAAA,UAC/B,WAAW,GAEV,WAAW,CAuCtB;IAED;;;;;;;OAOG;IACH,gBAFW,KAAK,QAgBf;IAED;;;;OAIG;IACH,gCAHW;YAAO,MAAM,GAAE,MAAM;KAAC,QAMhC;CACF;mCApfM,gCAAgC;0BALb,eAAe"}
1
+ {"version":3,"file":"WebGLTile.d.ts","sourceRoot":"","sources":["WebGLTile.js"],"names":[],"mappings":";yBAmBa,OAAO,uBAAuB,EAAE,OAAO,CAAC,OAAO,gBAAgB,EAAE,OAAO,GAAC,OAAO,iBAAiB,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wIA+C/E,OAAO,cAAc,EAAE,MAAM,QAAE,MAAM,KAAE,KAAK,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiBnF,MAAM;;;;oBACN,MAAM;;;;cACN;YAAO,MAAM,GAAC,OAAO,oBAAoB,EAAE,YAAY;KAAC;;;;qBACxD,KAAK,CAAC,OAAO,4BAA4B,EAAE,OAAO,CAAC;;AA0LjE;;;;;;;;;;;;GAYG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,EAyCjB;IA/BC;;;OAGG;IACH,iBAA+B;IAE/B;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,4BAA8B;IAE9B;;;OAGG;IACH,eAAmB;IAEnB;;;OAGG;IACH,wBAAkD;IAKpD;;;;;OAKG;IACH,mBAJW,OAAO,cAAc,EAAE,MAAM,cAC7B,MAAM,GACL,KAAK,CAAC,UAAU,CAAC,CAW5B;IAED;;;OAGG;IACH,4BAHY,UAAU,CAKrB;IAWD;;OAEG;IACH,4BAkBC;IAED;;;OAGG;IACH,4BAMC;IAED;;OAEG;IACH,wDAUC;IAED;;;;OAIG;IACH,0BAJW,OAAO,QAAQ,EAAE,UAAU,WAC3B,KAAK,CAAC,UAAU,CAAC,GAChB,WAAW,CAYtB;IAED;;;;;;OAMG;IACH,4BANY,OAAO,WAAW,EAAE,UAAU,OAAA,UAC/B,WAAW,GAEV,WAAW,CAuCtB;IAED;;;;;;;OAOG;IACH,gBAFW,KAAK,QAgBf;IAED;;;;OAIG;IACH,gCAHW;YAAO,MAAM,GAAE,MAAM;KAAC,QAMhC;CACF;mCArfM,gCAAgC;0BALb,eAAe"}
@@ -279,7 +279,8 @@ function parseStyle(style, bandCount) {
279
279
  * options means that `title` is observable, and has get/set accessors.
280
280
  *
281
281
  * @extends BaseTileLayer<SourceType, WebGLTileLayerRenderer>
282
- * @fires import("../render/Event.js").RenderEvent
282
+ * @fires import("../render/Event.js").RenderEvent#prerender
283
+ * @fires import("../render/Event.js").RenderEvent#postrender
283
284
  * @api
284
285
  */
285
286
  class WebGLTileLayer extends BaseTileLayer {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ol",
3
- "version": "10.2.2-dev.1729036924104",
3
+ "version": "10.2.2-dev.1729350775422",
4
4
  "description": "OpenLayers mapping library",
5
5
  "keywords": [
6
6
  "map",
@@ -1 +1 @@
1
- {"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["Executor.js"],"names":[],"mappings":"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"}
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>} */
@@ -40,6 +40,11 @@ declare class CanvasTextBuilder extends CanvasBuilder {
40
40
  * @type {boolean|undefined}
41
41
  */
42
42
  private textRotateWithView_;
43
+ /**
44
+ * @private
45
+ * @type {boolean|undefined}
46
+ */
47
+ private textKeepUpright_;
43
48
  /**
44
49
  * @private
45
50
  * @type {number}
@@ -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,mBAoDC;IAED;;;;OAIG;IACH,iCAJW,OAAO,qBAAqB,EAAE,OAAO,0BA+G/C;CACF;0BA9pByB,cAAc"}
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
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["Text.js"],"names":[],"mappings":"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"}
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
@@ -33,4 +33,4 @@ export function getUid(obj) {
33
33
  * OpenLayers version.
34
34
  * @type {string}
35
35
  */
36
- export const VERSION = '10.2.2-dev.1729036924104';
36
+ export const VERSION = '10.2.2-dev.1729350775422';