@iapps/ng-dhis2-ui 1.0.1 → 1.0.2
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/esm2022/index.mjs +4 -1
- package/esm2022/lib/modules/header-bar/header-bar.component.mjs +7 -8
- package/esm2022/lib/modules/organisation-unit-selector/components/OrgUnitDimension.mjs +212 -0
- package/esm2022/lib/modules/organisation-unit-selector/components/index.mjs +6 -0
- package/esm2022/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.mjs +83 -0
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/index.mjs +6 -0
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.mjs +18 -0
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.mjs +27 -0
- package/esm2022/lib/modules/organisation-unit-selector/index.mjs +6 -0
- package/esm2022/lib/modules/organisation-unit-selector/models/index.mjs +5 -0
- package/esm2022/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.mjs +16 -0
- package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.component.mjs +78 -0
- package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.module.mjs +19 -0
- package/esm2022/lib/modules/period-selector/components/FixedPeriodFilter.mjs +44 -0
- package/esm2022/lib/modules/period-selector/components/PeriodDimension.mjs +41 -0
- package/esm2022/lib/modules/period-selector/components/PeriodTransfer.mjs +110 -0
- package/esm2022/lib/modules/period-selector/components/RelativePeriodFilter.mjs +28 -0
- package/esm2022/lib/modules/period-selector/components/utils/fixedPeriods.mjs +308 -0
- package/esm2022/lib/modules/period-selector/components/utils/index.mjs +5 -0
- package/esm2022/lib/modules/period-selector/components/utils/periodTypes.mjs +23 -0
- package/esm2022/lib/modules/period-selector/components/utils/relativePeriods.mjs +139 -0
- package/esm2022/lib/modules/period-selector/index.mjs +6 -0
- package/esm2022/lib/modules/period-selector/period-selector.component.mjs +66 -0
- package/esm2022/lib/modules/period-selector/period-selector.module.mjs +19 -0
- package/esm2022/lib/shared/assets/AssignedCategoriesIcon.mjs +12 -0
- package/esm2022/lib/shared/assets/DimensionItemIcons/PeriodIcon.mjs +4 -0
- package/esm2022/lib/shared/components/TransferOption.mjs +130 -0
- package/esm2022/lib/shared/components/index.mjs +2 -1
- package/esm2022/lib/shared/index.mjs +7 -0
- package/esm2022/lib/shared/styles/DimensionSelector.style.mjs +39 -0
- package/esm2022/lib/shared/styles/index.mjs +5 -0
- package/esm2022/lib/shared/utils/axis.mjs +25 -0
- package/esm2022/lib/shared/utils/axisGetDimension.mjs +5 -0
- package/esm2022/lib/shared/utils/axisHasDimension.mjs +3 -0
- package/esm2022/lib/shared/utils/dimension.mjs +52 -0
- package/esm2022/lib/shared/utils/dimensionGetItems.mjs +6 -0
- package/esm2022/lib/shared/utils/dimensionIs.mjs +3 -0
- package/esm2022/lib/shared/utils/dimensionIsEmpty.mjs +5 -0
- package/esm2022/lib/shared/utils/dimensionIsValid.mjs +16 -0
- package/esm2022/lib/shared/utils/dimensionSelectorHelper.mjs +4 -0
- package/esm2022/lib/shared/utils/index.mjs +15 -0
- package/esm2022/lib/shared/utils/layoutGetAllAxes.mjs +7 -0
- package/esm2022/lib/shared/utils/layoutGetAllDimensions.mjs +6 -0
- package/esm2022/lib/shared/utils/layoutGetDimension.mjs +4 -0
- package/esm2022/lib/shared/utils/layoutReplaceDimension.mjs +17 -0
- package/esm2022/lib/shared/utils/list.mjs +15 -0
- package/esm2022/lib/shared/utils/predefinedDimensions.mjs +45 -0
- package/fesm2022/iapps-ng-dhis2-ui.mjs +1585 -28
- package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
- package/index.d.ts +3 -0
- package/lib/modules/header-bar/header-bar.component.d.ts +0 -3
- package/lib/modules/organisation-unit-selector/components/OrgUnitDimension.d.ts +26 -0
- package/lib/modules/organisation-unit-selector/components/index.d.ts +2 -0
- package/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.d.ts +1 -0
- package/lib/modules/organisation-unit-selector/components/utils/index.d.ts +2 -0
- package/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.d.ts +10 -0
- package/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.d.ts +1 -0
- package/lib/modules/organisation-unit-selector/index.d.ts +2 -0
- package/lib/modules/organisation-unit-selector/models/index.d.ts +1 -0
- package/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.d.ts +12 -0
- package/lib/modules/organisation-unit-selector/organisation-unit-selector.component.d.ts +26 -0
- package/lib/modules/organisation-unit-selector/organisation-unit-selector.module.d.ts +9 -0
- package/lib/modules/period-selector/components/FixedPeriodFilter.d.ts +18 -0
- package/lib/modules/period-selector/components/PeriodDimension.d.ts +15 -0
- package/lib/modules/period-selector/components/PeriodTransfer.d.ts +28 -0
- package/lib/modules/period-selector/components/RelativePeriodFilter.d.ts +11 -0
- package/lib/modules/period-selector/components/utils/fixedPeriods.d.ts +17 -0
- package/lib/modules/period-selector/components/utils/index.d.ts +4 -0
- package/lib/modules/period-selector/components/utils/periodTypes.d.ts +19 -0
- package/lib/modules/period-selector/components/utils/relativePeriods.d.ts +17 -0
- package/lib/modules/period-selector/index.d.ts +2 -0
- package/lib/modules/period-selector/period-selector.component.d.ts +21 -0
- package/lib/modules/period-selector/period-selector.module.d.ts +9 -0
- package/lib/shared/assets/AssignedCategoriesIcon.d.ts +2 -0
- package/lib/shared/assets/DimensionItemIcons/PeriodIcon.d.ts +3 -0
- package/lib/shared/components/TransferOption.d.ts +19 -0
- package/lib/shared/components/index.d.ts +1 -0
- package/lib/shared/index.d.ts +3 -0
- package/lib/shared/styles/DimensionSelector.style.d.ts +2 -0
- package/lib/shared/styles/index.d.ts +1 -0
- package/lib/shared/utils/axis.d.ts +11 -0
- package/lib/shared/utils/axisGetDimension.d.ts +1 -0
- package/lib/shared/utils/axisHasDimension.d.ts +1 -0
- package/lib/shared/utils/dimension.d.ts +45 -0
- package/lib/shared/utils/dimensionGetItems.d.ts +1 -0
- package/lib/shared/utils/dimensionIs.d.ts +1 -0
- package/lib/shared/utils/dimensionIsEmpty.d.ts +1 -0
- package/lib/shared/utils/dimensionIsValid.d.ts +1 -0
- package/lib/shared/utils/dimensionSelectorHelper.d.ts +3 -0
- package/lib/shared/utils/index.d.ts +11 -0
- package/lib/shared/utils/layoutGetAllAxes.d.ts +1 -0
- package/lib/shared/utils/layoutGetAllDimensions.d.ts +1 -0
- package/lib/shared/utils/layoutGetDimension.d.ts +1 -0
- package/lib/shared/utils/layoutReplaceDimension.d.ts +1 -0
- package/lib/shared/utils/list.d.ts +1 -0
- package/lib/shared/utils/predefinedDimensions.d.ts +65 -0
- package/package.json +1 -1
package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.component.mjs
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { ReactWrapperComponent } from '../../shared';
|
|
3
|
+
import { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import * as ReactDOM from 'react-dom/client';
|
|
6
|
+
import { firstValueFrom, map } from 'rxjs';
|
|
7
|
+
import { DataProvider } from '@dhis2/app-runtime';
|
|
8
|
+
import OrgUnitDimension from './components/OrgUnitDimension';
|
|
9
|
+
import { OrganisationUnitSelectionConfig, } from './models';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@iapps/ngx-dhis2-http-client";
|
|
12
|
+
export class OrganisationUnitSelectorComponent extends ReactWrapperComponent {
|
|
13
|
+
constructor(elementRef, httpClient) {
|
|
14
|
+
super(elementRef);
|
|
15
|
+
this.httpClient = httpClient;
|
|
16
|
+
this.selectedOrgUnits = [];
|
|
17
|
+
this.orgUnitSelectionConfig = new OrganisationUnitSelectionConfig();
|
|
18
|
+
this.selectOrgUnits = new EventEmitter();
|
|
19
|
+
this.props = {
|
|
20
|
+
onSelect: (e) => {
|
|
21
|
+
this.onSelectItems(e);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
async ngAfterViewInit() {
|
|
26
|
+
if (!this.elementRef)
|
|
27
|
+
throw new Error('No element ref');
|
|
28
|
+
this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);
|
|
29
|
+
const rootOrgUnits = await this.getRootOrgUnits();
|
|
30
|
+
this.component = () => (React.createElement(DataProvider, null, React.createElement(OrgUnitDimension, { selected: this.selectedOrgUnits, hideGroupSelect: this.orgUnitSelectionConfig.hideGroupSelect, hideLevelSelect: this.orgUnitSelectionConfig.hideLevelSelect, hideUserOrgUnits: this.orgUnitSelectionConfig.hideUserOrgUnits, onSelect: (selectionEvent) => this.onSelectItems(selectionEvent), orgUnitGroupPromise: this.getOrgUnitGroups(), orgUnitLevelPromise: this.getOrgUnitLevels(), roots: rootOrgUnits })));
|
|
31
|
+
this.render();
|
|
32
|
+
}
|
|
33
|
+
getOrgUnitAttributeByUsage(usageType) {
|
|
34
|
+
switch (usageType) {
|
|
35
|
+
case 'DATA_ENTRY':
|
|
36
|
+
return 'organisationUnits';
|
|
37
|
+
case 'DATA_VIEW':
|
|
38
|
+
return 'dataViewOrganisationUnits';
|
|
39
|
+
default:
|
|
40
|
+
return 'organisationUnits';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
getRootOrgUnits() {
|
|
44
|
+
const orgUnitAttribute = this.getOrgUnitAttributeByUsage(this.orgUnitSelectionConfig.usageType);
|
|
45
|
+
return firstValueFrom(this.httpClient
|
|
46
|
+
.me()
|
|
47
|
+
.pipe(map((user) => (user ? user[orgUnitAttribute] : []).map((orgUnit) => orgUnit.id))));
|
|
48
|
+
}
|
|
49
|
+
getOrgUnitGroups() {
|
|
50
|
+
return firstValueFrom(this.httpClient
|
|
51
|
+
.get('organisationUnitGroups.json?fields=id,displayName,name&paging=false')
|
|
52
|
+
.pipe(map((res) => res?.['organisationUnitGroups'])));
|
|
53
|
+
}
|
|
54
|
+
getOrgUnitLevels() {
|
|
55
|
+
return firstValueFrom(this.httpClient
|
|
56
|
+
.get('organisationUnitLevels.json?fields=id,level,displayName,name&paging=false')
|
|
57
|
+
.pipe(map((res) => res?.['organisationUnitLevels'])));
|
|
58
|
+
}
|
|
59
|
+
onSelectItems(selectionEvent) {
|
|
60
|
+
this.selectOrgUnits.emit(selectionEvent.items);
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationUnitSelectorComponent, deps: [{ token: i0.ElementRef }, { token: i1.NgxDhis2HttpClientService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrganisationUnitSelectorComponent, selector: "ng-dhis2-ui-org-unit-selector", inputs: { selectedOrgUnits: "selectedOrgUnits", orgUnitSelectionConfig: "orgUnitSelectionConfig" }, outputs: { selectOrgUnits: "selectOrgUnits" }, usesInheritance: true, ngImport: i0, template: '<ng-container><ng-container>', isInline: true }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationUnitSelectorComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{
|
|
68
|
+
selector: 'ng-dhis2-ui-org-unit-selector',
|
|
69
|
+
template: '<ng-container><ng-container>',
|
|
70
|
+
}]
|
|
71
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgxDhis2HttpClientService }]; }, propDecorators: { selectedOrgUnits: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], orgUnitSelectionConfig: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], selectOrgUnits: [{
|
|
76
|
+
type: Output
|
|
77
|
+
}] } });
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL29yZ2FuaXNhdGlvbi11bml0LXNlbGVjdG9yL29yZ2FuaXNhdGlvbi11bml0LXNlbGVjdG9yLmNvbXBvbmVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSx5QkFBeUIsRUFBUSxNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEtBQUssUUFBUSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLGdCQUFnQixNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFDTCwrQkFBK0IsR0FFaEMsTUFBTSxVQUFVLENBQUM7OztBQVdsQixNQUFNLE9BQU8saUNBQWtDLFNBQVEscUJBQXFCO0lBYTFFLFlBQ0UsVUFBbUMsRUFDM0IsVUFBcUM7UUFFN0MsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRlYsZUFBVSxHQUFWLFVBQVUsQ0FBMkI7UUFkdEMscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLDJCQUFzQixHQUM3QixJQUFJLCtCQUErQixFQUFFLENBQUM7UUFFOUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXJDLFVBQUssR0FBNEI7WUFDeEMsUUFBUSxFQUFF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R0FBakMsaUNBQWlDLCtPQUZsQyw4QkFBOEI7OzRGQUU3QixpQ0FBaUM7a0JBSjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsUUFBUSxFQUFFLDhCQUE4QjtpQkFDekM7eUlBRVUsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IE5neERoaXMySHR0cENsaWVudFNlcnZpY2UsIFVzZXIgfSBmcm9tICdAaWFwcHMvbmd4LWRoaXMyLWh0dHAtY2xpZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGFQcm92aWRlciB9IGZyb20gJ0BkaGlzMi9hcHAtcnVudGltZSc7XG5pbXBvcnQgT3JnVW5pdERpbWVuc2lvbiBmcm9tICcuL2NvbXBvbmVudHMvT3JnVW5pdERpbWVuc2lvbic7XG5pbXBvcnQge1xuICBPcmdhbmlzYXRpb25Vbml0U2VsZWN0aW9uQ29uZmlnLFxuICBPcmdhbmlzYXRpb25Vbml0U2VsZWN0aW9uVXNhZ2VUeXBlLFxufSBmcm9tICcuL21vZGVscyc7XG5cbnR5cGUgT3JnYW5pc2F0aW9uVW5pdFNlbGVjdGlvbkV2ZW50ID0ge1xuICBkaW1lbnNpb25JZDogc3RyaW5nO1xuICBpdGVtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXTtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWRoaXMyLXVpLW9yZy11bml0LXNlbGVjdG9yJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGFpbmVyPjxuZy1jb250YWluZXI+Jyxcbn0pXG5leHBvcnQgY2xhc3MgT3JnYW5pc2F0aW9uVW5pdFNlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgUmVhY3RXcmFwcGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc2VsZWN0ZWRPcmdVbml0czogYW55W10gPSBbXTtcbiAgQElucHV0KCkgb3JnVW5pdFNlbGVjdGlvbkNvbmZpZzogT3JnYW5pc2F0aW9uVW5pdFNlbGVjdGlvbkNvbmZpZyA9XG4gICAgbmV3IE9yZ2FuaXNhdGlvblVuaXRTZWxlY3Rpb25Db25maWcoKTtcblxuICBAT3V0cHV0KCkgc2VsZWN0T3JnVW5pdHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgb3ZlcnJpZGUgcHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIG9uU2VsZWN0OiAoZTogYW55KSA9PiB7XG4gICAgICB0aGlzLm9uU2VsZWN0SXRlbXMoZSk7XG4gICAgfSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IE5neERoaXMySHR0cENsaWVudFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZik7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYpIHRocm93IG5ldyBFcnJvcignTm8gZWxlbWVudCByZWYnKTtcbiAgICB0aGlzLnJlYWN0RG9tUm9vdCA9IFJlYWN0RE9NLmNyZWF0ZVJvb3QodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIGNvbnN0IHJvb3RPcmdVbml0cyA9IGF3YWl0IHRoaXMuZ2V0Um9vdE9yZ1VuaXRzKCk7XG5cbiAgICB0aGlzLmNvbXBvbmVudCA9ICgpID0+IChcbiAgICAgIDxEYXRhUHJvdmlkZXI+XG4gICAgICAgIHtcbiAgICAgICAgICA8T3JnVW5pdERpbWVuc2lvblxuICAgICAgICAgICAgc2VsZWN0ZWQ9e3RoaXMuc2VsZWN0ZWRPcmdVbml0c31cbiAgICAgICAgICAgIGhpZGVHcm91cFNlbGVjdD17dGhpcy5vcmdVbml0U2VsZWN0aW9uQ29uZmlnLmhpZGVHcm91cFNlbGVjdH1cbiAgICAgICAgICAgIGhpZGVMZXZlbFNlbGVjdD17dGhpcy5vcmdVbml0U2VsZWN0aW9uQ29uZmlnLmhpZGVMZXZlbFNlbGVjdH1cbiAgICAgICAgICAgIGhpZGVVc2VyT3JnVW5pdHM9e3RoaXMub3JnVW5pdFNlbGVjdGlvbkNvbmZpZy5oaWRlVXNlck9yZ1VuaXRzfVxuICAgICAgICAgICAgb25TZWxlY3Q9eyhzZWxlY3Rpb25FdmVudDogT3JnYW5pc2F0aW9uVW5pdFNlbGVjdGlvbkV2ZW50KSA9PlxuICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0SXRlbXMoc2VsZWN0aW9uRXZlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcmdVbml0R3JvdXBQcm9taXNlPXt0aGlzLmdldE9yZ1VuaXRHcm91cHMoKX1cbiAgICAgICAgICAgIG9yZ1VuaXRMZXZlbFByb21pc2U9e3RoaXMuZ2V0T3JnVW5pdExldmVscygpfVxuICAgICAgICAgICAgcm9vdHM9e3Jvb3RPcmdVbml0c31cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L0RhdGFQcm92aWRlcj5cbiAgICApO1xuXG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIGdldE9yZ1VuaXRBdHRyaWJ1dGVCeVVzYWdlKHVzYWdlVHlwZTogT3JnYW5pc2F0aW9uVW5pdFNlbGVjdGlvblVzYWdlVHlwZSkge1xuICAgIHN3aXRjaCAodXNhZ2VUeXBlKSB7XG4gICAgICBjYXNlICdEQVRBX0VOVFJZJzpcbiAgICAgICAgcmV0dXJuICdvcmdhbmlzYXRpb25Vbml0cyc7XG5cbiAgICAgIGNhc2UgJ0RBVEFfVklFVyc6XG4gICAgICAgIHJldHVybiAnZGF0YVZpZXdPcmdhbmlzYXRpb25Vbml0cyc7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnb3JnYW5pc2F0aW9uVW5pdHMnO1xuICAgIH1cbiAgfVxuXG4gIGdldFJvb3RPcmdVbml0cygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3Qgb3JnVW5pdEF0dHJpYnV0ZSA9IHRoaXMuZ2V0T3JnVW5pdEF0dHJpYnV0ZUJ5VXNhZ2UoXG4gICAgICB0aGlzLm9yZ1VuaXRTZWxlY3Rpb25Db25maWcudXNhZ2VUeXBlXG4gICAgKTtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgLm1lKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKCh1c2VyOiBVc2VyKSA9PlxuICAgICAgICAgICAgKHVzZXIgPyB1c2VyW29yZ1VuaXRBdHRyaWJ1dGVdIDogW10pLm1hcCgob3JnVW5pdCkgPT4gb3JnVW5pdC5pZClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0T3JnVW5pdEdyb3VwcygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAuZ2V0KFxuICAgICAgICAgICdvcmdhbmlzYXRpb25Vbml0R3JvdXBzLmpzb24/ZmllbGRzPWlkLGRpc3BsYXlOYW1lLG5hbWUmcGFnaW5nPWZhbHNlJ1xuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gcmVzPy5bJ29yZ2FuaXNhdGlvblVuaXRHcm91cHMnXSlcbiAgICAgICAgKVxuICAgICk7XG4gIH1cblxuICBnZXRPcmdVbml0TGV2ZWxzKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgIC5nZXQoXG4gICAgICAgICAgJ29yZ2FuaXNhdGlvblVuaXRMZXZlbHMuanNvbj9maWVsZHM9aWQsbGV2ZWwsZGlzcGxheU5hbWUsbmFtZSZwYWdpbmc9ZmFsc2UnXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiByZXM/Llsnb3JnYW5pc2F0aW9uVW5pdExldmVscyddKVxuICAgICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG9uU2VsZWN0SXRlbXMoc2VsZWN0aW9uRXZlbnQ6IE9yZ2FuaXNhdGlvblVuaXRTZWxlY3Rpb25FdmVudCkge1xuICAgIHRoaXMuc2VsZWN0T3JnVW5pdHMuZW1pdChzZWxlY3Rpb25FdmVudC5pdGVtcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { SharedDhis2UiModule } from '../../shared/shared.module';
|
|
4
|
+
import { OrganisationUnitSelectorComponent } from './organisation-unit-selector.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class OrganisationUnitSelectorModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationUnitSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: OrganisationUnitSelectorModule, declarations: [OrganisationUnitSelectorComponent], imports: [CommonModule, SharedDhis2UiModule], exports: [OrganisationUnitSelectorComponent] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationUnitSelectorModule, imports: [CommonModule, SharedDhis2UiModule] }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationUnitSelectorModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
imports: [CommonModule, SharedDhis2UiModule],
|
|
15
|
+
declarations: [OrganisationUnitSelectorComponent],
|
|
16
|
+
exports: [OrganisationUnitSelectorComponent],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL29yZ2FuaXNhdGlvbi11bml0LXNlbGVjdG9yL29yZ2FuaXNhdGlvbi11bml0LXNlbGVjdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFPM0YsTUFBTSxPQUFPLDhCQUE4QjsrR0FBOUIsOEJBQThCO2dIQUE5Qiw4QkFBOEIsaUJBSDFCLGlDQUFpQyxhQUR0QyxZQUFZLEVBQUUsbUJBQW1CLGFBRWpDLGlDQUFpQztnSEFFaEMsOEJBQThCLFlBSi9CLFlBQVksRUFBRSxtQkFBbUI7OzRGQUloQyw4QkFBOEI7a0JBTDFDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUM1QyxZQUFZLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztvQkFDakQsT0FBTyxFQUFFLENBQUMsaUNBQWlDLENBQUM7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaGFyZWREaGlzMlVpTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgT3JnYW5pc2F0aW9uVW5pdFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9vcmdhbmlzYXRpb24tdW5pdC1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTaGFyZWREaGlzMlVpTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbT3JnYW5pc2F0aW9uVW5pdFNlbGVjdG9yQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW09yZ2FuaXNhdGlvblVuaXRTZWxlY3RvckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE9yZ2FuaXNhdGlvblVuaXRTZWxlY3Rvck1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import i18n from '@dhis2/d2-i18n';
|
|
2
|
+
import { InputField, SingleSelectField, SingleSelectOption, spacers, } from '@dhis2/ui';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { filterPeriodTypesById, getFixedPeriodsOptions } from './utils';
|
|
6
|
+
const FixedPeriodFilter = ({ allowedPeriodTypes, excludedPeriodTypes, currentPeriodType, currentYear, onSelectPeriodType, onSelectYear, dataTest, }) => {
|
|
7
|
+
const onlyAllowedTypeIsSelected = Array.isArray(allowedPeriodTypes) &&
|
|
8
|
+
allowedPeriodTypes.length === 1 &&
|
|
9
|
+
allowedPeriodTypes[0] === currentPeriodType;
|
|
10
|
+
return (React.createElement(React.Fragment, null,
|
|
11
|
+
React.createElement("div", { className: "leftSection" },
|
|
12
|
+
React.createElement(SingleSelectField, { label: i18n.t('Period type'), onChange: ({ selected }) => onSelectPeriodType(selected), dense: true, selected: currentPeriodType, disabled: onlyAllowedTypeIsSelected, className: "filterElement", dataTest: `${dataTest}-period-type` }, (allowedPeriodTypes
|
|
13
|
+
? getFixedPeriodsOptions().filter((option) => allowedPeriodTypes.some((type) => type === option.id))
|
|
14
|
+
: filterPeriodTypesById(getFixedPeriodsOptions(), excludedPeriodTypes)).map((option) => (React.createElement(SingleSelectOption, { key: option.id, value: option.id, label: option.name, dataTest: `${dataTest}-period-type-option-${option.id}` }))))),
|
|
15
|
+
React.createElement("div", { className: "rightSection" },
|
|
16
|
+
React.createElement(InputField, { label: i18n.t('Year'), className: "filterElement", type: "number", placeholder: i18n.t('Select year'), value: currentYear, onChange: ({ value }) => onSelectYear(value), dense: true, dataTest: `${dataTest}-year` })),
|
|
17
|
+
React.createElement("style", { jsx: true }, `
|
|
18
|
+
.leftSection {
|
|
19
|
+
flex-grow: 1;
|
|
20
|
+
}
|
|
21
|
+
.leftSection > :global(.filterElement),
|
|
22
|
+
.rightSection > :global(.filterElement) {
|
|
23
|
+
margin: 0;
|
|
24
|
+
}
|
|
25
|
+
.rightSection {
|
|
26
|
+
width: 120px;
|
|
27
|
+
margin-left: ${spacers.dp8};
|
|
28
|
+
}
|
|
29
|
+
`)));
|
|
30
|
+
};
|
|
31
|
+
FixedPeriodFilter.defaultProps = {
|
|
32
|
+
excludedPeriodTypes: [],
|
|
33
|
+
};
|
|
34
|
+
FixedPeriodFilter.propTypes = {
|
|
35
|
+
currentPeriodType: PropTypes.string.isRequired,
|
|
36
|
+
currentYear: PropTypes.string.isRequired,
|
|
37
|
+
onSelectPeriodType: PropTypes.func.isRequired,
|
|
38
|
+
onSelectYear: PropTypes.func.isRequired,
|
|
39
|
+
allowedPeriodTypes: PropTypes.arrayOf(PropTypes.string),
|
|
40
|
+
dataTest: PropTypes.string,
|
|
41
|
+
excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),
|
|
42
|
+
};
|
|
43
|
+
export default FixedPeriodFilter;
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRml4ZWRQZXJpb2RGaWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvcGVyaW9kLXNlbGVjdG9yL2NvbXBvbmVudHMvRml4ZWRQZXJpb2RGaWx0ZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixPQUFPLEdBQ1IsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEVBQ3pCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFFBQVEsR0FDSixFQUFFLEVBQUU7SUFDUixNQUFNLHlCQUF5QixHQUM3QixLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1FBQ2pDLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQy9CLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFpQixDQUFDO0lBRTlDLE9BQU8sQ0FDTDtRQUNFLDZCQUFLLFNBQVMsRUFBQyxhQUFhO1lBQzFCLG9CQUFDLGlCQUFpQixJQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFDNUIsUUFBUSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQU8sRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQzdELEtBQUssUUFDTCxRQUFRLEVBQUUsaUJBQWlCLEVBQzNCLFFBQVEsRUFBRSx5QkFBeUIsRUFDbkMsU0FBUyxFQUFDLGVBQWUsRUFDekIsUUFBUSxFQUFFLEdBQUcsUUFBUSxjQUFjLElBRWxDLENBQUMsa0JBQWtCO2dCQUNsQixDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUM5QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQzNEO2dCQUNILENBQUMsQ0FBQyxxQkFBcUIsQ0FDbkIsc0JBQXNCLEVBQVMsRUFDL0IsbUJBQW1CLENBQ3BCLENBQ0osQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQ2hCLG9CQUFDLGtCQUFrQixJQUNqQixHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFDaEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQ2xCLFFBQVEsRUFBRSxHQUFHLFFBQVEsdUJBQXVCLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FDdkQsQ0FDSCxDQUFDLENBQ2dCLENBQ2hCO1FBQ04sNkJBQUssU0FBUyxFQUFDLGNBQWM7WUFDM0Isb0JBQUMsVUFBVSxJQUNULEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUNyQixTQUFTLEVBQUMsZUFBZSxFQUN6QixJQUFJLEVBQUMsUUFBUSxFQUNiLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUNsQyxLQUFLLEVBQUUsV0FBVyxFQUNsQixRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBTyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQ2pELEtBQUssUUFDTCxRQUFRLEVBQUUsR0FBRyxRQUFRLE9BQU8sR0FDaEIsQ0FDVjtRQUNOLCtCQUFPLEdBQUcsVUFBRTs7Ozs7Ozs7Ozt5QkFVTyxPQUFPLENBQUMsR0FBRzs7T0FFN0IsQ0FBUyxDQUNULENBQ0osQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLGlCQUFpQixDQUFDLFlBQVksR0FBRztJQUMvQixtQkFBbUIsRUFBRSxFQUFFO0NBQ3hCLENBQUM7QUFFRixpQkFBaUIsQ0FBQyxTQUFTLEdBQUc7SUFDNUIsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0lBQzlDLFdBQVcsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7SUFDeEMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO0lBQzdDLFlBQVksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVU7SUFDdkMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQ3ZELFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTTtJQUMxQixtQkFBbUIsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7Q0FDekQsQ0FBQztBQUVGLGVBQWUsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaTE4biBmcm9tICdAZGhpczIvZDItaTE4bic7XG5pbXBvcnQge1xuICBJbnB1dEZpZWxkLFxuICBTaW5nbGVTZWxlY3RGaWVsZCxcbiAgU2luZ2xlU2VsZWN0T3B0aW9uLFxuICBzcGFjZXJzLFxufSBmcm9tICdAZGhpczIvdWknO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBmaWx0ZXJQZXJpb2RUeXBlc0J5SWQsIGdldEZpeGVkUGVyaW9kc09wdGlvbnMgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgRml4ZWRQZXJpb2RGaWx0ZXIgPSAoe1xuICBhbGxvd2VkUGVyaW9kVHlwZXMsXG4gIGV4Y2x1ZGVkUGVyaW9kVHlwZXMsXG4gIGN1cnJlbnRQZXJpb2RUeXBlLFxuICBjdXJyZW50WWVhcixcbiAgb25TZWxlY3RQZXJpb2RUeXBlLFxuICBvblNlbGVjdFllYXIsXG4gIGRhdGFUZXN0LFxufTogYW55KSA9PiB7XG4gIGNvbnN0IG9ubHlBbGxvd2VkVHlwZUlzU2VsZWN0ZWQgPVxuICAgIEFycmF5LmlzQXJyYXkoYWxsb3dlZFBlcmlvZFR5cGVzKSAmJlxuICAgIGFsbG93ZWRQZXJpb2RUeXBlcy5sZW5ndGggPT09IDEgJiZcbiAgICBhbGxvd2VkUGVyaW9kVHlwZXNbMF0gPT09IGN1cnJlbnRQZXJpb2RUeXBlO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVmdFNlY3Rpb25cIj5cbiAgICAgICAgPFNpbmdsZVNlbGVjdEZpZWxkXG4gICAgICAgICAgbGFiZWw9e2kxOG4udCgnUGVyaW9kIHR5cGUnKX1cbiAgICAgICAgICBvbkNoYW5nZT17KHsgc2VsZWN0ZWQgfTogYW55KSA9PiBvblNlbGVjdFBlcmlvZFR5cGUoc2VsZWN0ZWQpfVxuICAgICAgICAgIGRlbnNlXG4gICAgICAgICAgc2VsZWN0ZWQ9e2N1cnJlbnRQZXJpb2RUeXBlfVxuICAgICAgICAgIGRpc2FibGVkPXtvbmx5QWxsb3dlZFR5cGVJc1NlbGVjdGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZpbHRlckVsZW1lbnRcIlxuICAgICAgICAgIGRhdGFUZXN0PXtgJHtkYXRhVGVzdH0tcGVyaW9kLXR5cGVgfVxuICAgICAgICA+XG4gICAgICAgICAgeyhhbGxvd2VkUGVyaW9kVHlwZXNcbiAgICAgICAgICAgID8gZ2V0Rml4ZWRQZXJpb2RzT3B0aW9ucygpLmZpbHRlcigob3B0aW9uOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgYWxsb3dlZFBlcmlvZFR5cGVzLnNvbWUoKHR5cGU6IGFueSkgPT4gdHlwZSA9PT0gb3B0aW9uLmlkKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGZpbHRlclBlcmlvZFR5cGVzQnlJZChcbiAgICAgICAgICAgICAgICBnZXRGaXhlZFBlcmlvZHNPcHRpb25zKCkgYXMgYW55LFxuICAgICAgICAgICAgICAgIGV4Y2x1ZGVkUGVyaW9kVHlwZXNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICkubWFwKChvcHRpb24pID0+IChcbiAgICAgICAgICAgIDxTaW5nbGVTZWxlY3RPcHRpb25cbiAgICAgICAgICAgICAga2V5PXtvcHRpb24uaWR9XG4gICAgICAgICAgICAgIHZhbHVlPXtvcHRpb24uaWR9XG4gICAgICAgICAgICAgIGxhYmVsPXtvcHRpb24ubmFtZX1cbiAgICAgICAgICAgICAgZGF0YVRlc3Q9e2Ake2RhdGFUZXN0fS1wZXJpb2QtdHlwZS1vcHRpb24tJHtvcHRpb24uaWR9YH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU2luZ2xlU2VsZWN0RmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmlnaHRTZWN0aW9uXCI+XG4gICAgICAgIDxJbnB1dEZpZWxkXG4gICAgICAgICAgbGFiZWw9e2kxOG4udCgnWWVhcicpfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZpbHRlckVsZW1lbnRcIlxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtpMThuLnQoJ1NlbGVjdCB5ZWFyJyl9XG4gICAgICAgICAgdmFsdWU9e2N1cnJlbnRZZWFyfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoeyB2YWx1ZSB9OiBhbnkpID0+IG9uU2VsZWN0WWVhcih2YWx1ZSl9XG4gICAgICAgICAgZGVuc2VcbiAgICAgICAgICBkYXRhVGVzdD17YCR7ZGF0YVRlc3R9LXllYXJgfVxuICAgICAgICA+PC9JbnB1dEZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIC5sZWZ0U2VjdGlvbiB7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG4gICAgICAgIC5sZWZ0U2VjdGlvbiA+IDpnbG9iYWwoLmZpbHRlckVsZW1lbnQpLFxuICAgICAgICAucmlnaHRTZWN0aW9uID4gOmdsb2JhbCguZmlsdGVyRWxlbWVudCkge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgICAucmlnaHRTZWN0aW9uIHtcbiAgICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6ICR7c3BhY2Vycy5kcDh9O1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC8+XG4gICk7XG59O1xuXG5GaXhlZFBlcmlvZEZpbHRlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGV4Y2x1ZGVkUGVyaW9kVHlwZXM6IFtdLFxufTtcblxuRml4ZWRQZXJpb2RGaWx0ZXIucHJvcFR5cGVzID0ge1xuICBjdXJyZW50UGVyaW9kVHlwZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjdXJyZW50WWVhcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBvblNlbGVjdFBlcmlvZFR5cGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uU2VsZWN0WWVhcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgYWxsb3dlZFBlcmlvZFR5cGVzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgZGF0YVRlc3Q6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGV4Y2x1ZGVkUGVyaW9kVHlwZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRml4ZWRQZXJpb2RGaWx0ZXI7XG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useDataQuery } from '@dhis2/app-runtime';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { DIMENSION_ID_PERIOD } from '../../../shared/utils/predefinedDimensions';
|
|
5
|
+
import PeriodTransfer from './PeriodTransfer';
|
|
6
|
+
const userSettingsQuery = {
|
|
7
|
+
userSettings: {
|
|
8
|
+
resource: 'userSettings',
|
|
9
|
+
params: {
|
|
10
|
+
key: ['keyUiLocale'],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
export const PeriodDimension = ({ onSelect, selectedPeriods, rightFooter, excludedPeriodTypes, systemInfo, }) => {
|
|
15
|
+
const result = useDataQuery(userSettingsQuery);
|
|
16
|
+
const { calendar = 'gregory' } = systemInfo;
|
|
17
|
+
// const { data: { userSettings: { keyUiLocale: locale } = {} } = {} } =
|
|
18
|
+
// result as any;
|
|
19
|
+
const locale = result.data && result.data['userSettings']
|
|
20
|
+
? result.data['userSettings']['keyUiLocale']
|
|
21
|
+
: '';
|
|
22
|
+
const periodsSettings = { calendar, locale };
|
|
23
|
+
const selectPeriods = (periods) => {
|
|
24
|
+
onSelect({
|
|
25
|
+
dimensionId: DIMENSION_ID_PERIOD,
|
|
26
|
+
items: periods,
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
return (React.createElement(PeriodTransfer, { onSelect: selectPeriods, initialSelectedPeriods: selectedPeriods, rightFooter: rightFooter, dataTest: 'period-dimension', excludedPeriodTypes: excludedPeriodTypes, periodsSettings: periodsSettings }));
|
|
30
|
+
};
|
|
31
|
+
PeriodDimension.propTypes = {
|
|
32
|
+
onSelect: PropTypes.func.isRequired,
|
|
33
|
+
excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),
|
|
34
|
+
rightFooter: PropTypes.node,
|
|
35
|
+
selectedPeriods: PropTypes.array,
|
|
36
|
+
systemInfo: PropTypes.object,
|
|
37
|
+
};
|
|
38
|
+
PeriodDimension.defaultProps = {
|
|
39
|
+
selectedPeriods: [],
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyaW9kRGltZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL3BlcmlvZC1zZWxlY3Rvci9jb21wb25lbnRzL1BlcmlvZERpbWVuc2lvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixZQUFZLEVBQUU7UUFDWixRQUFRLEVBQUUsY0FBYztRQUN4QixNQUFNLEVBQUU7WUFDTixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7U0FDckI7S0FDRjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxFQUM5QixRQUFRLEVBQ1IsZUFBZSxFQUNmLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsVUFBVSxHQUNOLEVBQUUsRUFBRTtJQUNSLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sRUFBRSxRQUFRLEdBQUcsU0FBUyxFQUFFLEdBQUcsVUFBaUIsQ0FBQztJQUNuRCx3RUFBd0U7SUFDeEUsbUJBQW1CO0lBRW5CLE1BQU0sTUFBTSxHQUNWLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDeEMsQ0FBQyxDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFTLENBQUMsYUFBYSxDQUFDO1FBQ3JELENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFVCxNQUFNLGVBQWUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUU3QyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWMsRUFBRSxFQUFFO1FBQ3ZDLFFBQVEsQ0FBQztZQUNQLFdBQVcsRUFBRSxtQkFBbUI7WUFDaEMsS0FBSyxFQUFFLE9BQU87U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFDRixPQUFPLENBQ0wsb0JBQUMsY0FBYyxJQUNiLFFBQVEsRUFBRSxhQUFhLEVBQ3ZCLHNCQUFzQixFQUFFLGVBQWUsRUFDdkMsV0FBVyxFQUFFLFdBQVcsRUFDeEIsUUFBUSxFQUFFLGtCQUFrQixFQUM1QixtQkFBbUIsRUFBRSxtQkFBbUIsRUFDeEMsZUFBZSxFQUFFLGVBQWUsR0FDaEMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsZUFBZSxDQUFDLFNBQVMsR0FBRztJQUMxQixRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO0lBQ25DLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUN4RCxXQUFXLEVBQUUsU0FBUyxDQUFDLElBQUk7SUFDM0IsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLO0lBQ2hDLFVBQVUsRUFBRSxTQUFTLENBQUMsTUFBTTtDQUM3QixDQUFDO0FBRUYsZUFBZSxDQUFDLFlBQVksR0FBRztJQUM3QixlQUFlLEVBQUUsRUFBRTtDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRGF0YVF1ZXJ5IH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRElNRU5TSU9OX0lEX1BFUklPRCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9wcmVkZWZpbmVkRGltZW5zaW9ucyc7XG5pbXBvcnQgUGVyaW9kVHJhbnNmZXIgZnJvbSAnLi9QZXJpb2RUcmFuc2Zlcic7XG5cbmNvbnN0IHVzZXJTZXR0aW5nc1F1ZXJ5ID0ge1xuICB1c2VyU2V0dGluZ3M6IHtcbiAgICByZXNvdXJjZTogJ3VzZXJTZXR0aW5ncycsXG4gICAgcGFyYW1zOiB7XG4gICAgICBrZXk6IFsna2V5VWlMb2NhbGUnXSxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFBlcmlvZERpbWVuc2lvbiA9ICh7XG4gIG9uU2VsZWN0LFxuICBzZWxlY3RlZFBlcmlvZHMsXG4gIHJpZ2h0Rm9vdGVyLFxuICBleGNsdWRlZFBlcmlvZFR5cGVzLFxuICBzeXN0ZW1JbmZvLFxufTogYW55KSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IHVzZURhdGFRdWVyeSh1c2VyU2V0dGluZ3NRdWVyeSk7XG5cbiAgY29uc3QgeyBjYWxlbmRhciA9ICdncmVnb3J5JyB9ID0gc3lzdGVtSW5mbyBhcyBhbnk7XG4gIC8vIGNvbnN0IHsgZGF0YTogeyB1c2VyU2V0dGluZ3M6IHsga2V5VWlMb2NhbGU6IGxvY2FsZSB9ID0ge30gfSA9IHt9IH0gPVxuICAvLyAgIHJlc3VsdCBhcyBhbnk7XG5cbiAgY29uc3QgbG9jYWxlID1cbiAgICByZXN1bHQuZGF0YSAmJiByZXN1bHQuZGF0YVsndXNlclNldHRpbmdzJ11cbiAgICAgID8gKHJlc3VsdC5kYXRhWyd1c2VyU2V0dGluZ3MnXSBhcyBhbnkpWydrZXlVaUxvY2FsZSddXG4gICAgICA6ICcnO1xuXG4gIGNvbnN0IHBlcmlvZHNTZXR0aW5ncyA9IHsgY2FsZW5kYXIsIGxvY2FsZSB9O1xuXG4gIGNvbnN0IHNlbGVjdFBlcmlvZHMgPSAocGVyaW9kczogYW55W10pID0+IHtcbiAgICBvblNlbGVjdCh7XG4gICAgICBkaW1lbnNpb25JZDogRElNRU5TSU9OX0lEX1BFUklPRCxcbiAgICAgIGl0ZW1zOiBwZXJpb2RzLFxuICAgIH0pO1xuICB9O1xuICByZXR1cm4gKFxuICAgIDxQZXJpb2RUcmFuc2ZlclxuICAgICAgb25TZWxlY3Q9e3NlbGVjdFBlcmlvZHN9XG4gICAgICBpbml0aWFsU2VsZWN0ZWRQZXJpb2RzPXtzZWxlY3RlZFBlcmlvZHN9XG4gICAgICByaWdodEZvb3Rlcj17cmlnaHRGb290ZXJ9XG4gICAgICBkYXRhVGVzdD17J3BlcmlvZC1kaW1lbnNpb24nfVxuICAgICAgZXhjbHVkZWRQZXJpb2RUeXBlcz17ZXhjbHVkZWRQZXJpb2RUeXBlc31cbiAgICAgIHBlcmlvZHNTZXR0aW5ncz17cGVyaW9kc1NldHRpbmdzfVxuICAgIC8+XG4gICk7XG59O1xuXG5QZXJpb2REaW1lbnNpb24ucHJvcFR5cGVzID0ge1xuICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZXhjbHVkZWRQZXJpb2RUeXBlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gIHJpZ2h0Rm9vdGVyOiBQcm9wVHlwZXMubm9kZSxcbiAgc2VsZWN0ZWRQZXJpb2RzOiBQcm9wVHlwZXMuYXJyYXksXG4gIHN5c3RlbUluZm86IFByb3BUeXBlcy5vYmplY3QsXG59O1xuXG5QZXJpb2REaW1lbnNpb24uZGVmYXVsdFByb3BzID0ge1xuICBzZWxlY3RlZFBlcmlvZHM6IFtdLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { getNowInCalendar } from '@dhis2/multi-calendar-dates';
|
|
2
|
+
import { TabBar, Tab, Transfer } from '@dhis2/ui';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import React, { useState } from 'react'; //TODO: Reimplement the icon.js
|
|
5
|
+
import i18n from '@dhis2/d2-i18n';
|
|
6
|
+
import { TRANSFER_HEIGHT, TRANSFER_OPTIONS_WIDTH, TRANSFER_SELECTED_WIDTH, TransferOption, } from '../../../shared';
|
|
7
|
+
import styles from '../../../shared/styles/DimensionSelector.style';
|
|
8
|
+
import FixedPeriodFilter from './FixedPeriodFilter';
|
|
9
|
+
import { RelativePeriodFilter } from './RelativePeriodFilter';
|
|
10
|
+
import { MONTHLY, QUARTERLY, getRelativePeriodsOptionsById, getFixedPeriodsOptionsById, } from './utils';
|
|
11
|
+
import PeriodIcon from '../../../shared/assets/DimensionItemIcons/PeriodIcon';
|
|
12
|
+
const PeriodTransfer = ({ onSelect, dataTest, initialSelectedPeriods, rightFooter, excludedPeriodTypes, periodsSettings, }) => {
|
|
13
|
+
const defaultRelativePeriodType = excludedPeriodTypes.includes(MONTHLY)
|
|
14
|
+
? getRelativePeriodsOptionsById(QUARTERLY)
|
|
15
|
+
: getRelativePeriodsOptionsById(MONTHLY);
|
|
16
|
+
const defaultFixedPeriodType = excludedPeriodTypes.includes(MONTHLY)
|
|
17
|
+
? getFixedPeriodsOptionsById(QUARTERLY, periodsSettings)
|
|
18
|
+
: getFixedPeriodsOptionsById(MONTHLY, periodsSettings);
|
|
19
|
+
const now = getNowInCalendar(periodsSettings.calendar);
|
|
20
|
+
// use ".eraYear" rather than ".year" because in Ethiopian calendar, eraYear is what our users expect to see (for other calendars, it doesn't matter)
|
|
21
|
+
// 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
|
|
22
|
+
const defaultFixedPeriodYear = now.eraYear || now.year;
|
|
23
|
+
const fixedPeriodConfig = (year) => ({
|
|
24
|
+
offset: year - defaultFixedPeriodYear,
|
|
25
|
+
filterFuturePeriods: false,
|
|
26
|
+
reversePeriods: false,
|
|
27
|
+
});
|
|
28
|
+
const [allPeriods, setAllPeriods] = useState(defaultRelativePeriodType?.getPeriods() || []);
|
|
29
|
+
const [selectedPeriods, setSelectedPeriods] = useState(initialSelectedPeriods);
|
|
30
|
+
const [isRelative, setIsRelative] = useState(true);
|
|
31
|
+
const [relativeFilter, setRelativeFilter] = useState({
|
|
32
|
+
periodType: defaultRelativePeriodType?.id || '',
|
|
33
|
+
});
|
|
34
|
+
const [fixedFilter, setFixedFilter] = useState({
|
|
35
|
+
periodType: defaultFixedPeriodType?.id || '',
|
|
36
|
+
year: defaultFixedPeriodYear.toString(),
|
|
37
|
+
});
|
|
38
|
+
const onIsRelativeClick = (state) => {
|
|
39
|
+
if (state !== isRelative) {
|
|
40
|
+
setIsRelative(state);
|
|
41
|
+
setAllPeriods(state
|
|
42
|
+
? getRelativePeriodsOptionsById(relativeFilter.periodType)?.getPeriods() || []
|
|
43
|
+
: getFixedPeriodsOptionsById(fixedFilter.periodType, periodsSettings)?.getPeriods(fixedPeriodConfig(Number(fixedFilter.year))) || []);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const renderLeftHeader = () => (React.createElement(React.Fragment, null,
|
|
47
|
+
React.createElement(TabBar, null,
|
|
48
|
+
React.createElement(Tab, { selected: isRelative, onClick: () => onIsRelativeClick(true), dataTest: `${dataTest}-relative-periods-button` }, i18n.t('Relative periods')),
|
|
49
|
+
React.createElement(Tab, { selected: !isRelative, onClick: () => onIsRelativeClick(false), dataTest: `${dataTest}-fixed-periods-button` }, i18n.t('Fixed periods'))),
|
|
50
|
+
React.createElement("div", { className: "filterContainer" }, isRelative ? (React.createElement(RelativePeriodFilter, { currentFilter: relativeFilter.periodType, onSelectFilter: (filter) => {
|
|
51
|
+
setRelativeFilter({ periodType: filter });
|
|
52
|
+
setAllPeriods(getRelativePeriodsOptionsById(filter)?.getPeriods() || []);
|
|
53
|
+
}, dataTest: `${dataTest}-relative-period-filter`, excludedPeriodTypes: excludedPeriodTypes })) : (React.createElement(FixedPeriodFilter, { currentPeriodType: fixedFilter.periodType, currentYear: fixedFilter.year, onSelectPeriodType: (periodType) => {
|
|
54
|
+
onSelectFixedPeriods({
|
|
55
|
+
periodType,
|
|
56
|
+
year: fixedFilter.year,
|
|
57
|
+
});
|
|
58
|
+
}, onSelectYear: (year) => {
|
|
59
|
+
onSelectFixedPeriods({
|
|
60
|
+
periodType: fixedFilter.periodType,
|
|
61
|
+
year,
|
|
62
|
+
});
|
|
63
|
+
}, dataTest: `${dataTest}-fixed-period-filter`, excludedPeriodTypes: excludedPeriodTypes }))),
|
|
64
|
+
React.createElement("style", { jsx: true }, styles)));
|
|
65
|
+
const renderRightHeader = () => (React.createElement(React.Fragment, null,
|
|
66
|
+
React.createElement("p", { className: "rightHeader" }, i18n.t('Selected Periods')),
|
|
67
|
+
React.createElement("style", { jsx: true }, styles)));
|
|
68
|
+
const onSelectFixedPeriods = (filter) => {
|
|
69
|
+
setFixedFilter(filter);
|
|
70
|
+
setAllPeriods((getFixedPeriodsOptionsById(filter.periodType, periodsSettings)?.getPeriods(fixedPeriodConfig(Number(filter.year))) || []));
|
|
71
|
+
};
|
|
72
|
+
const renderEmptySelection = () => (React.createElement(React.Fragment, null,
|
|
73
|
+
React.createElement("p", { className: "emptyList" }, i18n.t('No periods selected')),
|
|
74
|
+
React.createElement("style", { jsx: true }, styles)));
|
|
75
|
+
return (React.createElement(Transfer, { onChange: ({ selected }) => {
|
|
76
|
+
const formattedItems = selected.map((id) => ({
|
|
77
|
+
id,
|
|
78
|
+
name: [...allPeriods, ...selectedPeriods].find((item) => item.id === id).name,
|
|
79
|
+
}));
|
|
80
|
+
setSelectedPeriods(formattedItems);
|
|
81
|
+
onSelect(formattedItems);
|
|
82
|
+
}, selected: selectedPeriods.map((period) => period.id), leftHeader: renderLeftHeader(), enableOrderChange: true, height: TRANSFER_HEIGHT, optionsWidth: TRANSFER_OPTIONS_WIDTH, selectedWidth: TRANSFER_SELECTED_WIDTH, selectedEmptyComponent: renderEmptySelection(), rightHeader: renderRightHeader(), rightFooter: rightFooter, options: [...allPeriods, ...selectedPeriods].map(({ id, name }) => ({
|
|
83
|
+
label: name,
|
|
84
|
+
value: id,
|
|
85
|
+
})), renderOption: (props) => (React.createElement(TransferOption, { ...props, icon: PeriodIcon, dataTest: `${dataTest}-transfer-option` })), dataTest: `${dataTest}-transfer` }));
|
|
86
|
+
};
|
|
87
|
+
PeriodTransfer.defaultProps = {
|
|
88
|
+
initialSelectedPeriods: [],
|
|
89
|
+
excludedPeriodTypes: [],
|
|
90
|
+
periodsSettings: {
|
|
91
|
+
calendar: 'gregory',
|
|
92
|
+
locale: 'en',
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
PeriodTransfer.propTypes = {
|
|
96
|
+
onSelect: PropTypes.func.isRequired,
|
|
97
|
+
dataTest: PropTypes.string,
|
|
98
|
+
excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),
|
|
99
|
+
initialSelectedPeriods: PropTypes.arrayOf(PropTypes.shape({
|
|
100
|
+
id: PropTypes.string,
|
|
101
|
+
name: PropTypes.string,
|
|
102
|
+
})),
|
|
103
|
+
periodsSettings: PropTypes.shape({
|
|
104
|
+
calendar: PropTypes.string,
|
|
105
|
+
locale: PropTypes.string,
|
|
106
|
+
}),
|
|
107
|
+
rightFooter: PropTypes.node,
|
|
108
|
+
};
|
|
109
|
+
export default PeriodTransfer;
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyaW9kVHJhbnNmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvcGVyaW9kLXNlbGVjdG9yL2NvbXBvbmVudHMvUGVyaW9kVHJhbnNmZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUMsQ0FBQywrQkFBK0I7QUFDeEUsT0FBTyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEMsT0FBTyxFQUNMLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLGNBQWMsR0FDZixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sTUFBTSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BFLE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsT0FBTyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsNkJBQTZCLEVBQzdCLDBCQUEwQixHQUMzQixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLFVBQVUsTUFBTSxzREFBc0QsQ0FBQztBQUU5RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQ3RCLFFBQVEsRUFDUixRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsZUFBZSxHQUNYLEVBQUUsRUFBRTtJQUNSLE1BQU0seUJBQXlCLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNyRSxDQUFDLENBQUMs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LFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDZCxFQUFFLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDcEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0tBQ3ZCLENBQUMsQ0FDSDtJQUNELGVBQWUsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQy9CLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTTtRQUMxQixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07S0FDekIsQ0FBQztJQUNGLFdBQVcsRUFBRSxTQUFTLENBQUMsSUFBSTtDQUM1QixDQUFDO0FBRUYsZUFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXROb3dJbkNhbGVuZGFyIH0gZnJvbSAnQGRoaXMyL211bHRpLWNhbGVuZGFyLWRhdGVzJztcbmltcG9ydCB7IFRhYkJhciwgVGFiLCBUcmFuc2ZlciB9IGZyb20gJ0BkaGlzMi91aSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnOyAvL1RPRE86IFJlaW1wbGVtZW50IHRoZSBpY29uLmpzXG5pbXBvcnQgaTE4biBmcm9tICdAZGhpczIvZDItaTE4bic7XG5pbXBvcnQge1xuICBUUkFOU0ZFUl9IRUlHSFQsXG4gIFRSQU5TRkVSX09QVElPTlNfV0lEVEgsXG4gIFRSQU5TRkVSX1NFTEVDVEVEX1dJRFRILFxuICBUcmFuc2Zlck9wdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3N0eWxlcy9EaW1lbnNpb25TZWxlY3Rvci5zdHlsZSc7XG5pbXBvcnQgRml4ZWRQZXJpb2RGaWx0ZXIgZnJvbSAnLi9GaXhlZFBlcmlvZEZpbHRlcic7XG5pbXBvcnQgeyBSZWxhdGl2ZVBlcmlvZEZpbHRlciB9IGZyb20gJy4vUmVsYXRpdmVQZXJpb2RGaWx0ZXInO1xuXG5pbXBvcnQge1xuICBNT05USExZLFxuICBRVUFSVEVSTFksXG4gIGdldFJlbGF0aXZlUGVyaW9kc09wdGlvbnNCeUlkLFxuICBnZXRGaXhlZFBlcmlvZHNPcHRpb25zQnlJZCxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgUGVyaW9kSWNvbiBmcm9tICcuLi8uLi8uLi9zaGFyZWQvYXNzZXRzL0RpbWVuc2lvbkl0ZW1JY29ucy9QZXJpb2RJY29uJztcblxuY29uc3QgUGVyaW9kVHJhbnNmZXIgPSAoe1xuICBvblNlbGVjdCxcbiAgZGF0YVRlc3QsXG4gIGluaXRpYWxTZWxlY3RlZFBlcmlvZHMsXG4gIHJpZ2h0Rm9vdGVyLFxuICBleGNsdWRlZFBlcmlvZFR5cGVzLFxuICBwZXJpb2RzU2V0dGluZ3MsXG59OiBhbnkpID0+IHtcbiAgY29uc3QgZGVmYXVsdFJlbGF0aXZlUGVyaW9kVHlwZSA9IGV4Y2x1ZGVkUGVyaW9kVHlwZXMuaW5jbHVkZXMoTU9OVEhMWSlcbiAgICA/IGdldFJlbGF0aXZlUGVyaW9kc09wdGlvbnNCeUlkKFFVQVJURVJMWSlcbiAgICA6IGdldFJlbGF0aXZlUGVyaW9kc09wdGlvbnNCeUlkKE1PTlRITFkpO1xuICBjb25zdCBkZWZhdWx0Rml4ZWRQZXJpb2RUeXBlID0gZXhjbHVkZWRQZXJpb2RUeXBlcy5pbmNsdWRlcyhNT05USExZKVxuICAgID8gZ2V0Rml4ZWRQZXJpb2RzT3B0aW9uc0J5SWQoUVVBUlRFUkxZLCBwZXJpb2RzU2V0dGluZ3MpXG4gICAgOiBnZXRGaXhlZFBlcmlvZHNPcHRpb25zQnlJZChNT05USExZLCBwZXJpb2RzU2V0dGluZ3MpO1xuXG4gIGNvbnN0IG5vdyA9IGdldE5vd0luQ2FsZW5kYXIocGVyaW9kc1NldHRpbmdzLmNhbGVuZGFyKTtcbiAgLy8gdXNlIFwiLmVyYVllYXJcIiByYXRoZXIgdGhhbiBcIi55ZWFyXCIgYmVjYXVzZSBpbiBFdGhpb3BpYW4gY2FsZW5kYXIsIGVyYVllYXIgaXMgd2hhdCBvdXIgdXNlcnMgZXhwZWN0IHRvIHNlZSAoZm9yIG90aGVyIGNhbGVuZGFycywgaXQgZG9lc24ndCBtYXR0ZXIpXG4gIC8vIHRoZXJlIGlzIHN0aWxsIGEgcGVuZGluZyBkZWNpc2lvbiBpbiBUZW1wb3JhbCByZWdhcmRpbmcgd2hpY2ggZXJhIHRvIHVzZSBieSBkZWZhdWx0OiBodHRwczovL2dpdGh1Yi5jb20vanMtdGVtcG9yYWwvdGVtcG9yYWwtcG9seWZpbGwvYmxvYi85MzUwZWU3ZGQwZDI5ZjMyOWZjMDk3ZGViZjkyM2E1MTdjMzJmODEzL2xpYi9jYWxlbmRhci50cyNMMTk2NFxuICBjb25zdCBkZWZhdWx0Rml4ZWRQZXJpb2RZZWFyID0gbm93LmVyYVllYXIgfHwgbm93LnllYXI7XG5cbiAgY29uc3QgZml4ZWRQZXJpb2RDb25maWcgPSAoeWVhcjogYW55KSA9PiAoe1xuICAgIG9mZnNldDogeWVhciAtIGRlZmF1bHRGaXhlZFBlcmlvZFllYXIsXG4gICAgZmlsdGVyRnV0dXJlUGVyaW9kczogZmFsc2UsXG4gICAgcmV2ZXJzZVBlcmlvZHM6IGZhbHNlLFxuICB9KTtcblxuICBjb25zdCBbYWxsUGVyaW9kcywgc2V0QWxsUGVyaW9kc10gPSB1c2VTdGF0ZShcbiAgICBkZWZhdWx0UmVsYXRpdmVQZXJpb2RUeXBlPy5nZXRQZXJpb2RzKCkgfHwgW11cbiAgKTtcbiAgY29uc3QgW3NlbGVjdGVkUGVyaW9kcywgc2V0U2VsZWN0ZWRQZXJpb2RzXSA9IHVzZVN0YXRlKFxuICAgIGluaXRpYWxTZWxlY3RlZFBlcmlvZHNcbiAgKTtcbiAgY29uc3QgW2lzUmVsYXRpdmUsIHNldElzUmVsYXRpdmVdID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFtyZWxhdGl2ZUZpbHRlciwgc2V0UmVsYXRpdmVGaWx0ZXJdID0gdXNlU3RhdGUoe1xuICAgIHBlcmlvZFR5cGU6IGRlZmF1bHRSZWxhdGl2ZVBlcmlvZFR5cGU/LmlkIHx8ICcnLFxuICB9KTtcbiAgY29uc3QgW2ZpeGVkRmlsdGVyLCBzZXRGaXhlZEZpbHRlcl0gPSB1c2VTdGF0ZSh7XG4gICAgcGVyaW9kVHlwZTogZGVmYXVsdEZpeGVkUGVyaW9kVHlwZT8uaWQgfHwgJycsXG4gICAgeWVhcjogZGVmYXVsdEZpeGVkUGVyaW9kWWVhci50b1N0cmluZygpLFxuICB9KTtcblxuICBjb25zdCBvbklzUmVsYXRpdmVDbGljayA9IChzdGF0ZTogYW55KSA9PiB7XG4gICAgaWYgKHN0YXRlICE9PSBpc1JlbGF0aXZlKSB7XG4gICAgICBzZXRJc1JlbGF0aXZlKHN0YXRlKTtcbiAgICAgIHNldEFsbFBlcmlvZHMoXG4gICAgICAgIHN0YXRlXG4gICAgICAgICAgPyBnZXRSZWxhdGl2ZVBlcmlvZHNPcHRpb25zQnlJZChcbiAgICAgICAgICAgICAgcmVsYXRpdmVGaWx0ZXIucGVyaW9kVHlwZVxuICAgICAgICAgICAgKT8uZ2V0UGVyaW9kcygpIHx8IFtdXG4gICAgICAgICAgOiBnZXRGaXhlZFBlcmlvZHNPcHRpb25zQnlJZChcbiAgICAgICAgICAgICAgZml4ZWRGaWx0ZXIucGVyaW9kVHlwZSxcbiAgICAgICAgICAgICAgcGVyaW9kc1NldHRpbmdzXG4gICAgICAgICAgICApPy5nZXRQZXJpb2RzKGZpeGVkUGVyaW9kQ29uZmlnKE51bWJlcihmaXhlZEZpbHRlci55ZWFyKSkpIHx8IFtdXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCByZW5kZXJMZWZ0SGVhZGVyID0gKCkgPT4gKFxuICAgIDw+XG4gICAgICA8VGFiQmFyPlxuICAgICAgICA8VGFiXG4gICAgICAgICAgc2VsZWN0ZWQ9e2lzUmVsYXRpdmV9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Jc1JlbGF0aXZlQ2xpY2sodHJ1ZSl9XG4gICAgICAgICAgZGF0YVRlc3Q9e2Ake2RhdGFUZXN0fS1yZWxhdGl2ZS1wZXJpb2RzLWJ1dHRvbmB9XG4gICAgICAgID5cbiAgICAgICAgICB7aTE4bi50KCdSZWxhdGl2ZSBwZXJpb2RzJyl9XG4gICAgICAgIDwvVGFiPlxuICAgICAgICA8VGFiXG4gICAgICAgICAgc2VsZWN0ZWQ9eyFpc1JlbGF0aXZlfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uSXNSZWxhdGl2ZUNsaWNrKGZhbHNlKX1cbiAgICAgICAgICBkYXRhVGVzdD17YCR7ZGF0YVRlc3R9LWZpeGVkLXBlcmlvZHMtYnV0dG9uYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtpMThuLnQoJ0ZpeGVkIHBlcmlvZHMnKX1cbiAgICAgICAgPC9UYWI+XG4gICAgICA8L1RhYkJhcj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyQ29udGFpbmVyXCI+XG4gICAgICAgIHtpc1JlbGF0aXZlID8gKFxuICAgICAgICAgIDxSZWxhdGl2ZVBlcmlvZEZpbHRlclxuICAgICAgICAgICAgY3VycmVudEZpbHRlcj17cmVsYXRpdmVGaWx0ZXIucGVyaW9kVHlwZX1cbiAgICAgICAgICAgIG9uU2VsZWN0RmlsdGVyPXsoZmlsdGVyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgc2V0UmVsYXRpdmVGaWx0ZXIoeyBwZXJpb2RUeXBlOiBmaWx0ZXIgfSk7XG4gICAgICAgICAgICAgIHNldEFsbFBlcmlvZHMoXG4gICAgICAgICAgICAgICAgZ2V0UmVsYXRpdmVQZXJpb2RzT3B0aW9uc0J5SWQoZmlsdGVyKT8uZ2V0UGVyaW9kcygpIHx8IFtdXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgZGF0YVRlc3Q9e2Ake2RhdGFUZXN0fS1yZWxhdGl2ZS1wZXJpb2QtZmlsdGVyYH1cbiAgICAgICAgICAgIGV4Y2x1ZGVkUGVyaW9kVHlwZXM9e2V4Y2x1ZGVkUGVyaW9kVHlwZXN9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8Rml4ZWRQZXJpb2RGaWx0ZXJcbiAgICAgICAgICAgIGN1cnJlbnRQZXJpb2RUeXBlPXtmaXhlZEZpbHRlci5wZXJpb2RUeXBlfVxuICAgICAgICAgICAgY3VycmVudFllYXI9e2ZpeGVkRmlsdGVyLnllYXJ9XG4gICAgICAgICAgICBvblNlbGVjdFBlcmlvZFR5cGU9eyhwZXJpb2RUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgb25TZWxlY3RGaXhlZFBlcmlvZHMoe1xuICAgICAgICAgICAgICAgIHBlcmlvZFR5cGUsXG4gICAgICAgICAgICAgICAgeWVhcjogZml4ZWRGaWx0ZXIueWVhcixcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25TZWxlY3RZZWFyPXsoeWVhcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgIG9uU2VsZWN0Rml4ZWRQZXJpb2RzKHtcbiAgICAgICAgICAgICAgICBwZXJpb2RUeXBlOiBmaXhlZEZpbHRlci5wZXJpb2RUeXBlLFxuICAgICAgICAgICAgICAgIHllYXIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGRhdGFUZXN0PXtgJHtkYXRhVGVzdH0tZml4ZWQtcGVyaW9kLWZpbHRlcmB9XG4gICAgICAgICAgICBleGNsdWRlZFBlcmlvZFR5cGVzPXtleGNsdWRlZFBlcmlvZFR5cGVzfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzdHlsZSBqc3g+e3N0eWxlc308L3N0eWxlPlxuICAgIDwvPlxuICApO1xuXG4gIGNvbnN0IHJlbmRlclJpZ2h0SGVhZGVyID0gKCkgPT4gKFxuICAgIDw+XG4gICAgICA8cCBjbGFzc05hbWU9XCJyaWdodEhlYWRlclwiPntpMThuLnQoJ1NlbGVjdGVkIFBlcmlvZHMnKX08L3A+XG4gICAgICA8c3R5bGUganN4PntzdHlsZXN9PC9zdHlsZT5cbiAgICA8Lz5cbiAgKTtcblxuICBjb25zdCBvblNlbGVjdEZpeGVkUGVyaW9kcyA9IChmaWx0ZXI6IGFueSkgPT4ge1xuICAgIHNldEZpeGVkRmlsdGVyKGZpbHRlcik7XG4gICAgc2V0QWxsUGVyaW9kcyhcbiAgICAgIChnZXRGaXhlZFBlcmlvZHNPcHRpb25zQnlJZChcbiAgICAgICAgZmlsdGVyLnBlcmlvZFR5cGUsXG4gICAgICAgIHBlcmlvZHNTZXR0aW5nc1xuICAgICAgKT8uZ2V0UGVyaW9kcyhmaXhlZFBlcmlvZENvbmZpZyhOdW1iZXIoZmlsdGVyLnllYXIpKSkgfHwgW10pIGFzIGFueVxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyRW1wdHlTZWxlY3Rpb24gPSAoKSA9PiAoXG4gICAgPD5cbiAgICAgIDxwIGNsYXNzTmFtZT1cImVtcHR5TGlzdFwiPntpMThuLnQoJ05vIHBlcmlvZHMgc2VsZWN0ZWQnKX08L3A+XG4gICAgICA8c3R5bGUganN4PntzdHlsZXN9PC9zdHlsZT5cbiAgICA8Lz5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxUcmFuc2ZlclxuICAgICAgb25DaGFuZ2U9eyh7IHNlbGVjdGVkIH06IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRJdGVtcyA9IHNlbGVjdGVkLm1hcCgoaWQ6IHN0cmluZykgPT4gKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBuYW1lOiBbLi4uYWxsUGVyaW9kcywgLi4uc2VsZWN0ZWRQZXJpb2RzXS5maW5kKFxuICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkXG4gICAgICAgICAgKS5uYW1lLFxuICAgICAgICB9KSk7XG4gICAgICAgIHNldFNlbGVjdGVkUGVyaW9kcyhmb3JtYXR0ZWRJdGVtcyk7XG4gICAgICAgIG9uU2VsZWN0KGZvcm1hdHRlZEl0ZW1zKTtcbiAgICAgIH19XG4gICAgICBzZWxlY3RlZD17c2VsZWN0ZWRQZXJpb2RzLm1hcCgocGVyaW9kOiBhbnkpID0+IHBlcmlvZC5pZCl9XG4gICAgICBsZWZ0SGVhZGVyPXtyZW5kZXJMZWZ0SGVhZGVyKCl9XG4gICAgICBlbmFibGVPcmRlckNoYW5nZVxuICAgICAgaGVpZ2h0PXtUUkFOU0ZFUl9IRUlHSFR9XG4gICAgICBvcHRpb25zV2lkdGg9e1RSQU5TRkVSX09QVElPTlNfV0lEVEh9XG4gICAgICBzZWxlY3RlZFdpZHRoPXtUUkFOU0ZFUl9TRUxFQ1RFRF9XSURUSH1cbiAgICAgIHNlbGVjdGVkRW1wdHlDb21wb25lbnQ9e3JlbmRlckVtcHR5U2VsZWN0aW9uKCl9XG4gICAgICByaWdodEhlYWRlcj17cmVuZGVyUmlnaHRIZWFkZXIoKX1cbiAgICAgIHJpZ2h0Rm9vdGVyPXtyaWdodEZvb3Rlcn1cbiAgICAgIG9wdGlvbnM9e1suLi5hbGxQZXJpb2RzLCAuLi5zZWxlY3RlZFBlcmlvZHNdLm1hcCgoeyBpZCwgbmFtZSB9KSA9PiAoe1xuICAgICAgICBsYWJlbDogbmFtZSxcbiAgICAgICAgdmFsdWU6IGlkLFxuICAgICAgfSkpfVxuICAgICAgcmVuZGVyT3B0aW9uPXsocHJvcHM6IGFueSkgPT4gKFxuICAgICAgICA8VHJhbnNmZXJPcHRpb25cbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgaWNvbj17UGVyaW9kSWNvbn1cbiAgICAgICAgICBkYXRhVGVzdD17YCR7ZGF0YVRlc3R9LXRyYW5zZmVyLW9wdGlvbmB9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgZGF0YVRlc3Q9e2Ake2RhdGFUZXN0fS10cmFuc2ZlcmB9XG4gICAgPjwvVHJhbnNmZXI+XG4gICk7XG59O1xuXG5QZXJpb2RUcmFuc2Zlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGluaXRpYWxTZWxlY3RlZFBlcmlvZHM6IFtdLFxuICBleGNsdWRlZFBlcmlvZFR5cGVzOiBbXSxcbiAgcGVyaW9kc1NldHRpbmdzOiB7XG4gICAgY2FsZW5kYXI6ICdncmVnb3J5JyxcbiAgICBsb2NhbGU6ICdlbicsXG4gIH0sXG59O1xuXG5QZXJpb2RUcmFuc2Zlci5wcm9wVHlwZXMgPSB7XG4gIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBkYXRhVGVzdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgZXhjbHVkZWRQZXJpb2RUeXBlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gIGluaXRpYWxTZWxlY3RlZFBlcmlvZHM6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgfSlcbiAgKSxcbiAgcGVyaW9kc1NldHRpbmdzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGNhbGVuZGFyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgfSksXG4gIHJpZ2h0Rm9vdGVyOiBQcm9wVHlwZXMubm9kZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBlcmlvZFRyYW5zZmVyO1xuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SingleSelectField, SingleSelectOption } from '@dhis2/ui';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import i18n from '@dhis2/d2-i18n';
|
|
5
|
+
import { filterPeriodTypesById, getRelativePeriodsOptions } from './utils';
|
|
6
|
+
import { spacers } from '@dhis2/ui';
|
|
7
|
+
export const RelativePeriodFilter = ({ currentFilter, onSelectFilter, dataTest, excludedPeriodTypes, }) => (React.createElement("div", { className: "leftSection" },
|
|
8
|
+
React.createElement(SingleSelectField, { label: i18n.t('Period type'), onChange: ({ selected }) => onSelectFilter(selected), dense: true, selected: currentFilter, className: "filterElement", dataTest: dataTest }, filterPeriodTypesById(getRelativePeriodsOptions(), excludedPeriodTypes).map((option) => (React.createElement(SingleSelectOption, { key: option.id, value: option.id, label: option.name, dataTest: `${dataTest}-option-${option.id}` })))),
|
|
9
|
+
React.createElement("style", { jsx: true }, `
|
|
10
|
+
.leftSection {
|
|
11
|
+
flex-grow: 1;
|
|
12
|
+
}
|
|
13
|
+
.leftSection > :global(.filterElement),
|
|
14
|
+
.rightSection > :global(.filterElement) {
|
|
15
|
+
margin: 0;
|
|
16
|
+
}
|
|
17
|
+
.rightSection {
|
|
18
|
+
width: 120px;
|
|
19
|
+
margin-left: ${spacers.dp8};
|
|
20
|
+
}
|
|
21
|
+
`)));
|
|
22
|
+
RelativePeriodFilter.propTypes = {
|
|
23
|
+
currentFilter: PropTypes.string.isRequired,
|
|
24
|
+
onSelectFilter: PropTypes.func.isRequired,
|
|
25
|
+
dataTest: PropTypes.string,
|
|
26
|
+
excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVsYXRpdmVQZXJpb2RGaWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvcGVyaW9kLXNlbGVjdG9yL2NvbXBvbmVudHMvUmVsYXRpdmVQZXJpb2RGaWx0ZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRSxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsRUFDbkMsYUFBYSxFQUNiLGNBQWMsRUFDZCxRQUFRLEVBQ1IsbUJBQW1CLEdBQ2YsRUFBRSxFQUFFLENBQUMsQ0FDVCw2QkFBSyxTQUFTLEVBQUMsYUFBYTtJQUMxQixvQkFBQyxpQkFBaUIsSUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQzVCLFFBQVEsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFPLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFDekQsS0FBSyxRQUNMLFFBQVEsRUFBRSxhQUFhLEVBQ3ZCLFNBQVMsRUFBQyxlQUFlLEVBQ3pCLFFBQVEsRUFBRSxRQUFRLElBRWpCLHFCQUFxQixDQUNwQix5QkFBeUIsRUFBUyxFQUNsQyxtQkFBbUIsQ0FDcEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLENBQ3JCLG9CQUFDLGtCQUFrQixJQUNqQixHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFDaEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQ2xCLFFBQVEsRUFBRSxHQUFHLFFBQVEsV0FBVyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQzNDLENBQ0gsQ0FBQyxDQUNnQjtJQUNwQiwrQkFBTyxHQUFHLFVBQUU7Ozs7Ozs7Ozs7dUJBVU8sT0FBTyxDQUFDLEdBQUc7O0tBRTdCLENBQVMsQ0FDTixDQUNQLENBQUM7QUFFRixvQkFBb0IsQ0FBQyxTQUFTLEdBQUc7SUFDL0IsYUFBYSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtJQUMxQyxjQUFjLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO0lBQ3pDLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTTtJQUMxQixtQkFBbUIsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7Q0FDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpbmdsZVNlbGVjdEZpZWxkLCBTaW5nbGVTZWxlY3RPcHRpb24gfSBmcm9tICdAZGhpczIvdWknO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgaTE4biBmcm9tICdAZGhpczIvZDItaTE4bic7XG5pbXBvcnQgeyBmaWx0ZXJQZXJpb2RUeXBlc0J5SWQsIGdldFJlbGF0aXZlUGVyaW9kc09wdGlvbnMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHNwYWNlcnMgfSBmcm9tICdAZGhpczIvdWknO1xuXG5leHBvcnQgY29uc3QgUmVsYXRpdmVQZXJpb2RGaWx0ZXIgPSAoe1xuICBjdXJyZW50RmlsdGVyLFxuICBvblNlbGVjdEZpbHRlcixcbiAgZGF0YVRlc3QsXG4gIGV4Y2x1ZGVkUGVyaW9kVHlwZXMsXG59OiBhbnkpID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJsZWZ0U2VjdGlvblwiPlxuICAgIDxTaW5nbGVTZWxlY3RGaWVsZFxuICAgICAgbGFiZWw9e2kxOG4udCgnUGVyaW9kIHR5cGUnKX1cbiAgICAgIG9uQ2hhbmdlPXsoeyBzZWxlY3RlZCB9OiBhbnkpID0+IG9uU2VsZWN0RmlsdGVyKHNlbGVjdGVkKX1cbiAgICAgIGRlbnNlXG4gICAgICBzZWxlY3RlZD17Y3VycmVudEZpbHRlcn1cbiAgICAgIGNsYXNzTmFtZT1cImZpbHRlckVsZW1lbnRcIlxuICAgICAgZGF0YVRlc3Q9e2RhdGFUZXN0fVxuICAgID5cbiAgICAgIHtmaWx0ZXJQZXJpb2RUeXBlc0J5SWQoXG4gICAgICAgIGdldFJlbGF0aXZlUGVyaW9kc09wdGlvbnMoKSBhcyBhbnksXG4gICAgICAgIGV4Y2x1ZGVkUGVyaW9kVHlwZXNcbiAgICAgICkubWFwKChvcHRpb246IGFueSkgPT4gKFxuICAgICAgICA8U2luZ2xlU2VsZWN0T3B0aW9uXG4gICAgICAgICAga2V5PXtvcHRpb24uaWR9XG4gICAgICAgICAgdmFsdWU9e29wdGlvbi5pZH1cbiAgICAgICAgICBsYWJlbD17b3B0aW9uLm5hbWV9XG4gICAgICAgICAgZGF0YVRlc3Q9e2Ake2RhdGFUZXN0fS1vcHRpb24tJHtvcHRpb24uaWR9YH1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvU2luZ2xlU2VsZWN0RmllbGQ+XG4gICAgPHN0eWxlIGpzeD57YFxuICAgICAgLmxlZnRTZWN0aW9uIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgfVxuICAgICAgLmxlZnRTZWN0aW9uID4gOmdsb2JhbCguZmlsdGVyRWxlbWVudCksXG4gICAgICAucmlnaHRTZWN0aW9uID4gOmdsb2JhbCguZmlsdGVyRWxlbWVudCkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgICAucmlnaHRTZWN0aW9uIHtcbiAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogJHtzcGFjZXJzLmRwOH07XG4gICAgICB9XG4gICAgYH08L3N0eWxlPlxuICA8L2Rpdj5cbik7XG5cblJlbGF0aXZlUGVyaW9kRmlsdGVyLnByb3BUeXBlcyA9IHtcbiAgY3VycmVudEZpbHRlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBvblNlbGVjdEZpbHRlcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGF0YVRlc3Q6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGV4Y2x1ZGVkUGVyaW9kVHlwZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxufTtcbiJdfQ==
|