@dhis2/analytics 29.3.1 → 29.3.3

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.
@@ -82,9 +82,11 @@ const PeriodTransfer = ({
82
82
  } else {
83
83
  const allFixed = (0, _fixedPeriods.getFixedPeriodsOptions)(periodsSettings);
84
84
  const allRelative = (0, _relativePeriods.getRelativePeriodsOptions)();
85
+ const v43PeriodTypes = [_index2.WEEKLYFRI, _index2.FYFEB, _index2.FYAUG, _index2.FYSEP];
86
+ const allExcludedPeriodTypes = [...excludedPeriodTypes, ...v43PeriodTypes];
85
87
  return {
86
- filteredFixedOptions: (0, _index2.filterPeriodTypesById)(allFixed, excludedPeriodTypes),
87
- filteredRelativeOptions: (0, _index2.filterPeriodTypesById)(allRelative, excludedPeriodTypes)
88
+ filteredFixedOptions: (0, _index2.filterPeriodTypesById)(allFixed, allExcludedPeriodTypes),
89
+ filteredRelativeOptions: (0, _index2.filterPeriodTypesById)(allRelative, allExcludedPeriodTypes)
88
90
  };
89
91
  }
90
92
  }, [supportsEnabledPeriodTypes, enabledPeriodTypesData, excludedPeriodTypes, periodsSettings]);
