@iapps/d2-web-sdk 1.1.9 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iapps/d2-web-sdk",
3
- "version": "1.1.9",
3
+ "version": "1.1.12",
4
4
  "dependencies": {
5
5
  "axios": "^1.8.1",
6
6
  "date-fns": "^4.1.0",
@@ -29,6 +29,7 @@ export declare class ProgramRuleEngine {
29
29
  setDataValues(dataValues: Record<string, unknown>): this;
30
30
  execute(options?: ExecuteOptions): IMetadataRuleAction[];
31
31
  /** Replace {var} with safe JS literals + resolve d2: functions */
32
+ /** Replace placeholders with safe JS literals + resolve d2: functions */
32
33
  private prepareExpression;
33
34
  private safeEvalBoolean;
34
35
  private safeEvalAny;
@@ -150,21 +150,22 @@ class ProgramRuleEngine {
150
150
  // });
151
151
  }
152
152
  /** Replace {var} with safe JS literals + resolve d2: functions */
153
+ /** Replace placeholders with safe JS literals + resolve d2: functions */
153
154
  prepareExpression(expression) {
154
155
  let exp = expression !== null && expression !== void 0 ? expression : '';
155
- // Replace {key} placeholders
156
- exp = exp.replace(/\{([^}]+)\}/g, (_m, keyRaw) => {
156
+ // Replace DHIS2 placeholders:
157
+ // A{attr} V{var} #{de} {plain}
158
+ exp = exp.replace(/(?:A|V|#)?\{([^}]+)\}/g, (_m, keyRaw) => {
157
159
  const key = String(keyRaw).trim();
158
160
  const val = this.dataValues[key];
159
- // Decide how to treat missing values:
160
- // In DHIS2 rules, missing often behaves like empty string
161
+ // missing behaves like empty string (DHIS2-ish)
161
162
  if (val === undefined)
162
163
  return "''";
163
164
  return toJsLiteral(val);
164
165
  });
165
166
  // Resolve d2: functions (after placeholders are resolved)
166
167
  if (exp.includes('d2:')) {
167
- exp = (0, run_d2_expression_util_1.dhisD2Functions)(exp, {}); // your util (fix its bugs below)
168
+ exp = (0, run_d2_expression_util_1.dhisD2Functions)(exp, {});
168
169
  }
169
170
  return exp;
170
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"program-rule.engine.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/program-rule.engine.ts"],"names":[],"mappings":";AAAA,6CAA6C;AAC7C,yDAAyD;AACzD,wDAAwD;;;AAExD,oCAAoC;AACpC,6CAA6C;AAC7C,qCAAqC;AAErC,oDAAoD;AACpD,mCAAmC;AACnC,mBAAmB;AACnB,0CAA0C;AAE1C,6BAA6B;AAC7B,0BAA0B;AAC1B,mBAAmB;AACnB,MAAM;AAEN,yDAAyD;AACzD,4DAA4D;AAE5D,8EAA8E;AAC9E,mBAAmB;AACnB,MAAM;AAEN,0EAA0E;AAC1E,uDAAuD;AACvD,YAAY;AACZ,wDAAwD;AACxD,+CAA+C;AAC/C,yCAAyC;AACzC,wCAAwC;AACxC,aAAa;AACb,YAAY;AAEZ,4CAA4C;AAC5C,4DAA4D;AAC5D,UAAU;AACV,2BAA2B;AAC3B,gEAAgE;AAChE,0BAA0B;AAC1B,QAAQ;AAER,gEAAgE;AAChE,MAAM;AAEN,uBAAuB;AACvB,sBAAsB;AACtB,2CAA2C;AAC3C,uBAAuB;AACvB,uBAAuB;AACvB,YAAY;AACZ,oDAAoD;AAEpD,0DAA0D;AAC1D,mDAAmD;AACnD,2CAA2C;AAC3C,0CAA0C;AAC1C,eAAe;AACf,cAAc;AAEd,+CAA+C;AAC/C,gEAAgE;AAChE,YAAY;AAEZ,yCAAyC;AACzC,gBAAgB;AAChB,oDAAoD;AACpD,wBAAwB;AACxB,eAAe;AACf,YAAY;AAEZ,iFAAiF;AACjF,6EAA6E;AAE7E,8BAA8B;AAC9B,2CAA2C;AAC3C,mDAAmD;AACnD,iDAAiD;AACjD,iBAAiB;AACjB,cAAc;AACd,qBAAqB;AACrB,yBAAyB;AACzB,4BAA4B;AAC5B,0BAA0B;AAC1B,eAAe;AACf,cAAc;AACd,WAAW;AACX,SAAS;AACT,MAAM;AACN,IAAI;AAEJ,uCAAkC;AAClC,2EAAiE;AAwBjE,MAAa,iBAAiB;IAA9B;QACU,UAAK,GAAW,EAAE,CAAC;QACnB,eAAU,GAA4B,EAAE,CAAC;IAkInD,CAAC;IAhIC,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,UAAmC;QAC/C,MAAM,WAAW,GAAG,IAAA,iBAAM,EAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,mCAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,KAAE,YAAY,EAAE,WAAW,GAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,UAA0B,EAAE;;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC;QACtD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC;QACtD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAE9B,MAAM,GAAG,GAA0B,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;QAEvD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,MAAM,OAAO,GAAG,CAAC,MAAA,IAAI,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAErD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAEnD,KAAK,MAAM,MAAM,IAAI,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAEtB,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBAErD,IAAI,aAAa,IAAI,CAAC,SAAS;oBAAE,SAAS;gBAE1C,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAE5D,IAAI,YAAY,GAAQ,SAAS,CAAC;gBAClC,IAAI,SAAS,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CACjC,MAAM,CAAC,MAAA,MAAM,CAAC,YAAY,mCAAI,EAAE,CAAC,CAClC,CAAC;oBACF,+CAA+C;oBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACtC,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtD,CAAC;gBAED,MAAM,MAAM,+DACP,MAAM,KACT,UAAU,KACP,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACjD,CAAC,KAAK;oBACP,CAAC,CAAC;wBACE,OAAO,EAAE;4BACP,YAAY,EAAE,OAAO;4BACrB,iBAAiB,EAAE,YAAY;4BAC/B,MAAM,EAAE,OAAO,CAAC,EAAE;4BAClB,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;4BACjD,SAAS;yBACV;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC,CACR,CAAC;gBAEF,kCAAkC;gBAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC3B,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAEnD,uEAAuE;QAEvE,8CAA8C;QAC9C,yEAAyE;QACzE,4CAA4C;QAC5C,MAAM;IACR,CAAC;IAED,kEAAkE;IAC1D,iBAAiB,CAAC,UAAkB;QAC1C,IAAI,GAAG,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC;QAE3B,6BAA6B;QAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;YAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,GAAG,GAAI,IAAI,CAAC,UAAkB,CAAC,GAAG,CAAC,CAAC;YAE1C,sCAAsC;YACtC,0DAA0D;YAC1D,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YAEnC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,GAAG,IAAA,wCAAe,EAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,iCAAiC;QACnE,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,eAAe,CACrB,UAAkB;QAElB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,GAAG,CAAC,EAAE;YACX,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;YAClC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAEO,WAAW,CACjB,UAAkB;;QAElB,IAAI,CAAC;YACH,8DAA8D;YAC9D,mDAAmD;YACnD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,yBAAyB,UAAU,IAAI,CAAC,CAAC;YACjE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,mCAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;CACF;AApID,8CAoIC;AAED,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAEtE,qDAAqD;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,qCAAqC;IACrC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,IAAI,OAAO,GAAG,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"program-rule.engine.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/program-rule.engine.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Parses a coordinate value into a [longitude, latitude] pair of strings.
3
3
  *
4
- * Supported string inputs:
5
- * - "[39.319364,-6.069623]" // JSON-style
4
+ * Supported inputs:
5
+ * - "[39.319364,-6.069623]" // JSON-style string
6
6
  * - "39.319364,-6.069623" // comma-separated
7
7
  * - "39.319364 -6.069623" // space-separated
8
+ * - { type: "Point", coordinates: [39.192299, -6.164641] } // GeoJSON Point
8
9
  *
9
10
  * Returns:
10
11
  * - ["39.319364", "-6.069623"] when valid (lon, lat as strings)
@@ -14,4 +15,4 @@
14
15
  * - Follows GeoJSON convention: [longitude, latitude]
15
16
  * - Valid ranges: lon ∈ [-180, 180], lat ∈ [-90, 90]
16
17
  */
17
- export declare function parseCoordinates(value?: string | null): string[] | null;
18
+ export declare function parseCoordinates(input?: unknown | null): string[] | null;
@@ -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 string inputs:
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(value) {
21
- if (!value)
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 validateAndNormalizePair = (parts) => {
27
- if (parts.length !== 2)
30
+ const normalizeLonLatPair = (coordinateParts) => {
31
+ if (!coordinateParts || coordinateParts.length !== 2)
28
32
  return null;
29
- const lonText = parts[0].trim();
30
- const latText = parts[1].trim();
31
- if (!lonText || !latText)
33
+ const longitudeText = String(coordinateParts[0]).trim();
34
+ const latitudeText = String(coordinateParts[1]).trim();
35
+ if (!longitudeText || !latitudeText)
32
36
  return null;
33
- const lonNum = Number(lonText);
34
- const latNum = Number(latText);
35
- if (!Number.isFinite(lonNum) || !Number.isFinite(latNum)) {
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 isLonValid = lonNum >= -180 && lonNum <= 180;
39
- const isLatValid = latNum >= -90 && latNum <= 90;
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
- if (trimmed.startsWith('[') && trimmed.endsWith(']')) {
46
- const inner = trimmed.slice(1, -1);
47
- const parts = inner.split(',');
48
- const result = validateAndNormalizePair(parts);
49
- if (result)
50
- return result;
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
- if (trimmed.includes(',')) {
53
- const parts = trimmed.split(',');
54
- const result = validateAndNormalizePair(parts);
55
- if (result)
56
- return result;
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
- const spaceParts = trimmed.split(/\s+/);
59
- const result = validateAndNormalizePair(spaceParts);
60
- if (result)
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":";;AAgBA,4CAiDC;AAjED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,gBAAgB,CAAC,KAAqB;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,wBAAwB,GAAG,CAAC,KAAe,EAAmB,EAAE;QAClE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEhC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC;QAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC9B,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,OAAO,IAAI,CAAC;AAChB,CAAC"}
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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"}