@iapps/d2-web-sdk 1.1.8 → 1.1.12
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/package.json +1 -1
- package/src/lib/modules/engine/program-rule/program-rule.engine.d.ts +34 -5
- package/src/lib/modules/engine/program-rule/program-rule.engine.js +184 -47
- package/src/lib/modules/engine/program-rule/program-rule.engine.js.map +1 -1
- package/src/lib/modules/engine/program-rule/utils/d2-functions.util.d.ts +6 -2
- package/src/lib/modules/engine/program-rule/utils/d2-functions.util.js +750 -293
- package/src/lib/modules/engine/program-rule/utils/d2-functions.util.js.map +1 -1
- package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.d.ts +12 -4
- package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.js +363 -67
- package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.js.map +1 -1
- package/src/lib/modules/tracker/helpers/form.helper.d.ts +4 -3
- package/src/lib/modules/tracker/helpers/form.helper.js +50 -37
- package/src/lib/modules/tracker/helpers/form.helper.js.map +1 -1
- package/src/lib/shared/models/pager.model.d.ts +5 -0
- package/src/lib/shared/models/pager.model.js +48 -8
- package/src/lib/shared/models/pager.model.js.map +1 -1
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseCoordinates = parseCoordinates;
|
|
4
|
+
function isGeoJsonPointLike(candidate) {
|
|
5
|
+
return (!!candidate &&
|
|
6
|
+
typeof candidate === 'object' &&
|
|
7
|
+
candidate.type === 'Point' &&
|
|
8
|
+
Array.isArray(candidate.coordinates));
|
|
9
|
+
}
|
|
4
10
|
/**
|
|
5
11
|
* Parses a coordinate value into a [longitude, latitude] pair of strings.
|
|
6
12
|
*
|
|
7
|
-
* Supported
|
|
8
|
-
* - "[39.319364,-6.069623]" // JSON-style
|
|
13
|
+
* Supported inputs:
|
|
14
|
+
* - "[39.319364,-6.069623]" // JSON-style string
|
|
9
15
|
* - "39.319364,-6.069623" // comma-separated
|
|
10
16
|
* - "39.319364 -6.069623" // space-separated
|
|
17
|
+
* - { type: "Point", coordinates: [39.192299, -6.164641] } // GeoJSON Point
|
|
11
18
|
*
|
|
12
19
|
* Returns:
|
|
13
20
|
* - ["39.319364", "-6.069623"] when valid (lon, lat as strings)
|
|
@@ -17,48 +24,54 @@ exports.parseCoordinates = parseCoordinates;
|
|
|
17
24
|
* - Follows GeoJSON convention: [longitude, latitude]
|
|
18
25
|
* - Valid ranges: lon ∈ [-180, 180], lat ∈ [-90, 90]
|
|
19
26
|
*/
|
|
20
|
-
function parseCoordinates(
|
|
21
|
-
if (
|
|
22
|
-
return null;
|
|
23
|
-
const trimmed = value.trim();
|
|
24
|
-
if (!trimmed)
|
|
27
|
+
function parseCoordinates(input) {
|
|
28
|
+
if (input == null)
|
|
25
29
|
return null;
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
30
|
+
const normalizeLonLatPair = (coordinateParts) => {
|
|
31
|
+
if (!coordinateParts || coordinateParts.length !== 2)
|
|
28
32
|
return null;
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
if (!
|
|
33
|
+
const longitudeText = String(coordinateParts[0]).trim();
|
|
34
|
+
const latitudeText = String(coordinateParts[1]).trim();
|
|
35
|
+
if (!longitudeText || !latitudeText)
|
|
32
36
|
return null;
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
if (!Number.isFinite(
|
|
37
|
+
const longitude = Number(longitudeText);
|
|
38
|
+
const latitude = Number(latitudeText);
|
|
39
|
+
if (!Number.isFinite(longitude) || !Number.isFinite(latitude))
|
|
36
40
|
return null;
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
if (!isLonValid || !isLatValid) {
|
|
41
|
+
const isLongitudeValid = longitude >= -180 && longitude <= 180;
|
|
42
|
+
const isLatitudeValid = latitude >= -90 && latitude <= 90;
|
|
43
|
+
if (!isLongitudeValid || !isLatitudeValid)
|
|
41
44
|
return null;
|
|
42
|
-
|
|
43
|
-
return [lonText, latText];
|
|
45
|
+
return [longitudeText, latitudeText];
|
|
44
46
|
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
// GeoJSON Point support
|
|
48
|
+
if (isGeoJsonPointLike(input)) {
|
|
49
|
+
const geoJsonCoordinates = input.coordinates;
|
|
50
|
+
return normalizeLonLatPair(geoJsonCoordinates);
|
|
51
|
+
}
|
|
52
|
+
// String-based input handling
|
|
53
|
+
if (typeof input !== 'string')
|
|
54
|
+
return null;
|
|
55
|
+
const trimmedInput = input.trim();
|
|
56
|
+
if (!trimmedInput)
|
|
57
|
+
return null;
|
|
58
|
+
// "[lon,lat]" format
|
|
59
|
+
if (trimmedInput.startsWith('[') && trimmedInput.endsWith(']')) {
|
|
60
|
+
const bracketContent = trimmedInput.slice(1, -1);
|
|
61
|
+
const commaSeparatedValues = bracketContent
|
|
62
|
+
.split(',')
|
|
63
|
+
.map((value) => value.trim());
|
|
64
|
+
return normalizeLonLatPair(commaSeparatedValues);
|
|
51
65
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
66
|
+
// "lon,lat" format
|
|
67
|
+
if (trimmedInput.includes(',')) {
|
|
68
|
+
const commaSeparatedValues = trimmedInput
|
|
69
|
+
.split(',')
|
|
70
|
+
.map((value) => value.trim());
|
|
71
|
+
return normalizeLonLatPair(commaSeparatedValues);
|
|
57
72
|
}
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
return result;
|
|
62
|
-
return null;
|
|
73
|
+
// "lon lat" format
|
|
74
|
+
const spaceSeparatedValues = trimmedInput.split(/\s+/);
|
|
75
|
+
return normalizeLonLatPair(spaceSeparatedValues);
|
|
63
76
|
}
|
|
64
77
|
//# sourceMappingURL=form.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.helper.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/tracker/helpers/form.helper.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"form.helper.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/tracker/helpers/form.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,10 @@ export declare class Pager {
|
|
|
8
8
|
index?: number;
|
|
9
9
|
pageOffset?: number;
|
|
10
10
|
constructor(pager?: Partial<Pager>);
|
|
11
|
+
/**
|
|
12
|
+
* Backward + forward compatible:
|
|
13
|
+
* - legacy: skipPaging=true/false
|
|
14
|
+
* - updated: paging=false/true + page/pageSize
|
|
15
|
+
*/
|
|
11
16
|
getPagingQueryParams(): string;
|
|
12
17
|
}
|
|
@@ -1,30 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// export class Pager {
|
|
3
|
+
// pageSize: number;
|
|
4
|
+
// pageCount?: number;
|
|
5
|
+
// page: number;
|
|
6
|
+
// paging: boolean;
|
|
7
|
+
// total?: number;
|
|
8
|
+
// index?: number;
|
|
9
|
+
// pageOffset?: number;
|
|
2
10
|
var _Pager_instances, _Pager_getIndex, _Pager_getOffset;
|
|
3
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
12
|
exports.Pager = void 0;
|
|
5
13
|
const tslib_1 = require("tslib");
|
|
14
|
+
// constructor(pager?: Partial<Pager>) {
|
|
15
|
+
// this.pageSize = pager?.pageSize || 50;
|
|
16
|
+
// this.page = pager?.page || 1;
|
|
17
|
+
// this.paging = pager?.paging ?? true;
|
|
18
|
+
// this.total = pager?.total;
|
|
19
|
+
// this.index = this.#getIndex();
|
|
20
|
+
// this.pageCount = pager?.pageCount;
|
|
21
|
+
// this.pageOffset = this.#getOffset();
|
|
22
|
+
// }
|
|
23
|
+
// #getIndex(): number {
|
|
24
|
+
// return this.page, this.pageSize * (this.page - 1);
|
|
25
|
+
// }
|
|
26
|
+
// #getOffset(): number {
|
|
27
|
+
// return (this.page - 1) * this.pageSize;
|
|
28
|
+
// }
|
|
29
|
+
// getPagingQueryParams(): string {
|
|
30
|
+
// if (!this.paging) {
|
|
31
|
+
// return 'skipPaging=true&paging=false';
|
|
32
|
+
// }
|
|
33
|
+
// return `page=${this.page || 1}&pageSize=${
|
|
34
|
+
// this.pageSize || 50
|
|
35
|
+
// }&skipPaging=false&totalPages=true`;
|
|
36
|
+
// }
|
|
37
|
+
// }
|
|
6
38
|
class Pager {
|
|
7
39
|
constructor(pager) {
|
|
8
|
-
var _a;
|
|
40
|
+
var _a, _b, _c;
|
|
9
41
|
_Pager_instances.add(this);
|
|
10
|
-
this.pageSize = (pager === null || pager === void 0 ? void 0 : pager.pageSize)
|
|
11
|
-
this.page = (pager === null || pager === void 0 ? void 0 : pager.page)
|
|
12
|
-
this.paging = (
|
|
42
|
+
this.pageSize = (_a = pager === null || pager === void 0 ? void 0 : pager.pageSize) !== null && _a !== void 0 ? _a : 50;
|
|
43
|
+
this.page = (_b = pager === null || pager === void 0 ? void 0 : pager.page) !== null && _b !== void 0 ? _b : 1;
|
|
44
|
+
this.paging = (_c = pager === null || pager === void 0 ? void 0 : pager.paging) !== null && _c !== void 0 ? _c : true;
|
|
13
45
|
this.total = pager === null || pager === void 0 ? void 0 : pager.total;
|
|
14
|
-
this.index = tslib_1.__classPrivateFieldGet(this, _Pager_instances, "m", _Pager_getIndex).call(this);
|
|
15
46
|
this.pageCount = pager === null || pager === void 0 ? void 0 : pager.pageCount;
|
|
47
|
+
this.index = tslib_1.__classPrivateFieldGet(this, _Pager_instances, "m", _Pager_getIndex).call(this);
|
|
16
48
|
this.pageOffset = tslib_1.__classPrivateFieldGet(this, _Pager_instances, "m", _Pager_getOffset).call(this);
|
|
17
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Backward + forward compatible:
|
|
52
|
+
* - legacy: skipPaging=true/false
|
|
53
|
+
* - updated: paging=false/true + page/pageSize
|
|
54
|
+
*/
|
|
18
55
|
getPagingQueryParams() {
|
|
56
|
+
var _a, _b;
|
|
19
57
|
if (!this.paging) {
|
|
20
|
-
return 'skipPaging=true';
|
|
58
|
+
return 'paging=false&skipPaging=true';
|
|
21
59
|
}
|
|
22
|
-
|
|
60
|
+
const page = (_a = this.page) !== null && _a !== void 0 ? _a : 1;
|
|
61
|
+
const pageSize = (_b = this.pageSize) !== null && _b !== void 0 ? _b : 50;
|
|
62
|
+
return `paging=true&page=${page}&pageSize=${pageSize}&skipPaging=false&totalPages=true`;
|
|
23
63
|
}
|
|
24
64
|
}
|
|
25
65
|
exports.Pager = Pager;
|
|
26
66
|
_Pager_instances = new WeakSet(), _Pager_getIndex = function _Pager_getIndex() {
|
|
27
|
-
return this.
|
|
67
|
+
return this.pageSize * (this.page - 1);
|
|
28
68
|
}, _Pager_getOffset = function _Pager_getOffset() {
|
|
29
69
|
return (this.page - 1) * this.pageSize;
|
|
30
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pager.model.js","sourceRoot":"","sources":["../../../../../../../packages/dhis2-web-sdk/src/lib/shared/models/pager.model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pager.model.js","sourceRoot":"","sources":["../../../../../../../packages/dhis2-web-sdk/src/lib/shared/models/pager.model.ts"],"names":[],"mappings":";AAAA,uBAAuB;AACvB,sBAAsB;AACtB,wBAAwB;AACxB,kBAAkB;AAClB,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,yBAAyB;;;;;AAEzB,0CAA0C;AAC1C,6CAA6C;AAC7C,oCAAoC;AACpC,2CAA2C;AAC3C,iCAAiC;AACjC,qCAAqC;AACrC,yCAAyC;AACzC,2CAA2C;AAC3C,MAAM;AAEN,0BAA0B;AAC1B,yDAAyD;AACzD,MAAM;AAEN,2BAA2B;AAC3B,8CAA8C;AAC9C,MAAM;AAEN,qCAAqC;AAErC,0BAA0B;AAC1B,+CAA+C;AAC/C,QAAQ;AAER,iDAAiD;AACjD,4BAA4B;AAC5B,2CAA2C;AAC3C,MAAM;AACN,IAAI;AAEJ,MAAa,KAAK;IAShB,YAAY,KAAsB;;;QAChC,IAAI,CAAC,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,mCAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,mCAAI,IAAI,CAAC;QAEpC,IAAI,CAAC,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC;QAElC,IAAI,CAAC,KAAK,GAAG,+BAAA,IAAI,yCAAU,MAAd,IAAI,CAAY,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,+BAAA,IAAI,0CAAW,MAAf,IAAI,CAAa,CAAC;IACtC,CAAC;IAUD;;;;OAIG;IACH,oBAAoB;;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,8BAA8B,CAAC;QACxC,CAAC;QAED,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC;QAErC,OAAO,oBAAoB,IAAI,aAAa,QAAQ,mCAAmC,CAAC;IAC1F,CAAC;CACF;AA5CD,sBA4CC;;IAtBG,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;IAGC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AACzC,CAAC"}
|