@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.
Files changed (97) hide show
  1. package/esm2022/index.mjs +4 -1
  2. package/esm2022/lib/modules/header-bar/header-bar.component.mjs +7 -8
  3. package/esm2022/lib/modules/organisation-unit-selector/components/OrgUnitDimension.mjs +212 -0
  4. package/esm2022/lib/modules/organisation-unit-selector/components/index.mjs +6 -0
  5. package/esm2022/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.mjs +83 -0
  6. package/esm2022/lib/modules/organisation-unit-selector/components/utils/index.mjs +6 -0
  7. package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.mjs +18 -0
  8. package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.mjs +27 -0
  9. package/esm2022/lib/modules/organisation-unit-selector/index.mjs +6 -0
  10. package/esm2022/lib/modules/organisation-unit-selector/models/index.mjs +5 -0
  11. package/esm2022/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.mjs +16 -0
  12. package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.component.mjs +78 -0
  13. package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.module.mjs +19 -0
  14. package/esm2022/lib/modules/period-selector/components/FixedPeriodFilter.mjs +44 -0
  15. package/esm2022/lib/modules/period-selector/components/PeriodDimension.mjs +41 -0
  16. package/esm2022/lib/modules/period-selector/components/PeriodTransfer.mjs +110 -0
  17. package/esm2022/lib/modules/period-selector/components/RelativePeriodFilter.mjs +28 -0
  18. package/esm2022/lib/modules/period-selector/components/utils/fixedPeriods.mjs +308 -0
  19. package/esm2022/lib/modules/period-selector/components/utils/index.mjs +5 -0
  20. package/esm2022/lib/modules/period-selector/components/utils/periodTypes.mjs +23 -0
  21. package/esm2022/lib/modules/period-selector/components/utils/relativePeriods.mjs +139 -0
  22. package/esm2022/lib/modules/period-selector/index.mjs +6 -0
  23. package/esm2022/lib/modules/period-selector/period-selector.component.mjs +66 -0
  24. package/esm2022/lib/modules/period-selector/period-selector.module.mjs +19 -0
  25. package/esm2022/lib/shared/assets/AssignedCategoriesIcon.mjs +12 -0
  26. package/esm2022/lib/shared/assets/DimensionItemIcons/PeriodIcon.mjs +4 -0
  27. package/esm2022/lib/shared/components/TransferOption.mjs +130 -0
  28. package/esm2022/lib/shared/components/index.mjs +2 -1
  29. package/esm2022/lib/shared/index.mjs +7 -0
  30. package/esm2022/lib/shared/styles/DimensionSelector.style.mjs +39 -0
  31. package/esm2022/lib/shared/styles/index.mjs +5 -0
  32. package/esm2022/lib/shared/utils/axis.mjs +25 -0
  33. package/esm2022/lib/shared/utils/axisGetDimension.mjs +5 -0
  34. package/esm2022/lib/shared/utils/axisHasDimension.mjs +3 -0
  35. package/esm2022/lib/shared/utils/dimension.mjs +52 -0
  36. package/esm2022/lib/shared/utils/dimensionGetItems.mjs +6 -0
  37. package/esm2022/lib/shared/utils/dimensionIs.mjs +3 -0
  38. package/esm2022/lib/shared/utils/dimensionIsEmpty.mjs +5 -0
  39. package/esm2022/lib/shared/utils/dimensionIsValid.mjs +16 -0
  40. package/esm2022/lib/shared/utils/dimensionSelectorHelper.mjs +4 -0
  41. package/esm2022/lib/shared/utils/index.mjs +15 -0
  42. package/esm2022/lib/shared/utils/layoutGetAllAxes.mjs +7 -0
  43. package/esm2022/lib/shared/utils/layoutGetAllDimensions.mjs +6 -0
  44. package/esm2022/lib/shared/utils/layoutGetDimension.mjs +4 -0
  45. package/esm2022/lib/shared/utils/layoutReplaceDimension.mjs +17 -0
  46. package/esm2022/lib/shared/utils/list.mjs +15 -0
  47. package/esm2022/lib/shared/utils/predefinedDimensions.mjs +45 -0
  48. package/fesm2022/iapps-ng-dhis2-ui.mjs +1585 -28
  49. package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
  50. package/index.d.ts +3 -0
  51. package/lib/modules/header-bar/header-bar.component.d.ts +0 -3
  52. package/lib/modules/organisation-unit-selector/components/OrgUnitDimension.d.ts +26 -0
  53. package/lib/modules/organisation-unit-selector/components/index.d.ts +2 -0
  54. package/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.d.ts +1 -0
  55. package/lib/modules/organisation-unit-selector/components/utils/index.d.ts +2 -0
  56. package/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.d.ts +10 -0
  57. package/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.d.ts +1 -0
  58. package/lib/modules/organisation-unit-selector/index.d.ts +2 -0
  59. package/lib/modules/organisation-unit-selector/models/index.d.ts +1 -0
  60. package/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.d.ts +12 -0
  61. package/lib/modules/organisation-unit-selector/organisation-unit-selector.component.d.ts +26 -0
  62. package/lib/modules/organisation-unit-selector/organisation-unit-selector.module.d.ts +9 -0
  63. package/lib/modules/period-selector/components/FixedPeriodFilter.d.ts +18 -0
  64. package/lib/modules/period-selector/components/PeriodDimension.d.ts +15 -0
  65. package/lib/modules/period-selector/components/PeriodTransfer.d.ts +28 -0
  66. package/lib/modules/period-selector/components/RelativePeriodFilter.d.ts +11 -0
  67. package/lib/modules/period-selector/components/utils/fixedPeriods.d.ts +17 -0
  68. package/lib/modules/period-selector/components/utils/index.d.ts +4 -0
  69. package/lib/modules/period-selector/components/utils/periodTypes.d.ts +19 -0
  70. package/lib/modules/period-selector/components/utils/relativePeriods.d.ts +17 -0
  71. package/lib/modules/period-selector/index.d.ts +2 -0
  72. package/lib/modules/period-selector/period-selector.component.d.ts +21 -0
  73. package/lib/modules/period-selector/period-selector.module.d.ts +9 -0
  74. package/lib/shared/assets/AssignedCategoriesIcon.d.ts +2 -0
  75. package/lib/shared/assets/DimensionItemIcons/PeriodIcon.d.ts +3 -0
  76. package/lib/shared/components/TransferOption.d.ts +19 -0
  77. package/lib/shared/components/index.d.ts +1 -0
  78. package/lib/shared/index.d.ts +3 -0
  79. package/lib/shared/styles/DimensionSelector.style.d.ts +2 -0
  80. package/lib/shared/styles/index.d.ts +1 -0
  81. package/lib/shared/utils/axis.d.ts +11 -0
  82. package/lib/shared/utils/axisGetDimension.d.ts +1 -0
  83. package/lib/shared/utils/axisHasDimension.d.ts +1 -0
  84. package/lib/shared/utils/dimension.d.ts +45 -0
  85. package/lib/shared/utils/dimensionGetItems.d.ts +1 -0
  86. package/lib/shared/utils/dimensionIs.d.ts +1 -0
  87. package/lib/shared/utils/dimensionIsEmpty.d.ts +1 -0
  88. package/lib/shared/utils/dimensionIsValid.d.ts +1 -0
  89. package/lib/shared/utils/dimensionSelectorHelper.d.ts +3 -0
  90. package/lib/shared/utils/index.d.ts +11 -0
  91. package/lib/shared/utils/layoutGetAllAxes.d.ts +1 -0
  92. package/lib/shared/utils/layoutGetAllDimensions.d.ts +1 -0
  93. package/lib/shared/utils/layoutGetDimension.d.ts +1 -0
  94. package/lib/shared/utils/layoutReplaceDimension.d.ts +1 -0
  95. package/lib/shared/utils/list.d.ts +1 -0
  96. package/lib/shared/utils/predefinedDimensions.d.ts +65 -0
  97. package/package.json +1 -1
@@ -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==