ol 10.3.2-dev.1737448999971 → 10.3.2-dev.1737622602778

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.
@@ -31,6 +31,7 @@ export function isType(type: number, expected: number): boolean;
31
31
  * @property {Set<string>} properties Properties referenced with the 'get' operator.
32
32
  * @property {boolean} featureId The style uses the feature id.
33
33
  * @property {boolean} geometryType The style uses the feature geometry type.
34
+ * @property {boolean} mapState The style uses the map state (view state or time elapsed).
34
35
  */
35
36
  /**
36
37
  * @return {ParsingContext} A new parsing context.
@@ -107,6 +108,10 @@ export type ParsingContext = {
107
108
  * The style uses the feature geometry type.
108
109
  */
109
110
  geometryType: boolean;
111
+ /**
112
+ * The style uses the map state (view state or time elapsed).
113
+ */
114
+ mapState: boolean;
110
115
  };
111
116
  export type EncodedExpression = LiteralValue | any[];
112
117
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["expression.js"],"names":[],"mappings":"AAoKA;;;;GAIG;AACH,+BAHW,MAAM,GACL,MAAM,CAgBjB;AAED;;;;GAIG;AACH,oCAJW,MAAM,YACN,MAAM,GACL,OAAO,CAIlB;AAED;;;;GAIG;AACH,sCAJW,MAAM,aACN,MAAM,GACL,OAAO,CAIlB;AAED;;;;GAIG;AACH,6BAJW,MAAM,YACN,MAAM,GACL,OAAO,CAIlB;AAmCD;;GAEG;AAEH;;;;;;GAMG;AAEH;;GAEG;AACH,qCAFY,cAAc,CASzB;AAED;;GAEG;AAEH;;;;;GAKG;AACH,+BALW,iBAAiB,gBACjB,MAAM,WACN,cAAc,GACb,UAAU,CA6FrB;AAuoBD;;;;GAIG;AACH,8CAHW,OAAO,qBAAqB,EAAE,OAAO,GAAC,OAAO,sBAAsB,EAAE,OAAO,GAC3E,OAAO,GAAC,YAAY,GAAC,SAAS,GAAC,EAAE,CA2B5C;AA/4BD,uBAAwB,CAAC,CAAC;AAC1B,iCAA2C;AAC3C,gCAA0C;AAC1C,gCAA0C;AAC1C,+BAAyC;AACzC,qCAA+C;AAC/C,8BAAwC;AACxC,6BAAiD;AAqEjD;;GAEG;AAEH;IACE;;;OAGG;IACH,kBAHW,MAAM,SACN,YAAY,EAUtB;IAFC,aAAgB;IAChB,oBAAkB;CAErB;AAED;IACE;;;;OAIG;IACH,kBAJW,MAAM,YACN,MAAM,WACH,UAAU,EAAA,EAMvB;IAHC,aAAgB;IAChB,iBAAwB;IACxB,mBAAgB;CAEnB;AAiID;;GAEG;AACH;;EAgDE;yBAjLW,iBAAiB,GAAC,cAAc;;;;;eAK/B,GAAG,CAAC,MAAM,CAAC;;;;gBACX,GAAG,CAAC,MAAM,CAAC;;;;eACX,OAAO;;;;kBACP,OAAO;;gCAgBR,YAAY,QAAM;;;;;2BAyUlB,CAAS,IAAwB,EAAxB,KAAK,CAAC,iBAAiB,CAAC,EAAE,IAAM,EAAN,MAAM,EAAE,IAAc,EAAd,cAAc,KAAE,KAAK,CAAC,UAAU,CAAC,GAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BApdjF,KAAK,CAAC,GAAC,CAAC,GAAC,OAAO,aAAa,EAAE,KAAK,GAAC,MAAM,GAAC,MAAM,GAAC,OAAO;2BAkF1D,OAAO,GAAC,MAAM,GAAC,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;;;;qBAqNnC,CAAS,IAAK,SAAE,IAAM,EAAN,MAAM,EAAE,IAAc,EAAd,cAAc,KAAE,UAAU"}
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["expression.js"],"names":[],"mappings":"AAoKA;;;;GAIG;AACH,+BAHW,MAAM,GACL,MAAM,CAgBjB;AAED;;;;GAIG;AACH,oCAJW,MAAM,YACN,MAAM,GACL,OAAO,CAIlB;AAED;;;;GAIG;AACH,sCAJW,MAAM,aACN,MAAM,GACL,OAAO,CAIlB;AAED;;;;GAIG;AACH,6BAJW,MAAM,YACN,MAAM,GACL,OAAO,CAIlB;AAmCD;;GAEG;AAEH;;;;;;;GAOG;AAEH;;GAEG;AACH,qCAFY,cAAc,CAUzB;AAED;;GAEG;AAEH;;;;;GAKG;AACH,+BALW,iBAAiB,gBACjB,MAAM,WACN,cAAc,GACb,UAAU,CA6FrB;AA8oBD;;;;GAIG;AACH,8CAHW,OAAO,qBAAqB,EAAE,OAAO,GAAC,OAAO,sBAAsB,EAAE,OAAO,GAC3E,OAAO,GAAC,YAAY,GAAC,SAAS,GAAC,EAAE,CA2B5C;AAx5BD,uBAAwB,CAAC,CAAC;AAC1B,iCAA2C;AAC3C,gCAA0C;AAC1C,gCAA0C;AAC1C,+BAAyC;AACzC,qCAA+C;AAC/C,8BAAwC;AACxC,6BAAiD;AAqEjD;;GAEG;AAEH;IACE;;;OAGG;IACH,kBAHW,MAAM,SACN,YAAY,EAUtB;IAFC,aAAgB;IAChB,oBAAkB;CAErB;AAED;IACE;;;;OAIG;IACH,kBAJW,MAAM,YACN,MAAM,WACH,UAAU,EAAA,EAMvB;IAHC,aAAgB;IAChB,iBAAwB;IACxB,mBAAgB;CAEnB;AAmID;;GAEG;AACH;;EAgDE;yBAnLW,iBAAiB,GAAC,cAAc;;;;;eAK/B,GAAG,CAAC,MAAM,CAAC;;;;gBACX,GAAG,CAAC,MAAM,CAAC;;;;eACX,OAAO;;;;kBACP,OAAO;;;;cACP,OAAO;;gCAiBR,YAAY,QAAM;;;;;2BAyUlB,CAAS,IAAwB,EAAxB,KAAK,CAAC,iBAAiB,CAAC,EAAE,IAAM,EAAN,MAAM,EAAE,IAAc,EAAd,cAAc,KAAE,KAAK,CAAC,UAAU,CAAC,GAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAtdjF,KAAK,CAAC,GAAC,CAAC,GAAC,OAAO,aAAa,EAAE,KAAK,GAAC,MAAM,GAAC,MAAM,GAAC,OAAO;2BAkF1D,OAAO,GAAC,MAAM,GAAC,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;;;;qBAuNnC,CAAS,IAAK,SAAE,IAAM,EAAN,MAAM,EAAE,IAAc,EAAd,cAAc,KAAE,UAAU"}
@@ -253,6 +253,7 @@ export class CallExpression {
253
253
  * @property {Set<string>} properties Properties referenced with the 'get' operator.
254
254
  * @property {boolean} featureId The style uses the feature id.
255
255
  * @property {boolean} geometryType The style uses the feature geometry type.
256
+ * @property {boolean} mapState The style uses the map state (view state or time elapsed).
256
257
  */
257
258
 
258
259
  /**
@@ -264,6 +265,7 @@ export function newParsingContext() {
264
265
  properties: new Set(),
265
266
  featureId: false,
266
267
  geometryType: false,
268
+ mapState: false,
267
269
  };
268
270
  }
269
271
 
@@ -443,9 +445,9 @@ const parsers = {
443
445
  ),
444
446
  [Ops.GeometryType]: createCallExpressionParser(usesGeometryType, withNoArgs),
445
447
  [Ops.LineMetric]: createCallExpressionParser(withNoArgs),
446
- [Ops.Resolution]: createCallExpressionParser(withNoArgs),
447
- [Ops.Zoom]: createCallExpressionParser(withNoArgs),
448
- [Ops.Time]: createCallExpressionParser(withNoArgs),
448
+ [Ops.Resolution]: createCallExpressionParser(usesMapState, withNoArgs),
449
+ [Ops.Zoom]: createCallExpressionParser(usesMapState, withNoArgs),
450
+ [Ops.Time]: createCallExpressionParser(usesMapState, withNoArgs),
449
451
  [Ops.Any]: createCallExpressionParser(
450
452
  hasArgsCount(2, Infinity),
451
453
  withArgsOfType(BooleanType),
@@ -660,6 +662,13 @@ function usesGeometryType(encoded, returnType, context) {
660
662
  context.geometryType = true;
661
663
  }
662
664
 
665
+ /**
666
+ * @type {ArgValidator}
667
+ */
668
+ function usesMapState(encoded, returnType, context) {
669
+ context.mapState = true;
670
+ }
671
+
663
672
  /**
664
673
  * @type {ArgValidator}
665
674
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ol",
3
- "version": "10.3.2-dev.1737448999971",
3
+ "version": "10.3.2-dev.1737622602778",
4
4
  "description": "OpenLayers mapping library",
5
5
  "keywords": [
6
6
  "map",
@@ -122,6 +122,18 @@ declare class CanvasBuilder extends VectorContext {
122
122
  * Reverse the hit detection instructions.
123
123
  */
124
124
  reverseHitDetectionInstructions(): void;
125
+ /**
126
+ * @param {import("../../style/Fill.js").default} fillStyle Fill style.
127
+ * @param {import('../canvas.js').FillStrokeState} [state] State.
128
+ * @return {import('../canvas.js').FillStrokeState} State.
129
+ */
130
+ fillStyleToState(fillStyle: import("../../style/Fill.js").default, state?: import("../canvas.js").FillStrokeState): import("../canvas.js").FillStrokeState;
131
+ /**
132
+ * @param {import("../../style/Stroke.js").default} strokeStyle Stroke style.
133
+ * @param {import("../canvas.js").FillStrokeState} state State.
134
+ * @return {import("../canvas.js").FillStrokeState} State.
135
+ */
136
+ strokeStyleToState(strokeStyle: import("../../style/Stroke.js").default, state?: import("../canvas.js").FillStrokeState): import("../canvas.js").FillStrokeState;
125
137
  /**
126
138
  * @param {import("../canvas.js").FillStrokeState} state State.
127
139
  * @return {Array<*>} Fill instruction.
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["Builder.js"],"names":[],"mappings":";AA8BA;IACE;;;;;OAKG;IACH,uBALW,MAAM,aACN,OAAO,iBAAiB,EAAE,MAAM,cAChC,MAAM,cACN,MAAM,EAoFhB;IA/EC;;;OAGG;IACH,qBAFU,MAAM,CAEU;IAE1B;;;;OAIG;IACH,qBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEhB;IAE1B;;;OAGG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,wBAFU,MAAM,CAEK;IAErB;;;;OAIG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,mCAAsC;IAEtC;;;OAGG;IACH,mCAAsC;IAEtC;;;OAGG;IACH,2BAA8B;IAE9B;;;OAGG;IACH,wBAFU,KAAK,CAAC,GAAC,CAAC,CAEI;IAEtB;;;OAGG;IACH,uBAFU,KAAK,CAAC,MAAM,CAAC,CAEF;IAErB;;;OAGG;IACH,uBAAwB;IAExB;;;OAGG;IACH,oCAFU,KAAK,CAAC,GAAC,CAAC,CAEgB;IAElC;;;OAGG;IACH,iBAFU,OAAO,cAAc,EAAE,eAAe,CAEuB;IAGzE;;;;OAIG;IACH,qCAHW,KAAK,CAAC,MAAM,CAAC,GACZ,KAAK,CAAC,MAAM,CAAC,CASxB;IAED;;;;;OAKG;IACH,sDALW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,GAEL,MAAM,CAgBjB;IAED;;;;;;;;;OASG;IACH,qDATW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,OACN,MAAM,UACN,MAAM,UACN,OAAO,aACP,OAAO,GAEN,MAAM,CAoDjB;IAED;;;;;;;OAOG;IACH,wCAPW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,QACN,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,eACN,KAAK,CAAC,MAAM,CAAC,GACZ,MAAM,CAiBjB;IAuLD;;;;;OAKG;IACH,kCAJW,OAAO,qBAAqB,EAAE,OAAO,GAAC,OAAO,eAAe,EAAE,OAAO,WACrE,OAAO,kBAAkB,EAAE,WAAW,SACtC,MAAM,QAmBhB;IAED;;OAEG;IACH,UAFY,OAAO,cAAc,EAAE,wBAAwB,CAQ1D;IAED;;OAEG;IACH,wCAqBC;IAqED;;;OAGG;IACH,kBAHW,OAAO,cAAc,EAAE,eAAe,GACrC,KAAK,CAAC,GAAC,CAAC,CAWnB;IAED;;OAEG;IACH,mBAFW,OAAO,cAAc,EAAE,eAAe,QAIhD;IAED;;;OAGG;IACH,oBAHW,OAAO,cAAc,EAAE,eAAe,GACrC,KAAK,CAAC,GAAC,CAAC,CAanB;IAED;;;OAGG;IACH,uBAHW,OAAO,cAAc,EAAE,eAAe,cACtC,CAAS,IAAkB,EAAb,aAAa,EAAE,IAAsC,EAAtC,OAAO,cAAc,EAAE,eAAe,KAAE,KAAK,CAAC,GAAC,CAAC,QAUvF;IAED;;;OAGG;IACH,yBAHW,OAAO,cAAc,EAAE,eAAe,eACtC,CAAS,IAAkB,EAAb,aAAa,EAAE,IAAsC,EAAtC,OAAO,cAAc,EAAE,eAAe,KAAG,IAAI,QA+BpF;IAED;;OAEG;IACH,qBAFW,OAAO,kBAAkB,EAAE,WAAW,QAUhD;IAED;;;;;;OAMG;IACH,kCAHY,OAAO,iBAAiB,EAAE,MAAM,CAY3C;CACF;0BA/oByB,qBAAqB"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["Builder.js"],"names":[],"mappings":";AA8BA;IACE;;;;;OAKG;IACH,uBALW,MAAM,aACN,OAAO,iBAAiB,EAAE,MAAM,cAChC,MAAM,cACN,MAAM,EAoFhB;IA/EC;;;OAGG;IACH,qBAFU,MAAM,CAEU;IAE1B;;;;OAIG;IACH,qBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEhB;IAE1B;;;OAGG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,wBAFU,MAAM,CAEK;IAErB;;;;OAIG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,mCAAsC;IAEtC;;;OAGG;IACH,mCAAsC;IAEtC;;;OAGG;IACH,2BAA8B;IAE9B;;;OAGG;IACH,wBAFU,KAAK,CAAC,GAAC,CAAC,CAEI;IAEtB;;;OAGG;IACH,uBAFU,KAAK,CAAC,MAAM,CAAC,CAEF;IAErB;;;OAGG;IACH,uBAAwB;IAExB;;;OAGG;IACH,oCAFU,KAAK,CAAC,GAAC,CAAC,CAEgB;IAElC;;;OAGG;IACH,iBAFU,OAAO,cAAc,EAAE,eAAe,CAEuB;IAGzE;;;;OAIG;IACH,qCAHW,KAAK,CAAC,MAAM,CAAC,GACZ,KAAK,CAAC,MAAM,CAAC,CASxB;IAED;;;;;OAKG;IACH,sDALW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,GAEL,MAAM,CAgBjB;IAED;;;;;;;;;OASG;IACH,qDATW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,OACN,MAAM,UACN,MAAM,UACN,OAAO,aACP,OAAO,GAEN,MAAM,CAoDjB;IAED;;;;;;;OAOG;IACH,wCAPW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,QACN,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,eACN,KAAK,CAAC,MAAM,CAAC,GACZ,MAAM,CAiBjB;IAuLD;;;;;OAKG;IACH,kCAJW,OAAO,qBAAqB,EAAE,OAAO,GAAC,OAAO,eAAe,EAAE,OAAO,WACrE,OAAO,kBAAkB,EAAE,WAAW,SACtC,MAAM,QAmBhB;IAED;;OAEG;IACH,UAFY,OAAO,cAAc,EAAE,wBAAwB,CAQ1D;IAED;;OAEG;IACH,wCAqBC;IAED;;;;OAIG;IACH,4BAJW,OAAO,qBAAqB,EAAE,OAAO,UACrC,OAAO,cAAc,EAAE,eAAe,GACrC,OAAO,cAAc,EAAE,eAAe,CAqBjD;IAED;;;;OAIG;IACH,gCAJW,OAAO,uBAAuB,EAAE,OAAO,UACvC,OAAO,cAAc,EAAE,eAAe,GACrC,OAAO,cAAc,EAAE,eAAe,CAmDjD;IAaD;;;OAGG;IACH,kBAHW,OAAO,cAAc,EAAE,eAAe,GACrC,KAAK,CAAC,GAAC,CAAC,CAWnB;IAED;;OAEG;IACH,mBAFW,OAAO,cAAc,EAAE,eAAe,QAIhD;IAED;;;OAGG;IACH,oBAHW,OAAO,cAAc,EAAE,eAAe,GACrC,KAAK,CAAC,GAAC,CAAC,CAanB;IAED;;;OAGG;IACH,uBAHW,OAAO,cAAc,EAAE,eAAe,cACtC,CAAS,IAAkB,EAAb,aAAa,EAAE,IAAsC,EAAtC,OAAO,cAAc,EAAE,eAAe,KAAE,KAAK,CAAC,GAAC,CAAC,QAUvF;IAED;;;OAGG;IACH,yBAHW,OAAO,cAAc,EAAE,eAAe,eACtC,CAAS,IAAkB,EAAb,aAAa,EAAE,IAAsC,EAAtC,OAAO,cAAc,EAAE,eAAe,KAAG,IAAI,QA+BpF;IAED;;OAEG;IACH,qBAFW,OAAO,kBAAkB,EAAE,WAAW,QAUhD;IAED;;;;;;OAMG;IACH,kCAHY,OAAO,iBAAiB,EAAE,MAAM,CAY3C;CACF;0BAzqByB,qBAAqB"}
@@ -487,11 +487,13 @@ class CanvasBuilder extends VectorContext {
487
487
 
488
488
  /**
489
489
  * @param {import("../../style/Fill.js").default} fillStyle Fill style.
490
- * @param {import("../../style/Stroke.js").default} strokeStyle Stroke style.
491
- * @override
490
+ * @param {import('../canvas.js').FillStrokeState} [state] State.
491
+ * @return {import('../canvas.js').FillStrokeState} State.
492
492
  */
493
- setFillStrokeStyle(fillStyle, strokeStyle) {
494
- const state = this.state;
493
+ fillStyleToState(
494
+ fillStyle,
495
+ state = /** @type {import('../canvas.js').FillStrokeState} */ ({}),
496
+ ) {
495
497
  if (fillStyle) {
496
498
  const fillStyleColor = fillStyle.getColor();
497
499
  state.fillPatternScale =
@@ -506,6 +508,18 @@ class CanvasBuilder extends VectorContext {
506
508
  } else {
507
509
  state.fillStyle = undefined;
508
510
  }
511
+ return state;
512
+ }
513
+
514
+ /**
515
+ * @param {import("../../style/Stroke.js").default} strokeStyle Stroke style.
516
+ * @param {import("../canvas.js").FillStrokeState} state State.
517
+ * @return {import("../canvas.js").FillStrokeState} State.
518
+ */
519
+ strokeStyleToState(
520
+ strokeStyle,
521
+ state = /** @type {import('../canvas.js').FillStrokeState} */ ({}),
522
+ ) {
509
523
  if (strokeStyle) {
510
524
  const strokeStyleColor = strokeStyle.getColor();
511
525
  state.strokeStyle = asColorLike(
@@ -550,6 +564,18 @@ class CanvasBuilder extends VectorContext {
550
564
  state.lineWidth = undefined;
551
565
  state.miterLimit = undefined;
552
566
  }
567
+ return state;
568
+ }
569
+
570
+ /**
571
+ * @param {import("../../style/Fill.js").default} fillStyle Fill style.
572
+ * @param {import("../../style/Stroke.js").default} strokeStyle Stroke style.
573
+ * @override
574
+ */
575
+ setFillStrokeStyle(fillStyle, strokeStyle) {
576
+ const state = this.state;
577
+ this.fillStyleToState(fillStyle, state);
578
+ this.strokeStyleToState(strokeStyle, state);
553
579
  }
554
580
 
555
581
  /**
@@ -586,7 +612,7 @@ class CanvasBuilder extends VectorContext {
586
612
  state.lineCap,
587
613
  state.lineJoin,
588
614
  state.miterLimit,
589
- this.applyPixelRatio(state.lineDash),
615
+ state.lineDash ? this.applyPixelRatio(state.lineDash) : null,
590
616
  state.lineDashOffset * this.pixelRatio,
591
617
  ];
592
618
  }
@@ -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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"}
@@ -377,6 +377,7 @@ class Executor {
377
377
  context.lineTo.apply(context, p1);
378
378
  if (fillInstruction) {
379
379
  this.alignAndScaleFill_ = /** @type {number} */ (fillInstruction[2]);
380
+ context.fillStyle = /** @type {string} */ (fillInstruction[1]);
380
381
  this.fill_(context);
381
382
  }
382
383
  if (strokeInstruction) {
@@ -703,8 +704,6 @@ class Executor {
703
704
  fillKey;
704
705
  let pendingFill = 0;
705
706
  let pendingStroke = 0;
706
- let lastFillInstruction = null;
707
- let lastStrokeInstruction = null;
708
707
  const coordinateCache = this.coordinateCache_;
709
708
  const viewRotation = this.viewRotation_;
710
709
  const viewRotationFromTransform =
@@ -867,15 +866,19 @@ class Executor {
867
866
  geometryWidths = /** @type {number} */ (instruction[25]);
868
867
  }
869
868
 
870
- let padding, backgroundFill, backgroundStroke;
869
+ let padding, backgroundFillInstruction, backgroundStrokeInstruction;
871
870
  if (instruction.length > 17) {
872
871
  padding = /** @type {Array<number>} */ (instruction[16]);
873
- backgroundFill = /** @type {boolean} */ (instruction[17]);
874
- backgroundStroke = /** @type {boolean} */ (instruction[18]);
872
+ backgroundFillInstruction = /** @type {Array<*>} */ (
873
+ instruction[17]
874
+ );
875
+ backgroundStrokeInstruction = /** @type {Array<*>} */ (
876
+ instruction[18]
877
+ );
875
878
  } else {
876
879
  padding = defaultPadding;
877
- backgroundFill = false;
878
- backgroundStroke = false;
880
+ backgroundFillInstruction = null;
881
+ backgroundStrokeInstruction = null;
879
882
  }
880
883
 
881
884
  if (rotateWithView && viewRotationFromTransform) {
@@ -908,7 +911,7 @@ class Executor {
908
911
  scale,
909
912
  snapToPixel,
910
913
  padding,
911
- backgroundFill || backgroundStroke,
914
+ !!backgroundFillInstruction || !!backgroundStrokeInstruction,
912
915
  feature,
913
916
  );
914
917
  /** @type {ReplayImageOrLabelArgs} */
@@ -918,12 +921,8 @@ class Executor {
918
921
  image,
919
922
  dimensions,
920
923
  opacity,
921
- backgroundFill
922
- ? /** @type {Array<*>} */ (lastFillInstruction)
923
- : null,
924
- backgroundStroke
925
- ? /** @type {Array<*>} */ (lastStrokeInstruction)
926
- : null,
924
+ backgroundFillInstruction,
925
+ backgroundStrokeInstruction,
927
926
  ];
928
927
  if (declutterTree) {
929
928
  let imageArgs, imageDeclutterMode, imageDeclutterBox;
@@ -1192,7 +1191,6 @@ class Executor {
1192
1191
  ++i;
1193
1192
  break;
1194
1193
  case CanvasInstruction.SET_FILL_STYLE:
1195
- lastFillInstruction = instruction;
1196
1194
  this.alignAndScaleFill_ = instruction[2];
1197
1195
 
1198
1196
  if (pendingFill) {
@@ -1209,7 +1207,6 @@ class Executor {
1209
1207
  ++i;
1210
1208
  break;
1211
1209
  case CanvasInstruction.SET_STROKE_STYLE:
1212
- lastStrokeInstruction = instruction;
1213
1210
  if (pendingStroke) {
1214
1211
  context.stroke();
1215
1212
  pendingStroke = 0;
@@ -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,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;0BArpByB,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;IA0S1C;;OAEG;IACH,wBAqCC;IAED;;;;OAIG;IACH,mBAsDC;IAED;;;;OAIG;IACH,iCAJW,OAAO,qBAAqB,EAAE,OAAO,0BAkH/C;CACF;0BA1oByB,cAAc"}
@@ -345,19 +345,12 @@ class CanvasTextBuilder extends CanvasBuilder {
345
345
 
346
346
  this.saveTextStates_();
347
347
 
348
- if (textState.backgroundFill || textState.backgroundStroke) {
349
- this.setFillStrokeStyle(
350
- textState.backgroundFill,
351
- textState.backgroundStroke,
352
- );
353
- if (textState.backgroundFill) {
354
- this.updateFillStyle(this.state, this.createFill);
355
- }
356
- if (textState.backgroundStroke) {
357
- this.updateStrokeStyle(this.state, this.applyStroke);
358
- this.hitDetectionInstructions.push(this.createStroke(this.state));
359
- }
360
- }
348
+ const backgroundFill = textState.backgroundFill
349
+ ? this.createFill(this.fillStyleToState(textState.backgroundFill))
350
+ : null;
351
+ const backgroundStroke = textState.backgroundStroke
352
+ ? this.createStroke(this.strokeStyleToState(textState.backgroundStroke))
353
+ : null;
361
354
 
362
355
  this.beginGeometry(geometry, feature, index);
363
356
 
@@ -408,8 +401,8 @@ class CanvasTextBuilder extends CanvasBuilder {
408
401
  : padding.map(function (p) {
409
402
  return p * pixelRatio;
410
403
  }),
411
- !!textState.backgroundFill,
412
- !!textState.backgroundStroke,
404
+ backgroundFill,
405
+ backgroundStroke,
413
406
  this.text_,
414
407
  this.textKey_,
415
408
  this.strokeKey_,
@@ -420,10 +413,11 @@ class CanvasTextBuilder extends CanvasBuilder {
420
413
  ]);
421
414
  const scale = 1 / pixelRatio;
422
415
  // Set default fill for hit detection background
423
- const currentFillStyle = this.state.fillStyle;
424
- if (textState.backgroundFill) {
425
- this.state.fillStyle = defaultFillStyle;
426
- this.hitDetectionInstructions.push(this.createFill(this.state));
416
+ const hitDetectionBackgroundFill = backgroundFill
417
+ ? backgroundFill.slice(0)
418
+ : null;
419
+ if (hitDetectionBackgroundFill) {
420
+ hitDetectionBackgroundFill[1] = defaultFillStyle;
427
421
  }
428
422
  this.hitDetectionInstructions.push([
429
423
  CanvasInstruction.DRAW_IMAGE,
@@ -443,8 +437,8 @@ class CanvasTextBuilder extends CanvasBuilder {
443
437
  this.declutterMode_,
444
438
  this.declutterImageWithText_,
445
439
  padding,
446
- !!textState.backgroundFill,
447
- !!textState.backgroundStroke,
440
+ hitDetectionBackgroundFill,
441
+ backgroundStroke,
448
442
  this.text_,
449
443
  this.textKey_,
450
444
  this.strokeKey_,
@@ -453,11 +447,6 @@ class CanvasTextBuilder extends CanvasBuilder {
453
447
  this.textOffsetY_,
454
448
  geometryWidths,
455
449
  ]);
456
- // Reset previous fill
457
- if (textState.backgroundFill) {
458
- this.state.fillStyle = currentFillStyle;
459
- this.hitDetectionInstructions.push(this.createFill(this.state));
460
- }
461
450
 
462
451
  this.endGeometry(feature);
463
452
  }
@@ -168,7 +168,7 @@ declare class MixedGeometryBatch {
168
168
  private uidToRef_;
169
169
  /**
170
170
  * The precision in WebGL shaders is limited.
171
- * To keep the refs as small as possible we maintain an array of returned references.
171
+ * To keep the refs as small as possible we maintain an array of freed up references.
172
172
  * @type {Array<number>}
173
173
  * @private
174
174
  */
@@ -259,6 +259,14 @@ declare class MixedGeometryBatch {
259
259
  * @return {Feature|RenderFeature} feature
260
260
  */
261
261
  getFeatureFromRef(ref: number): Feature | RenderFeature;
262
+ isEmpty(): boolean;
263
+ /**
264
+ * Will return a new instance of this class that only contains the features
265
+ * for which the provided callback returned true
266
+ * @param {function((Feature|RenderFeature)): boolean} featureFilter Feature filter callback
267
+ * @return {MixedGeometryBatch} Filtered geometry batch
268
+ */
269
+ filter(featureFilter: (arg0: (Feature | RenderFeature)) => boolean): MixedGeometryBatch;
262
270
  }
263
271
  import RenderFeature from '../../render/Feature.js';
264
272
  //# sourceMappingURL=MixedGeometryBatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MixedGeometryBatch.d.ts","sourceRoot":"","sources":["MixedGeometryBatch.js"],"names":[],"mappings":";sBAQa,OAAO,kBAAkB,EAAE,OAAO;2BAGlC,OAAO,wBAAwB,EAAE,IAAI;;;;;;;;aAKpC,OAAO,GAAC,aAAa;;;;iBACrB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;4BAQrB,kBAAkB,GAAC,uBAAuB,GAAC,oBAAoB;;;;;;;;;;;;;;;qBAO9D,MAAM;;;;mBACN,MAAM;;;;gBACN,MAAM;;;;;;;;;;;;;;;;qBAON,MAAM;;;;mBACN,MAAM;;;;;;;;;;;;;;;;qBAON,MAAM;;AA1CpB;;GAEG;AACH;;GAEG;AAEH;;;;;;;;GAQG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH;IAEI;;OAEG;IACH,uBAAuB;IAEvB;;;;OAIG;IACH,sBAA8B;IAE9B;;;;OAIG;IACH,kBAA0B;IAE1B;;;;;OAKG;IACH,uBAAwB;IAExB;;OAEG;IACH,cAFU,oBAAoB,CAO7B;IAED;;OAEG;IACH,YAFU,kBAAkB,CAK3B;IAED;;OAEG;IACH,iBAFU,uBAAuB,CAMhC;IAGH;;;OAGG;IACH,sBAHW,KAAK,CAAC,OAAO,GAAC,aAAa,CAAC,wBAC5B,OAAO,eAAe,EAAE,iBAAiB,QAMnD;IAED;;;OAGG;IACH,oBAHW,OAAO,GAAC,aAAa,wBACrB,OAAO,eAAe,EAAE,iBAAiB,QAYnD;IAED;;;;OAIG;IACH,uCASC;IAED;;;;OAIG;IACH,4CAUC;IAED;;;;OAIG;IACH,yCAWC;IAED;;;;OAIG;IACH,qBA2GC;IAED;;;;;;;;;OASG;IACH,wBAyJC;IAED;;;;;OAKG;IACH,uBAYC;IAED;;;;;OAKG;IACH,mBAOC;IAED;;OAEG;IACH,uBAFW,OAAO,GAAC,aAAa,QAS/B;IAED;;OAEG;IACH,uBAFW,OAAO,GAAC,aAAa,QAU/B;IAED,cAcC;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACL,OAAO,GAAC,aAAa,CAIhC;CACF;0BApjByB,yBAAyB"}
1
+ {"version":3,"file":"MixedGeometryBatch.d.ts","sourceRoot":"","sources":["MixedGeometryBatch.js"],"names":[],"mappings":";sBAQa,OAAO,kBAAkB,EAAE,OAAO;2BAGlC,OAAO,wBAAwB,EAAE,IAAI;;;;;;;;aAKpC,OAAO,GAAC,aAAa;;;;iBACrB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;4BAQrB,kBAAkB,GAAC,uBAAuB,GAAC,oBAAoB;;;;;;;;;;;;;;;qBAO9D,MAAM;;;;mBACN,MAAM;;;;gBACN,MAAM;;;;;;;;;;;;;;;;qBAON,MAAM;;;;mBACN,MAAM;;;;;;;;;;;;;;;;qBAON,MAAM;;AA1CpB;;GAEG;AACH;;GAEG;AAEH;;;;;;;;GAQG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH;IAEI;;OAEG;IACH,uBAAuB;IAEvB;;;;OAIG;IACH,sBAA8B;IAE9B;;;;OAIG;IACH,kBAA0B;IAE1B;;;;;OAKG;IACH,uBAAwB;IAExB;;OAEG;IACH,cAFU,oBAAoB,CAO7B;IAED;;OAEG;IACH,YAFU,kBAAkB,CAK3B;IAED;;OAEG;IACH,iBAFU,uBAAuB,CAMhC;IAGH;;;OAGG;IACH,sBAHW,KAAK,CAAC,OAAO,GAAC,aAAa,CAAC,wBAC5B,OAAO,eAAe,EAAE,iBAAiB,QAMnD;IAED;;;OAGG;IACH,oBAHW,OAAO,GAAC,aAAa,wBACrB,OAAO,eAAe,EAAE,iBAAiB,QAYnD;IAED;;;;OAIG;IACH,uCASC;IAED;;;;OAIG;IACH,4CAUC;IAED;;;;OAIG;IACH,yCAWC;IAED;;;;OAIG;IACH,qBA2GC;IAED;;;;;;;;;OASG;IACH,wBAyJC;IAED;;;;;OAKG;IACH,uBAYC;IAED;;;;;OAKG;IACH,mBAOC;IAED;;OAEG;IACH,uBAFW,OAAO,GAAC,aAAa,QAS/B;IAED;;OAEG;IACH,uBAFW,OAAO,GAAC,aAAa,QAS/B;IAED,cAcC;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACL,OAAO,GAAC,aAAa,CAIhC;IAED,mBAEC;IAED;;;;;OAKG;IACH,sBAHW,CAAS,IAAuB,EAAvB,CAAC,OAAO,GAAC,aAAa,CAAC,KAAG,OAAO,GACzC,kBAAkB,CAU7B;CACF;0BAvkByB,yBAAyB"}
@@ -92,7 +92,7 @@ class MixedGeometryBatch {
92
92
 
93
93
  /**
94
94
  * The precision in WebGL shaders is limited.
95
- * To keep the refs as small as possible we maintain an array of returned references.
95
+ * To keep the refs as small as possible we maintain an array of freed up references.
96
96
  * @type {Array<number>}
97
97
  * @private
98
98
  */
@@ -533,8 +533,7 @@ class MixedGeometryBatch {
533
533
  * @param {Feature|RenderFeature} feature Feature
534
534
  */
535
535
  removeFeature(feature) {
536
- let entry;
537
- entry = this.clearFeatureEntryInPointBatch_(feature) || entry;
536
+ let entry = this.clearFeatureEntryInPointBatch_(feature);
538
537
  entry = this.clearFeatureEntryInPolygonBatch_(feature) || entry;
539
538
  entry = this.clearFeatureEntryInLineStringBatch_(feature) || entry;
540
539
  if (entry) {
@@ -566,6 +565,26 @@ class MixedGeometryBatch {
566
565
  getFeatureFromRef(ref) {
567
566
  return this.refToFeature_.get(ref);
568
567
  }
568
+
569
+ isEmpty() {
570
+ return this.globalCounter_ === 0;
571
+ }
572
+
573
+ /**
574
+ * Will return a new instance of this class that only contains the features
575
+ * for which the provided callback returned true
576
+ * @param {function((Feature|RenderFeature)): boolean} featureFilter Feature filter callback
577
+ * @return {MixedGeometryBatch} Filtered geometry batch
578
+ */
579
+ filter(featureFilter) {
580
+ const filtered = new MixedGeometryBatch();
581
+ for (const feature of this.refToFeature_.values()) {
582
+ if (featureFilter(feature)) {
583
+ filtered.addFeature(feature);
584
+ }
585
+ }
586
+ return filtered;
587
+ }
569
588
  }
570
589
 
571
590
  /**
@@ -177,8 +177,9 @@ declare class VectorStyleRenderer {
177
177
  * @param {import('../../style/flat.js').StyleVariables} variables Style variables
178
178
  * @param {import('../../webgl/Helper.js').default} helper Helper
179
179
  * @param {boolean} [enableHitDetection] Whether to enable the hit detection (needs compatible shader)
180
+ * @param {import("../../expr/expression.js").ExpressionValue} [filter] Optional filter expression
180
181
  */
181
- constructor(styleOrShaders: VectorStyle, variables: import("../../style/flat.js").StyleVariables, helper: import("../../webgl/Helper.js").default, enableHitDetection?: boolean);
182
+ constructor(styleOrShaders: VectorStyle, variables: import("../../style/flat.js").StyleVariables, helper: import("../../webgl/Helper.js").default, enableHitDetection?: boolean, filter?: import("../../expr/expression.js").ExpressionValue);
182
183
  /**
183
184
  * @private
184
185
  * @type {import('../../webgl/Helper.js').default}
@@ -242,6 +243,11 @@ declare class VectorStyleRenderer {
242
243
  * @private
243
244
  */
244
245
  private symbolFragmentShader_;
246
+ /**
247
+ * @type {function(import('../../Feature.js').FeatureLike): boolean}
248
+ * @private
249
+ */
250
+ private featureFilter_;
245
251
  /**
246
252
  * @private
247
253
  */
@@ -265,12 +271,19 @@ declare class VectorStyleRenderer {
265
271
  * @private
266
272
  */
267
273
  private pointAttributesDesc_;
274
+ /**
275
+ * Will apply the style filter when generating geometry batches (if it can be evaluated outside a map context)
276
+ * @param {import("../../expr/expression.js").ExpressionValue} filter Style filter
277
+ * @return {function(import('../../Feature.js').FeatureLike): boolean} Feature filter
278
+ * @private
279
+ */
280
+ private computeFeatureFilter;
268
281
  /**
269
282
  * @param {import('./MixedGeometryBatch.js').default} geometryBatch Geometry batch
270
283
  * @param {import("../../transform.js").Transform} transform Transform to apply to coordinates
271
- * @return {Promise<WebGLBuffers>} A promise resolving to WebGL buffers
284
+ * @return {Promise<WebGLBuffers|null>} A promise resolving to WebGL buffers; returns null if buffers are empty
272
285
  */
273
- generateBuffers(geometryBatch: import("./MixedGeometryBatch.js").default, transform: import("../../transform.js").Transform): Promise<WebGLBuffers>;
286
+ generateBuffers(geometryBatch: import("./MixedGeometryBatch.js").default, transform: import("../../transform.js").Transform): Promise<WebGLBuffers | null>;
274
287
  /**
275
288
  * @param {import('./MixedGeometryBatch.js').default} geometryBatch Geometry batch
276
289
  * @param {import("../../transform.js").Transform} transform Transform to apply to coordinates
@@ -1 +1 @@
1
- {"version":3,"file":"VectorStyleRenderer.d.ts","sourceRoot":"","sources":["VectorStyleRenderer.js"],"names":[],"mappings":";;;;yBAmCU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmBF,CAAS,IAAwD,EAAnD,OAAO,yBAAyB,EAAE,iBAAiB,EAAE,IAAmC,EAAnC,OAAO,eAAe,EAAE,WAAW,KAAE,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;;;;;;;;;;;;oBAW5H,KAAK,CAAC,gBAAgB,CAAC;;;;uBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;kBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;6BACvB,OAAO,oBAAoB,EAAE,SAAS;;;;;;yBAKtC,YAAY,GAAC,IAAI;;;;4BACjB,YAAY,GAAC,IAAI;;;;uBACjB,YAAY,GAAC,IAAI;;;;;;;;;YAKjB,MAAM;;;;cACN,MAAM;;;;;;aAKN,OAAO,8BAA8B,EAAE,aAAa;;;;;;;;;;;;;;;;;;;WAQpD,OAAO,qBAAqB,EAAE,SAAS;;;;;;0BAKxC,MAAM,GAAC,SAAS;AAlD7B;;;;;;;GAOG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;;;;;;;;;;;;GAaG;AACH;IACE;;;;;OAKG;IACH,4BALW,WAAW,aACX,OAAO,qBAAqB,EAAE,cAAc,UAC5C,OAAO,uBAAuB,EAAE,OAAO,uBACvC,OAAO,EAwMjB;IArMC;;;OAGG;IACH,gBAAY;IAEZ;;OAEG;IACH,6BAAgD;IAkBhD;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,uBAAmB;IAEnB;;;OAGG;IACH,uBAAmB;IAEnB;;;OAGG;IACH,iBAAyD;IAEvD;;OAEG;IACH,0BAAgE;IAChE;;OAEG;IACH,4BAAoE;IAGtE;;;OAGG;IACH,mBAA6D;IAE3D;;OAEG;IACH,4BAAoE;IACpE;;OAEG;IACH,8BAAwE;IAG1E;;;OAGG;IACH,mBAA6D;IAE3D;;OAEG;IACH,4BAAoE;IACpE;;OAEG;IACH,8BAAwE;IAc1E;;OAEG;IACH,0BAIC;IACD;;OAEG;IACH,kBAAmC;IASnC;;;OAGG;IACH,+BAOC;IACD;;;OAGG;IACH,kCAqCC;IACD;;;OAGG;IACH,6BAYC;IAKH;;;;OAIG;IACH,+BAJW,OAAO,yBAAyB,EAAE,OAAO,aACzC,OAAO,oBAAoB,EAAE,SAAS,GACrC,OAAO,CAAC,YAAY,CAAC,CAqChC;IAED;;;;;OAKG;IACH,oCA+BC;IAED;;;;;;OAMG;IACH,gCAwEC;IAED;;;;;OAKG;IACH,gBAJW,YAAY,cACZ,OAAO,cAAc,EAAE,UAAU,qBACjC,MAAY,IAAI,QA8B1B;IAED;;;;;;;;OAQG;IACH,wBAkBC;IAED;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,YACvC,YAAY,QAuCtB;CACF;6BAzkB4B,uBAAuB"}
1
+ {"version":3,"file":"VectorStyleRenderer.d.ts","sourceRoot":"","sources":["VectorStyleRenderer.js"],"names":[],"mappings":";;;;yBAyCU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmBF,CAAS,IAAwD,EAAnD,OAAO,yBAAyB,EAAE,iBAAiB,EAAE,IAAmC,EAAnC,OAAO,eAAe,EAAE,WAAW,KAAE,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;;;;;;;;;;;;oBAW5H,KAAK,CAAC,gBAAgB,CAAC;;;;uBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;kBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;6BACvB,OAAO,oBAAoB,EAAE,SAAS;;;;;;yBAKtC,YAAY,GAAC,IAAI;;;;4BACjB,YAAY,GAAC,IAAI;;;;uBACjB,YAAY,GAAC,IAAI;;;;;;;;;YAKjB,MAAM;;;;cACN,MAAM;;;;;;aAKN,OAAO,8BAA8B,EAAE,aAAa;;;;;;;;;;;;;;;;;;;WAQpD,OAAO,qBAAqB,EAAE,SAAS;;;;;;0BAKxC,MAAM,GAAC,SAAS;AAlD7B;;;;;;;GAOG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;;;;;;;;;;;;GAaG;AACH;IACE;;;;;;OAMG;IACH,4BANW,WAAW,aACX,OAAO,qBAAqB,EAAE,cAAc,UAC5C,OAAO,uBAAuB,EAAE,OAAO,uBACvC,OAAO,WACP,OAAO,0BAA0B,EAAE,eAAe,EAiN5D;IA9MC;;;OAGG;IACH,gBAAY;IAEZ;;OAEG;IACH,6BAAgD;IAkBhD;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,uBAAmB;IAEnB;;;OAGG;IACH,uBAAmB;IAEnB;;;OAGG;IACH,iBAAyD;IAEvD;;OAEG;IACH,0BAAgE;IAChE;;OAEG;IACH,4BAAoE;IAGtE;;;OAGG;IACH,mBAA6D;IAE3D;;OAEG;IACH,4BAAoE;IACpE;;OAEG;IACH,8BAAwE;IAG1E;;;OAGG;IACH,mBAA6D;IAE3D;;OAEG;IACH,4BAAoE;IACpE;;OAEG;IACH,8BAAwE;IAG1E;;;OAGG;IACH,uBAA0B;IAgB1B;;OAEG;IACH,0BAIC;IACD;;OAEG;IACH,kBAAmC;IASnC;;;OAGG;IACH,+BAOC;IACD;;;OAGG;IACH,kCAqCC;IACD;;;OAGG;IACH,6BAYC;IAKH;;;;;OAKG;IACH,6BAgCC;IAED;;;;OAIG;IACH,+BAJW,OAAO,yBAAyB,EAAE,OAAO,aACzC,OAAO,oBAAoB,EAAE,SAAS,GACrC,OAAO,CAAC,YAAY,GAAC,IAAI,CAAC,CA4CrC;IAED;;;;;OAKG;IACH,oCA+BC;IAED;;;;;;OAMG;IACH,gCAwEC;IAED;;;;;OAKG;IACH,gBAJW,YAAY,cACZ,OAAO,cAAc,EAAE,UAAU,qBACjC,MAAY,IAAI,QA8B1B;IAED;;;;;;;;OAQG;IACH,wBAkBC;IAED;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,YACvC,YAAY,QAuCtB;CACF;6BAloB4B,uBAAuB"}
@@ -1,6 +1,12 @@
1
1
  /**
2
2
  * @module ol/render/webgl/VectorStyleRenderer
3
3
  */
4
+ import {buildExpression, newEvaluationContext} from '../../expr/cpu.js';
5
+ import {
6
+ BooleanType,
7
+ computeGeometryType,
8
+ newParsingContext,
9
+ } from '../../expr/expression.js';
4
10
  import {
5
11
  create as createTransform,
6
12
  makeInverse as makeInverseTransform,
@@ -120,8 +126,9 @@ class VectorStyleRenderer {
120
126
  * @param {import('../../style/flat.js').StyleVariables} variables Style variables
121
127
  * @param {import('../../webgl/Helper.js').default} helper Helper
122
128
  * @param {boolean} [enableHitDetection] Whether to enable the hit detection (needs compatible shader)
129
+ * @param {import("../../expr/expression.js").ExpressionValue} [filter] Optional filter expression
123
130
  */
124
- constructor(styleOrShaders, variables, helper, enableHitDetection) {
131
+ constructor(styleOrShaders, variables, helper, enableHitDetection, filter) {
125
132
  /**
126
133
  * @private
127
134
  * @type {import('../../webgl/Helper.js').default}
@@ -215,6 +222,15 @@ class VectorStyleRenderer {
215
222
  this.symbolFragmentShader_ = asShaders.builder.getSymbolFragmentShader();
216
223
  }
217
224
 
225
+ /**
226
+ * @type {function(import('../../Feature.js').FeatureLike): boolean}
227
+ * @private
228
+ */
229
+ this.featureFilter_ = null;
230
+ if (filter) {
231
+ this.featureFilter_ = this.computeFeatureFilter(filter);
232
+ }
233
+
218
234
  const hitDetectionAttributes = this.hitDetectionEnabled_
219
235
  ? {
220
236
  hitColor: {
@@ -321,14 +337,61 @@ class VectorStyleRenderer {
321
337
  this.setHelper(helper);
322
338
  }
323
339
 
340
+ /**
341
+ * Will apply the style filter when generating geometry batches (if it can be evaluated outside a map context)
342
+ * @param {import("../../expr/expression.js").ExpressionValue} filter Style filter
343
+ * @return {function(import('../../Feature.js').FeatureLike): boolean} Feature filter
344
+ * @private
345
+ */
346
+ computeFeatureFilter(filter) {
347
+ const parsingContext = newParsingContext();
348
+ /**
349
+ * @type {import('../../expr/cpu.js').ExpressionEvaluator}
350
+ */
351
+ let compiled;
352
+ try {
353
+ compiled = buildExpression(filter, BooleanType, parsingContext);
354
+ } catch {
355
+ // filter expression failed to compile for CPU: ignore it
356
+ return null;
357
+ }
358
+
359
+ // do not apply the filter if it depends on map state (e.g. zoom level) or any variable
360
+ if (parsingContext.mapState || parsingContext.variables.size > 0) {
361
+ return null;
362
+ }
363
+
364
+ const evalContext = newEvaluationContext();
365
+ return (feature) => {
366
+ evalContext.properties = feature.getPropertiesInternal();
367
+ if (parsingContext.featureId) {
368
+ const id = feature.getId();
369
+ if (id !== undefined) {
370
+ evalContext.featureId = id;
371
+ } else {
372
+ evalContext.featureId = null;
373
+ }
374
+ }
375
+ evalContext.geometryType = computeGeometryType(feature.getGeometry());
376
+ return /** @type {boolean} */ (compiled(evalContext));
377
+ };
378
+ }
379
+
324
380
  /**
325
381
  * @param {import('./MixedGeometryBatch.js').default} geometryBatch Geometry batch
326
382
  * @param {import("../../transform.js").Transform} transform Transform to apply to coordinates
327
- * @return {Promise<WebGLBuffers>} A promise resolving to WebGL buffers
383
+ * @return {Promise<WebGLBuffers|null>} A promise resolving to WebGL buffers; returns null if buffers are empty
328
384
  */
329
385
  async generateBuffers(geometryBatch, transform) {
386
+ let filteredBatch = geometryBatch;
387
+ if (this.featureFilter_) {
388
+ filteredBatch = filteredBatch.filter(this.featureFilter_);
389
+ if (filteredBatch.isEmpty()) {
390
+ return null;
391
+ }
392
+ }
330
393
  const renderInstructions = this.generateRenderInstructions_(
331
- geometryBatch,
394
+ filteredBatch,
332
395
  transform,
333
396
  );
334
397
  const [polygonBuffers, lineStringBuffers, pointBuffers] = await Promise.all(
@@ -1 +1 @@
1
- {"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;EAKE;;6BAGW,OAAO,2CAA2C,EAAE,SAAS;0BAG7D,OAAO,2CAA2C,EAAE,MAAM;;;;;;;;;WAMzD,OAAO,qBAAqB,EAAE,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,cAAc;;;;;;;;;;;;;;;;;AAVlG;;GAEG;AACH;;GAEG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EA0GjB;IA5FC;;;OAGG;IACH,6BAAwD;IAExD;;;OAGG;IACH,yBAAqB;IAErB;;OAEG;IACH,wBAAyB;IAEzB;;OAEG;IACH,wBAAoC;IAEpC;;;;;;OAMG;IACH,0BAA0C;IAE1C;;OAEG;IACH,mBAAwB;IACxB;;OAEG;IACH,sBAAsC;IACtC;;OAEG;IACH,iBAA4B;IAE5B;;;OAGG;IACH,oCAAoD;IAEpD;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,iBAAkB;IAIlB;;OAEG;IACH,eAAsC;IAEtC;;;OAGG;IACH,8BAAkC;IAElC;;;OAGG;IACH,0BAA6B;IAG/B;;;OAGG;IACH,4BAoCC;IAED;;;OAGG;IACH,sBAGC;IAED;;OAEG;IACH,yBAWC;IAED;;OAEG;IACH,mCAMC;IAoBD;;;;OAIG;IACH,kCAGC;IAED;;;OAGG;IACH,oCAGC;IAED;;;OAGG;IACH,mCAGC;IAED;;OAEG;IACH,kCAEC;IAED;;;OAGG;IACH,uBAsBC;IAED;;;;;OAKG;IACH,iCAJW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CA+BtB;IAwED;;;;;;;OAOG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,mBACjC,OAAO,cACP,MAAM,YACN,MAAM,cACN,MAAM,QAuChB;IA0CD;;;OAGG;IACH,wBAFW,OAAO,2CAA2C,EAAE,YAAY,QAkB1E;CAkBF;+BAliB8B,YAAY"}
1
+ {"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;EAKE;;6BAGW,OAAO,2CAA2C,EAAE,SAAS;0BAG7D,OAAO,2CAA2C,EAAE,MAAM;;;;;;;;;WAMzD,OAAO,qBAAqB,EAAE,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,cAAc;;;;;;;;;;;;;;;;;AAVlG;;GAEG;AACH;;GAEG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EA0GjB;IA5FC;;;OAGG;IACH,6BAAwD;IAExD;;;OAGG;IACH,yBAAqB;IAErB;;OAEG;IACH,wBAAyB;IAEzB;;OAEG;IACH,wBAAoC;IAEpC;;;;;;OAMG;IACH,0BAA0C;IAE1C;;OAEG;IACH,mBAAwB;IACxB;;OAEG;IACH,sBAAsC;IACtC;;OAEG;IACH,iBAA4B;IAE5B;;;OAGG;IACH,oCAAoD;IAEpD;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,iBAAkB;IAIlB;;OAEG;IACH,eAAsC;IAEtC;;;OAGG;IACH,8BAAkC;IAElC;;;OAGG;IACH,0BAA6B;IAG/B;;;OAGG;IACH,4BAoCC;IAED;;;OAGG;IACH,sBAGC;IAED;;OAEG;IACH,yBAYC;IAED;;OAEG;IACH,mCAMC;IAoBD;;;;OAIG;IACH,kCAGC;IAED;;;OAGG;IACH,oCAGC;IAED;;;OAGG;IACH,mCAGC;IAED;;OAEG;IACH,kCAEC;IAED;;;OAGG;IACH,uBAsBC;IAED;;;;;OAKG;IACH,iCAJW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CA+BtB;IAwED;;;;;;;OAOG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,mBACjC,OAAO,cACP,MAAM,YACN,MAAM,cACN,MAAM,QAuChB;IA0CD;;;OAGG;IACH,wBAFW,OAAO,2CAA2C,EAAE,YAAY,QAsB1E;CAoBF;+BAziB8B,YAAY"}