@@ -103,11 +105,11 @@ const PeriodTransfer = ({
103
105
  // use ".eraYear" rather than ".year" because in Ethiopian calendar, eraYear is what our users expect to see (for other calendars, it doesn't matter)
104
106
  // there is still a pending decision in Temporal regarding which era to use by default: https://github.com/js-temporal/temporal-polyfill/blob/9350ee7dd0d29f329fc097debf923a517c32f813/lib/calendar.ts#L1964
105
107
  const defaultFixedPeriodYear = now.eraYear || now.year;
106
- const fixedPeriodConfig = year => ({
108
+ const fixedPeriodConfig = (0, _react.useCallback)(year => ({
107
109
  offset: year - defaultFixedPeriodYear,
108
110
  filterFuturePeriods: false,
109
111
  reversePeriods: false
110
- });
112
+ }), [defaultFixedPeriodYear]);
111
113
  const [userPeriods, setUserPeriods] = (0, _react.useState)(null);
112
114
  const [isRelative, setIsRelative] = (0, _react.useState)(true);
113
115
  const [relativeFilter, setRelativeFilter] = (0, _react.useState)({
@@ -149,10 +151,13 @@ const PeriodTransfer = ({
149
151
  const opt = filteredRelativeOptions.find(o => o.id === effectiveRelativeFilterType);
150
152
  return (opt === null || opt === void 0 ? void 0 : opt.getPeriods()) || [];
151
153
  } else {
154
+ if (!/\d{4}/.test(fixedFilter.year)) {
155
+ return [];
156
+ }
152
157
  const opt = filteredFixedOptions.find(o => o.id === effectiveFixedFilterType);
153
158
  return (opt === null || opt === void 0 ? void 0 : opt.getPeriods(fixedPeriodConfig(Number(fixedFilter.year)))) || [];
154
159
  }
155
- }, [isRelative, effectiveRelativeFilterType, effectiveFixedFilterType, filteredRelativeOptions, filteredFixedOptions, fixedFilter.year]);
160
+ }, [isRelative, effectiveRelativeFilterType, effectiveFixedFilterType, filteredRelativeOptions, filteredFixedOptions, fixedFilter.year, fixedPeriodConfig]);
156
161
  const allPeriods = userPeriods !== null && userPeriods !== void 0 ? userPeriods : derivedPeriods;
157
162
  const isActive = value => {
158
163
  const item = selectedItems.find(item => item.id === value);
@@ -241,6 +241,7 @@ var _exportNames = {
241
241
  WEEKLY: true,
242
242
  WEEKLYWED: true,
243
243
  WEEKLYTHU: true,
244
+ WEEKLYFRI: true,
244
245
  WEEKLYSAT: true,
245
246
  WEEKLYSUN: true,
246
247
  WEEKS_THIS_YEAR: true,
@@ -252,10 +253,13 @@ var _exportNames = {
252
253
  SIXMONTHLYAPR: true,
253
254
  YEARLY: true,
254
255
  FINANCIAL: true,
255
- FYNOV: true,
256
- FYOCT: true,
257
- FYJUL: true,
256
+ FYFEB: true,
258
257
  FYAPR: true,
258
+ FYJUL: true,
259
+ FYAUG: true,
260
+ FYSEP: true,
261
+ FYOCT: true,
262
+ FYNOV: true,
259
263
  getRelativePeriodsOptionsById: true,
260
264
  getRelativePeriodsName: true,
261
265
  getRelativePeriodsDetails: true,
@@ -707,6 +711,18 @@ Object.defineProperty(exports, "FYAPR", {
707
711
  return _index12.FYAPR;
708
712
  }
709
713
  });
714
+ Object.defineProperty(exports, "FYAUG", {
715
+ enumerable: true,
716
+ get: function () {
717
+ return _index12.FYAUG;
718
+ }
719
+ });
720
+ Object.defineProperty(exports, "FYFEB", {
721
+ enumerable: true,
722
+ get: function () {
723
+ return _index12.FYFEB;
724
+ }
725
+ });
710
726
  Object.defineProperty(exports, "FYJUL", {
711
727
  enumerable: true,
712
728
  get: function () {
@@ -725,6 +741,12 @@ Object.defineProperty(exports, "FYOCT", {
725
741
  return _index12.FYOCT;
726
742
  }
727
743
  });
744
+ Object.defineProperty(exports, "FYSEP", {
745
+ enumerable: true,
746
+ get: function () {
747
+ return _index12.FYSEP;
748
+ }
749
+ });
728
750
  Object.defineProperty(exports, "FileMenu", {
729
751
  enumerable: true,
730
752
  get: function () {
@@ -1313,6 +1335,12 @@ Object.defineProperty(exports, "WEEKLY", {
1313
1335
  return _index12.WEEKLY;
1314
1336
  }
1315
1337
  });
1338
+ Object.defineProperty(exports, "WEEKLYFRI", {
1339
+ enumerable: true,
1340
+ get: function () {
1341
+ return _index12.WEEKLYFRI;
1342
+ }
1343
+ });
1316
1344
  Object.defineProperty(exports, "WEEKLYSAT", {
1317
1345
  enumerable: true,
1318
1346
  get: function () {
@@ -3,7 +3,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
3
3
  import { getNowInCalendar } from '@dhis2/multi-calendar-dates';
4
4
  import { IconInfo16, NoticeBox, TabBar, Tab, Transfer } from '@dhis2/ui';
5
5
  import PropTypes from 'prop-types';
6
- import React, { useRef, useState, useMemo } from 'react';
6
+ import React, { useCallback, useRef, useState, useMemo } from 'react';
7
7
  import PeriodIcon from '../../assets/DimensionItemIcons/PeriodIcon.js'; //TODO: Reimplement the icon.js
8
8
  import i18n from '../../locales/index.js';
9
9
  import { TRANSFER_HEIGHT, TRANSFER_OPTIONS_WIDTH, TRANSFER_SELECTED_WIDTH } from '../../modules/dimensionSelectorHelper.js';
@@ -13,7 +13,7 @@ import FixedPeriodFilter from './FixedPeriodFilter.js';
13
13
  import RelativePeriodFilter from './RelativePeriodFilter.js';
14
14
  import { applyDisplayLabelOverrides, applyFixedPeriodTypeDisplayLabels, filterEnabledFixedPeriodTypes, filterEnabledRelativePeriodTypes } from './utils/enabledPeriodTypes.js';
15
15
  import { getFixedPeriodsOptions } from './utils/fixedPeriods.js';
16
- import { MONTHLY, QUARTERLY, filterPeriodTypesById } from './utils/index.js';
16
+ import { FYFEB, FYAUG, FYSEP, MONTHLY, QUARTERLY, WEEKLYFRI, filterPeriodTypesById } from './utils/index.js';
17
17
  import { getRelativePeriodsOptions } from './utils/relativePeriods.js';
18
18
  const RightHeader = ({
19
19
  infoBoxMessage
@@ -74,9 +74,11 @@ const PeriodTransfer = ({
74
74
  } else {
75
75
  const allFixed = getFixedPeriodsOptions(periodsSettings);
76
76
  const allRelative = getRelativePeriodsOptions();
77
+ const v43PeriodTypes = [WEEKLYFRI, FYFEB, FYAUG, FYSEP];
78
+ const allExcludedPeriodTypes = [...excludedPeriodTypes, ...v43PeriodTypes];
77
79
  return {
78
- filteredFixedOptions: filterPeriodTypesById(allFixed, excludedPeriodTypes),
79
- filteredRelativeOptions: filterPeriodTypesById(allRelative, excludedPeriodTypes)
80
+ filteredFixedOptions: filterPeriodTypesById(allFixed, allExcludedPeriodTypes),
81
+ filteredRelativeOptions: filterPeriodTypesById(allRelative, allExcludedPeriodTypes)
80
82
  };
81
83
  }
82
84
  }, [supportsEnabledPeriodTypes, enabledPeriodTypesData, excludedPeriodTypes, periodsSettings]);
@@ -95,11 +97,11 @@ const PeriodTransfer = ({
95
97
  // use ".eraYear" rather than ".year" because in Ethiopian calendar, eraYear is what our users expect to see (for other calendars, it doesn't matter)
96
98
  // there is still a pending decision in Temporal regarding which era to use by default: https://github.com/js-temporal/temporal-polyfill/blob/9350ee7dd0d29f329fc097debf923a517c32f813/lib/calendar.ts#L1964
97
99
  const defaultFixedPeriodYear = now.eraYear || now.year;
98
- const fixedPeriodConfig = year => ({
100
+ const fixedPeriodConfig = useCallback(year => ({
99
101
  offset: year - defaultFixedPeriodYear,
100
102
  filterFuturePeriods: false,
101
103
  reversePeriods: false
102
- });
104
+ }), [defaultFixedPeriodYear]);
103
105
  const [userPeriods, setUserPeriods] = useState(null);
104
106
  const [isRelative, setIsRelative] = useState(true);
105
107
  const [relativeFilter, setRelativeFilter] = useState({
@@ -141,10 +143,13 @@ const PeriodTransfer = ({
141
143
  const opt = filteredRelativeOptions.find(o => o.id === effectiveRelativeFilterType);
142
144
  return (opt === null || opt === void 0 ? void 0 : opt.getPeriods()) || [];
143
145
  } else {
146
+ if (!/\d{4}/.test(fixedFilter.year)) {
147
+ return [];
148
+ }
144
149
  const opt = filteredFixedOptions.find(o => o.id === effectiveFixedFilterType);
145
150
  return (opt === null || opt === void 0 ? void 0 : opt.getPeriods(fixedPeriodConfig(Number(fixedFilter.year)))) || [];
146
151
  }
147
- }, [isRelative, effectiveRelativeFilterType, effectiveFixedFilterType, filteredRelativeOptions, filteredFixedOptions, fixedFilter.year]);
152
+ }, [isRelative, effectiveRelativeFilterType, effectiveFixedFilterType, filteredRelativeOptions, filteredFixedOptions, fixedFilter.year, fixedPeriodConfig]);
148
153
  const allPeriods = userPeriods !== null && userPeriods !== void 0 ? userPeriods : derivedPeriods;
149
154
  const isActive = value => {
150
155
  const item = selectedItems.find(item => item.id === value);
package/build/es/index.js CHANGED
@@ -145,7 +145,7 @@ export { transformResponse as transformEventAggregateResponse } from './modules/
145
145
  export { COLOR_SET_DEFAULT, COLOR_SET_BASIC, COLOR_SET_EXTENDED, COLOR_SET_BRIGHT, COLOR_SET_DARK, COLOR_SET_GRAY, COLOR_SET_COLOR_BLIND, COLOR_SET_PATTERNS, colorSets } from './visualizations/util/colors/colorSets.js';
146
146
 
147
147
  // Utils: periods
148
- export { DAILY, WEEKLY, WEEKLYWED, WEEKLYTHU, WEEKLYSAT, WEEKLYSUN, WEEKS_THIS_YEAR, BIWEEKLY, MONTHLY, BIMONTHLY, QUARTERLY, SIXMONTHLY, SIXMONTHLYAPR, YEARLY, FINANCIAL, FYNOV, FYOCT, FYJUL, FYAPR } from './components/PeriodDimension/utils/index.js';
148
+ export { DAILY, WEEKLY, WEEKLYWED, WEEKLYTHU, WEEKLYFRI, WEEKLYSAT, WEEKLYSUN, WEEKS_THIS_YEAR, BIWEEKLY, MONTHLY, BIMONTHLY, QUARTERLY, SIXMONTHLY, SIXMONTHLYAPR, YEARLY, FINANCIAL, FYFEB, FYAPR, FYJUL, FYAUG, FYSEP, FYOCT, FYNOV } from './components/PeriodDimension/utils/index.js';
149
149
  export { getRelativePeriodsOptionsById, getRelativePeriodsName, getRelativePeriodsDetails } from './components/PeriodDimension/utils/relativePeriods.js';
150
150
  export { getFixedPeriodsOptionsById, PERIOD_TYPE_REGEX } from './components/PeriodDimension/utils/fixedPeriods.js';
151
151
  export { default as VisualizationOptions } from './components/Options/VisualizationOptions.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhis2/analytics",
3
- "version": "29.3.1",
3
+ "version": "29.3.3",
4
4
  "main": "./build/cjs/index.js",
5
5
  "module": "./build/es/index.js",
6
6
  "exports": {