mobility-toolbox-js 2.0.0-beta.50 → 2.0.0-beta.52

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.
@@ -1 +1 @@
1
- {"version":3,"file":"RealtimeLayerMixin.d.ts","sourceRoot":"","sources":["../../../src/common/mixins/RealtimeLayerMixin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealtimeLayerMixin.d.ts","sourceRoot":"","sources":["../../../src/common/mixins/RealtimeLayerMixin.ts"],"names":[],"mappings":"AAOA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAiB,MAAM,WAAW,CAAC;AAGvD,OAAO,EACL,SAAS,EACT,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,oBAAY,yBAAyB,GAAG,cAAc,GAAG;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,yBAAyB,CAAC,EAAE,2BAA2B,EAAE,CAAC;IAC1D,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4BAA4B,CAAC,EAAE,CAC7B,IAAI,EAAE,MAAM,EACZ,yBAAyB,EAAE,2BAA2B,EAAE,KACrD,2BAA2B,CAAC;IACjC,2BAA2B,CAAC,EAAE,CAC5B,IAAI,EAAE,MAAM,EACZ,wBAAwB,EAAE,MAAM,EAAE,KAC/B,MAAM,CAAC;IAGZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,KAAK;IAEL;;OAEG;IACH,IAAI;IAEJ;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM;IAE9D;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,YAAY;IAE1B;;OAEG;IACH,kBAAkB;IAElB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;CAClD;AAED;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,CAAC;kBAiFnC,yBAAyB;;eA9EvC,OAAO;;;;;cAMR,YAAY;aAEb,WAAW;gBAER,cAAc;;;;;;;;;yBAkBL,MAAM;8BAED,MAAM;+BAEL,OAAO;;;;;;;;mCAgBH,2BAA2B,EAAE;kCAE9B,MAAM,EAAE;gBAE1B,OAAO;;;;uBAQC,SAAS;;6CAIY,MAAM,KAAK,2BAA2B;4CAEvC,MAAM,KAAK,MAAM;gDAGxC,SAAS,kBACJ,OAAO,KACpB,IAAI;gDAGI,SAAS,kBACJ,OAAO,KACpB,IAAI;QAyET;;;;WAIG;kCACuB,yBAAyB;yBAmKlC,MAAM;;;QAiEvB;;;WAGG;;;QAsBH;;;WAGG;;QAQH;;;;;;;;;;;;;WAaG;8CAEU,SAAS,kBACL,OAAO;QA8CxB;;;;;;;;;;;;;;WAcG;sCAEU,SAAS,GAAG,SAAS,iBACjB,OAAO,GAAG,SAAS;yBAwBnB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM;sBAmClD,YAAY;QAiB1B;;;;;WAKG;kCACsB,MAAM,GAAG,SAAS,GAAO,MAAM;QA0BxD;;;;WAIG;6BACkB,cAAc;QASnC;;;;;;;;WAQG;oEAGQ,0BAA0B;;;;;QAkCrC;;;;;WAKG;+BACoB,eAAe;;;;QAiBtC;;;;;;;;;;;WAWG;4DAGO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,QAClC,MAAM;QAad;;;;WAIG;;yCAa8B,kBAAkB,GAAG,eAAe;QAYrE;;;;;WAKG;;;QAgBH;;;;;WAKG;kCACuB,4BAA4B;QA+CtD;;;;;;WAMG;wCAC6B,4BAA4B;QAO5D;;;;;;WAMG;iCAES,OAAO,EAAE,SACZ,gBAAgB;QAgBzB;;;;;;WAMG;iCAES,OAAO,EAAE,SACZ,gBAAgB;;MAkB5B;AAED,eAAe,kBAAkB,CAAC"}
@@ -344,7 +344,7 @@ function RealtimeLayerMixin(Base) {
344
344
  return true;
345
345
  }
346
346
  // console.time('render');
347
- this.renderState = renderTrajectories(this.canvas, trajectories, this.style, Object.assign(Object.assign({}, viewState), { pixelRatio: this.pixelRatio || 1, time }), Object.assign({ noInterpolate: (viewState.zoom || 0) < this.minZoomInterpolation
347
+ this.renderState = renderTrajectories(this.canvas, trajectories, this.style, Object.assign(Object.assign({}, viewState), { pixelRatio: this.pixelRatio || 1, time }), Object.assign({ filter: this.filter, noInterpolate: (viewState.zoom || 0) < this.minZoomInterpolation
348
348
  ? true
349
349
  : noInterpolate, hoverVehicleId: this.hoverVehicleId, selectedVehicleId: this.selectedVehicleId }, this.styleOptions));
350
350
  // console.timeEnd('render');
@@ -3,7 +3,7 @@ import { RealtimeTrajectory } from '../../types';
3
3
  * Return a filter functions based on some parameters of a vehicle.
4
4
  *
5
5
  * @param {string|Array<string>} line - A list of vehicle's name to filter. Names can be separated by a comma. Ex: 'S1,S2,S3'
6
- * @param {string|Array<string} route - A list of vehicle's route (contained in routeIdentifier property) to filter. Indentifiers can be separated by a comma. Ex: 'id1,id2,id3'
6
+ * @param {string|Array<string} route - A list of vehicle's route (contained in route_identifier property) to filter. Indentifiers can be separated by a comma. Ex: 'id1,id2,id3'
7
7
  * @param {string|Array<string} operator A list of vehicle's operator to filter. Operators can be separated by a comma. Ex: 'SBB,DB'
8
8
  * @param {Regexp} regexLine - A regex aplly of vehcile's name.
9
9
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"createTrackerFilters.d.ts","sourceRoot":"","sources":["../../../src/common/utils/createTrackerFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD;;;;;;;;GAQG;AACH,QAAA,MAAM,aAAa,SACX,MAAM,GAAG,MAAM,EAAE,SAChB,MAAM,GAAG,MAAM,EAAE,YACd,MAAM,GAAG,MAAM,EAAE,aAChB,MAAM,GAAG,MAAM,EAAE,mBACb,kBAAkB,KAAK,OAAO,QA2E9C,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"createTrackerFilters.d.ts","sourceRoot":"","sources":["../../../src/common/utils/createTrackerFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD;;;;;;;;GAQG;AACH,QAAA,MAAM,aAAa,SACX,MAAM,GAAG,MAAM,EAAE,SAChB,MAAM,GAAG,MAAM,EAAE,YACd,MAAM,GAAG,MAAM,EAAE,aAChB,MAAM,GAAG,MAAM,EAAE,mBACb,kBAAkB,KAAK,OAAO,QA8E9C,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Return a filter functions based on some parameters of a vehicle.
3
3
  *
4
4
  * @param {string|Array<string>} line - A list of vehicle's name to filter. Names can be separated by a comma. Ex: 'S1,S2,S3'
5
- * @param {string|Array<string} route - A list of vehicle's route (contained in routeIdentifier property) to filter. Indentifiers can be separated by a comma. Ex: 'id1,id2,id3'
5
+ * @param {string|Array<string} route - A list of vehicle's route (contained in route_identifier property) to filter. Indentifiers can be separated by a comma. Ex: 'id1,id2,id3'
6
6
  * @param {string|Array<string} operator A list of vehicle's operator to filter. Operators can be separated by a comma. Ex: 'SBB,DB'
7
7
  * @param {Regexp} regexLine - A regex aplly of vehcile's name.
8
8
  * @private
@@ -42,14 +42,21 @@ const createFilters = (line, route, operator, regexLine) => {
42
42
  const routes = typeof route === 'string' ? route.split(',') : route;
43
43
  const routeList = routes.map((item) => parseInt(item, 10));
44
44
  const routeFilter = (item) => {
45
- const routeId = parseInt(item.properties.routeIdentifier.split('.')[0], 10);
45
+ const routeIdentifier = item.properties.route_identifier ||
46
+ item.properties.routeIdentifier ||
47
+ '';
48
+ const routeId = parseInt(routeIdentifier.split('.')[0], 10);
46
49
  return routeList.includes(routeId);
47
50
  };
48
51
  filterList.push(routeFilter);
49
52
  }
50
53
  if (operator) {
51
54
  const operatorList = typeof operator === 'string' ? [operator] : operator;
52
- const operatorFilter = (item) => operatorList.some((op) => new RegExp(op, 'i').test(item.properties.operator || ''));
55
+ const operatorFilter = (item) => operatorList.some((op) => {
56
+ // operaotr is the old property tenant is the new one
57
+ const tenant = item.properties.operator || item.properties.tenant || '';
58
+ return new RegExp(op, 'i').test(tenant);
59
+ });
53
60
  filterList.push(operatorFilter);
54
61
  }
55
62
  if (!filterList.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"renderTrajectories.d.ts","sourceRoot":"","sources":["../../../src/common/utils/renderTrajectories.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,kBAAkB,WACd,SAAS,gBACH,oBAAoB,SAC3B,qBAAqB,aACjB,SAAS,WACX,oBAAoB,KAC5B,mBAwKF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"renderTrajectories.d.ts","sourceRoot":"","sources":["../../../src/common/utils/renderTrajectories.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,kBAAkB,WACd,SAAS,gBACH,oBAAoB,SAC3B,qBAAqB,aACjB,SAAS,WACX,oBAAoB,KAC5B,mBAmLF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -22,7 +22,7 @@ const renderTrajectories = (canvas, trajectories, style, viewState, options) =>
22
22
  if (!resolution || !center) {
23
23
  return { renderedTrajectories: [] };
24
24
  }
25
- const { noInterpolate = false, hoverVehicleId, selectedVehicleId } = options;
25
+ const { noInterpolate = false, hoverVehicleId, selectedVehicleId, filter, } = options;
26
26
  const context = canvas.getContext('2d');
27
27
  context === null || context === void 0 ? void 0 : context.clearRect(0, 0, canvas.width, canvas.height);
28
28
  const [width, height] = size;
@@ -46,6 +46,11 @@ const renderTrajectories = (canvas, trajectories, style, viewState, options) =>
46
46
  const renderedTrajectories = [];
47
47
  for (let i = trajectories.length - 1; i >= 0; i -= 1) {
48
48
  const trajectory = trajectories[i];
49
+ // Filter out trajectories
50
+ if (filter && !filter(trajectory)) {
51
+ // eslint-disable-next-line no-continue
52
+ continue;
53
+ }
49
54
  // We simplify the trajectory object
50
55
  const { train_id: id, timeOffset } = trajectory.properties;
51
56
  // We set the rotation and the timeFraction of the trajectory (used by tralis).
package/mbt.js CHANGED
@@ -34620,14 +34620,18 @@ uniform ${i3} ${o3} u_${a3};
34620
34620
  const routes = typeof route === "string" ? route.split(",") : route;
34621
34621
  const routeList = routes.map((item) => parseInt(item, 10));
34622
34622
  const routeFilter = (item) => {
34623
- const routeId = parseInt(item.properties.routeIdentifier.split(".")[0], 10);
34623
+ const routeIdentifier = item.properties.route_identifier || item.properties.routeIdentifier || "";
34624
+ const routeId = parseInt(routeIdentifier.split(".")[0], 10);
34624
34625
  return routeList.includes(routeId);
34625
34626
  };
34626
34627
  filterList.push(routeFilter);
34627
34628
  }
34628
34629
  if (operator) {
34629
34630
  const operatorList = typeof operator === "string" ? [operator] : operator;
34630
- const operatorFilter = (item) => operatorList.some((op) => new RegExp(op, "i").test(item.properties.operator || ""));
34631
+ const operatorFilter = (item) => operatorList.some((op) => {
34632
+ const tenant = item.properties.operator || item.properties.tenant || "";
34633
+ return new RegExp(op, "i").test(tenant);
34634
+ });
34631
34635
  filterList.push(operatorFilter);
34632
34636
  }
34633
34637
  if (!filterList.length) {
@@ -34921,7 +34925,12 @@ uniform ${i3} ${o3} u_${a3};
34921
34925
  if (!resolution || !center) {
34922
34926
  return { renderedTrajectories: [] };
34923
34927
  }
34924
- const { noInterpolate = false, hoverVehicleId, selectedVehicleId } = options;
34928
+ const {
34929
+ noInterpolate = false,
34930
+ hoverVehicleId,
34931
+ selectedVehicleId,
34932
+ filter
34933
+ } = options;
34925
34934
  const context = canvas2.getContext("2d");
34926
34935
  context?.clearRect(0, 0, canvas2.width, canvas2.height);
34927
34936
  const [width, height] = size;
@@ -34944,6 +34953,9 @@ uniform ${i3} ${o3} u_${a3};
34944
34953
  const renderedTrajectories = [];
34945
34954
  for (let i = trajectories.length - 1; i >= 0; i -= 1) {
34946
34955
  const trajectory = trajectories[i];
34956
+ if (filter && !filter(trajectory)) {
34957
+ continue;
34958
+ }
34947
34959
  const { train_id: id, timeOffset } = trajectory.properties;
34948
34960
  const { coord, rotation: rotationIcon } = getVehiclePosition_default(time - (timeOffset || 0), trajectory, noInterpolate);
34949
34961
  trajectories[i].properties.coordinate = coord;
@@ -49403,6 +49415,7 @@ uniform ${i3} ${o3} u_${a3};
49403
49415
  pixelRatio: this.pixelRatio || 1,
49404
49416
  time
49405
49417
  }, {
49418
+ filter: this.filter,
49406
49419
  noInterpolate: (viewState.zoom || 0) < this.minZoomInterpolation ? true : noInterpolate,
49407
49420
  hoverVehicleId: this.hoverVehicleId,
49408
49421
  selectedVehicleId: this.selectedVehicleId,