@iapps/ng-dhis2-ui 1.0.0 → 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 (103) hide show
  1. package/esm2022/index.mjs +4 -2
  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 +1566 -55
  49. package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
  50. package/index.d.ts +3 -1
  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
  98. package/esm2022/lib/modules/app-shell/app-shell.component.mjs +0 -33
  99. package/esm2022/lib/modules/app-shell/app-shell.module.mjs +0 -19
  100. package/esm2022/lib/modules/app-shell/index.mjs +0 -6
  101. package/lib/modules/app-shell/app-shell.component.d.ts +0 -8
  102. package/lib/modules/app-shell/app-shell.module.d.ts +0 -9
  103. package/lib/modules/app-shell/index.d.ts +0 -2
package/esm2022/index.mjs CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './lib/ng-dhis2-ui.module';
2
2
  export * from './lib/modules/header-bar';
3
3
  export * from './lib/modules/button';
4
- export * from './lib/modules/app-shell';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL25nLWRoaXMyLXVpLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2hlYWRlci1iYXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9hcHAtc2hlbGwnO1xuIl19
4
+ export * from './lib/modules/period-selector';
5
+ export * from './lib/modules/organisation-unit-selector';
6
+ export * from './lib/shared/components/react-component-wrapper/react-wrapper.component';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMseUVBQXlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9uZy1kaGlzMi11aS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9oZWFkZXItYmFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvYnV0dG9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvcGVyaW9kLXNlbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbXBvbmVudHMvcmVhY3QtY29tcG9uZW50LXdyYXBwZXIvcmVhY3Qtd3JhcHBlci5jb21wb25lbnQnO1xuIl19
@@ -1,15 +1,14 @@
1
1
  import { Component, ElementRef } from '@angular/core';
2
- import { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';
3
- import { firstValueFrom } from 'rxjs';
4
- import { HeaderBarData } from './models';
5
- import { ReactWrapperComponent } from '../../shared/components';
6
2
  import { DataProvider } from '@dhis2/app-runtime';
3
+ import { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';
7
4
  import React from 'react';
8
5
  import * as ReactDOM from 'react-dom/client';
6
+ import { firstValueFrom } from 'rxjs';
7
+ import { ReactWrapperComponent } from '../../shared/components';
8
+ import { HeaderBarData } from './models';
9
9
  import { HeaderBar } from './utils/header-bar';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@iapps/ngx-dhis2-http-client";
12
- import * as i2 from "@angular/common";
13
12
  export class HeaderBarComponent extends ReactWrapperComponent {
14
13
  constructor(elementRef, httpClient) {
15
14
  super(elementRef);
@@ -27,13 +26,13 @@ export class HeaderBarComponent extends ReactWrapperComponent {
27
26
  this.render();
28
27
  }
29
28
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderBarComponent, deps: [{ token: i0.ElementRef }, { token: i1.NgxDhis2HttpClientService }], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HeaderBarComponent, selector: "ng-dhis2-ui-header-bar", usesInheritance: true, ngImport: i0, template: `<ng-container *ngIf="data$ | async as data"> </ng-container>`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HeaderBarComponent, selector: "ng-dhis2-ui-header-bar", usesInheritance: true, ngImport: i0, template: `<ng-container></ng-container>`, isInline: true }); }
31
30
  }
32
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderBarComponent, decorators: [{
33
32
  type: Component,
34
33
  args: [{
35
34
  selector: 'ng-dhis2-ui-header-bar',
36
- template: `<ng-container *ngIf="data$ | async as data"> </ng-container>`,
35
+ template: `<ng-container></ng-container>`,
37
36
  }]
38
37
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgxDhis2HttpClientService }]; } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci9oZWFkZXItYmFyLmNvbXBvbmVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekUsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxLQUFLLFFBQVEsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFNL0MsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHFCQUFxQjtJQUczRCxZQUNFLFVBQW1DLEVBQzNCLFVBQXFDO1FBRTdDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUZWLGVBQVUsR0FBVixVQUFVLENBQTJCO0lBRy9DLENBQUM7SUFFUSxLQUFLLENBQUMsZUFBZTtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkUsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSTtZQUNuQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FDSixvQkFBQyxZQUFZLFFBQ1Ysb0JBQUMsU0FBUyxJQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUksQ0FDdEMsQ0FDaEI7WUFDSCxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsd0RBQStCLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7K0dBeEJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHFGQUZuQiw4REFBOEQ7OzRGQUU3RCxrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFLDhEQUE4RDtpQkFDekUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4RGhpczJIdHRwQ2xpZW50U2VydmljZSB9IGZyb20gJ0BpYXBwcy9uZ3gtZGhpczItaHR0cC1jbGllbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhlYWRlckJhckRhdGEgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBSZWFjdFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEYXRhUHJvdmlkZXIgfSBmcm9tICdAZGhpczIvYXBwLXJ1bnRpbWUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuaW1wb3J0IHsgSGVhZGVyQmFyIH0gZnJvbSAnLi91dGlscy9oZWFkZXItYmFyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctZGhpczItdWktaGVhZGVyLWJhcicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEkIHwgYXN5bmMgYXMgZGF0YVwiPiA8L25nLWNvbnRhaW5lcj5gLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJCYXJDb21wb25lbnQgZXh0ZW5kcyBSZWFjdFdyYXBwZXJDb21wb25lbnQge1xuICBkYXRhJCE6IE9ic2VydmFibGU8SGVhZGVyQmFyRGF0YSB8IG51bGw+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogTmd4RGhpczJIdHRwQ2xpZW50U2VydmljZVxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudFJlZikgdGhyb3cgbmV3IEVycm9yKCdObyBlbGVtZW50IHJlZicpO1xuICAgIHRoaXMucmVhY3REb21Sb290ID0gUmVhY3RET00uY3JlYXRlUm9vdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgY29uc3QgbWFuaWZlc3QgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQubWFuaWZlc3QoKSk7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKG5ldyBIZWFkZXJCYXJEYXRhKHRoaXMuaHR0cENsaWVudCkuZ2V0KCkpO1xuXG4gICAgdGhpcy5jb21wb25lbnQgPSBkYXRhXG4gICAgICA/ICgpID0+IChcbiAgICAgICAgICA8RGF0YVByb3ZpZGVyPlxuICAgICAgICAgICAgezxIZWFkZXJCYXIgYXBwTmFtZT17bWFuaWZlc3Q/Lm5hbWV9IGRhdGE9e2RhdGF9IC8+fVxuICAgICAgICAgIDwvRGF0YVByb3ZpZGVyPlxuICAgICAgICApXG4gICAgICA6ICgpID0+IDxkaXY+U29tZXRoaW5nIHdlbnQgd3Jvbmc8L2Rpdj47XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxufVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci9oZWFkZXItYmFyLmNvbXBvbmVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEtBQUssUUFBUSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQU0vQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEscUJBQXFCO0lBQzNELFlBQ0UsVUFBbUMsRUFDM0IsVUFBcUM7UUFFN0MsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRlYsZUFBVSxHQUFWLFVBQVUsQ0FBMkI7SUFHL0MsQ0FBQztJQUVRLEtBQUssQ0FBQyxlQUFlO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RSxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJO1lBQ25CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUNKLG9CQUFDLFlBQVksUUFDVixvQkFBQyxTQUFTLElBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUN0QyxDQUNoQjtZQUNILENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3REFBK0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQzsrR0F0QlUsa0JBQWtCO21HQUFsQixrQkFBa0IscUZBRm5CLCtCQUErQjs7NEZBRTlCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUUsK0JBQStCO2lCQUMxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVByb3ZpZGVyIH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJztcbmltcG9ydCB7IE5neERoaXMySHR0cENsaWVudFNlcnZpY2UgfSBmcm9tICdAaWFwcHMvbmd4LWRoaXMyLWh0dHAtY2xpZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZWFjdFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBIZWFkZXJCYXJEYXRhIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgSGVhZGVyQmFyIH0gZnJvbSAnLi91dGlscy9oZWFkZXItYmFyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctZGhpczItdWktaGVhZGVyLWJhcicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5gLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJCYXJDb21wb25lbnQgZXh0ZW5kcyBSZWFjdFdyYXBwZXJDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IE5neERoaXMySHR0cENsaWVudFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZik7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYpIHRocm93IG5ldyBFcnJvcignTm8gZWxlbWVudCByZWYnKTtcbiAgICB0aGlzLnJlYWN0RG9tUm9vdCA9IFJlYWN0RE9NLmNyZWF0ZVJvb3QodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwQ2xpZW50Lm1hbmlmZXN0KCkpO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShuZXcgSGVhZGVyQmFyRGF0YSh0aGlzLmh0dHBDbGllbnQpLmdldCgpKTtcblxuICAgIHRoaXMuY29tcG9uZW50ID0gZGF0YVxuICAgICAgPyAoKSA9PiAoXG4gICAgICAgICAgPERhdGFQcm92aWRlcj5cbiAgICAgICAgICAgIHs8SGVhZGVyQmFyIGFwcE5hbWU9e21hbmlmZXN0Py5uYW1lfSBkYXRhPXtkYXRhfSAvPn1cbiAgICAgICAgICA8L0RhdGFQcm92aWRlcj5cbiAgICAgICAgKVxuICAgICAgOiAoKSA9PiA8ZGl2PlNvbWV0aGluZyB3ZW50IHdyb25nPC9kaXY+O1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,212 @@
1
+ import { useDataEngine } from '@dhis2/app-runtime';
2
+ import i18n from '@dhis2/d2-i18n';
3
+ import { Button, Checkbox, colors, IconWarningFilled16, MultiSelect, MultiSelectOption, OrganisationUnitTree, } from '@dhis2/ui';
4
+ import cx from 'classnames';
5
+ import PropTypes from 'prop-types';
6
+ import React, { useEffect, useState } from 'react';
7
+ import { DIMENSION_ID_ORGUNIT, formatList } from '../../../shared';
8
+ import { ouIdHelper, USER_ORG_UNIT, USER_ORG_UNIT_CHILDREN, USER_ORG_UNIT_GRANDCHILDREN, } from '../components';
9
+ import { styles } from './styles/OrgUnitDimension.style';
10
+ const DYNAMIC_ORG_UNITS = [
11
+ USER_ORG_UNIT,
12
+ USER_ORG_UNIT_CHILDREN,
13
+ USER_ORG_UNIT_GRANDCHILDREN,
14
+ ];
15
+ const OrgUnitDimension = ({ roots, selected, onSelect, hideGroupSelect, hideLevelSelect, hideUserOrgUnits, warning, orgUnitGroupPromise, orgUnitLevelPromise, }) => {
16
+ const [ouLevels, setOuLevels] = useState([]);
17
+ const [ouGroups, setOuGroups] = useState([]);
18
+ const [selectedItems, setSelectedItems] = useState(selected);
19
+ const dataEngine = useDataEngine();
20
+ const onSelectItems = (selectedItem) => {
21
+ const { id, checked, displayName, path } = selectedItem;
22
+ let result = [...selectedItems];
23
+ if (checked && DYNAMIC_ORG_UNITS.includes(id)) {
24
+ result = [
25
+ ...result.filter((item) => DYNAMIC_ORG_UNITS.includes(item.id)),
26
+ { id, displayName },
27
+ ];
28
+ }
29
+ else if (checked) {
30
+ result.push({ id, path, name: displayName });
31
+ }
32
+ else {
33
+ result = [...result.filter((item) => item.id !== id)];
34
+ }
35
+ setSelectedItems(result);
36
+ onSelect({
37
+ dimensionId: DIMENSION_ID_ORGUNIT,
38
+ items: result,
39
+ });
40
+ };
41
+ const clearSelection = () => {
42
+ setSelectedItems([]);
43
+ onSelect({
44
+ dimensionId: DIMENSION_ID_ORGUNIT,
45
+ items: [],
46
+ });
47
+ };
48
+ useEffect(() => {
49
+ const doFetchOuLevels = async () => {
50
+ const result = await orgUnitLevelPromise;
51
+ result.sort((a, b) => (a.level > b.level ? 1 : -1));
52
+ setOuLevels(result);
53
+ };
54
+ const doFetchOuGroups = async () => {
55
+ const result = await orgUnitGroupPromise;
56
+ setOuGroups(result);
57
+ };
58
+ !hideLevelSelect && doFetchOuLevels();
59
+ !hideGroupSelect && doFetchOuGroups();
60
+ }, [dataEngine, hideLevelSelect, hideGroupSelect]);
61
+ const onLevelChange = (ids) => {
62
+ const items = ids.map((id) => ({
63
+ id: ouIdHelper.addLevelPrefix(id),
64
+ name: ouLevels?.find((level) => level.id === id)
65
+ ?.displayName,
66
+ }));
67
+ setSelectedItems([
68
+ ...selectedItems.filter((ou) => !ouIdHelper.hasLevelPrefix(ou.id)),
69
+ ...items,
70
+ ]);
71
+ onSelect({
72
+ dimensionId: DIMENSION_ID_ORGUNIT,
73
+ items: selectedItems,
74
+ });
75
+ };
76
+ const onGroupChange = (ids) => {
77
+ const items = ids.map((id) => ({
78
+ id: ouIdHelper.addGroupPrefix(id),
79
+ name: (ouGroups?.find((group) => group.id === id) || {})
80
+ .displayName,
81
+ }));
82
+ setSelectedItems([
83
+ ...selectedItems.filter((ou) => !ouIdHelper.hasGroupPrefix(ou.id)),
84
+ ...items,
85
+ ]);
86
+ onSelect({
87
+ dimensionId: DIMENSION_ID_ORGUNIT,
88
+ items: selectedItems,
89
+ });
90
+ };
91
+ const getSummary = () => {
92
+ let summary;
93
+ if (selectedItems.length) {
94
+ const numberOfOrgUnits = selectedItems.filter((item) => !DYNAMIC_ORG_UNITS.includes(item.id) &&
95
+ !ouIdHelper.hasLevelPrefix(item.id) &&
96
+ !ouIdHelper.hasGroupPrefix(item.id)).length;
97
+ const numberOfLevels = selectedItems.filter((item) => ouIdHelper.hasLevelPrefix(item.id)).length;
98
+ const numberOfGroups = selectedItems.filter((item) => ouIdHelper.hasGroupPrefix(item.id)).length;
99
+ const userOrgUnits = selectedItems.filter((item) => DYNAMIC_ORG_UNITS.includes(item.id));
100
+ const parts = [];
101
+ if (numberOfOrgUnits) {
102
+ parts.push(i18n.t('{{count}} org units', {
103
+ count: numberOfOrgUnits,
104
+ defaultValue: '{{count}} org unit',
105
+ defaultValue_plural: '{{count}} org units',
106
+ }));
107
+ }
108
+ if (numberOfLevels) {
109
+ parts.push(i18n.t('{{count}} levels', {
110
+ count: numberOfLevels,
111
+ defaultValue: '{{count}} level',
112
+ defaultValue_plural: '{{count}} levels',
113
+ }));
114
+ }
115
+ if (numberOfGroups) {
116
+ parts.push(i18n.t('{{count}} groups', {
117
+ count: numberOfGroups,
118
+ defaultValue: '{{count}} group',
119
+ defaultValue_plural: '{{count}} groups',
120
+ }));
121
+ }
122
+ userOrgUnits.forEach((orgUnit) => {
123
+ parts.push(orgUnit.name || orgUnit.displayName);
124
+ });
125
+ summary = i18n.t('Selected: {{commaSeparatedListOfOrganisationUnits}}', {
126
+ keySeparator: '>',
127
+ nsSeparator: '|',
128
+ commaSeparatedListOfOrganisationUnits: formatList(parts),
129
+ });
130
+ }
131
+ else {
132
+ summary = i18n.t('Nothing selected');
133
+ }
134
+ return summary;
135
+ };
136
+ return (React.createElement("div", { className: "container" },
137
+ !hideUserOrgUnits && (React.createElement("div", { className: "userOrgUnitsWrapper" },
138
+ React.createElement(Checkbox, { label: i18n.t('User organisation unit'), checked: selectedItems.some((item) => item.id === USER_ORG_UNIT), onChange: ({ checked }) => onSelectItems({
139
+ id: USER_ORG_UNIT,
140
+ checked,
141
+ displayName: i18n.t('User organisation unit'),
142
+ }), dense: true }),
143
+ React.createElement(Checkbox, { label: i18n.t('User sub-units'), checked: selectedItems.some((item) => item.id === USER_ORG_UNIT_CHILDREN), onChange: ({ checked }) => onSelectItems({
144
+ id: USER_ORG_UNIT_CHILDREN,
145
+ checked,
146
+ displayName: i18n.t('User sub-units'),
147
+ }), dense: true }),
148
+ React.createElement(Checkbox, { label: i18n.t('User sub-x2-units'), checked: selectedItems.some((item) => item.id === USER_ORG_UNIT_GRANDCHILDREN), onChange: ({ checked }) => onSelectItems({
149
+ id: USER_ORG_UNIT_GRANDCHILDREN,
150
+ checked,
151
+ displayName: i18n.t('User sub-x2-units'),
152
+ }), dense: true }))),
153
+ React.createElement("div", { className: cx('orgUnitTreeWrapper', {
154
+ disabled: selectedItems.some((item) => DYNAMIC_ORG_UNITS.includes(item.id)),
155
+ }) },
156
+ React.createElement(OrganisationUnitTree, { roots: roots, initiallyExpanded: [
157
+ ...(roots.length === 1 ? [`/${roots[0]}`] : []),
158
+ ...selectedItems
159
+ .filter((item) => !DYNAMIC_ORG_UNITS.includes(item.id) &&
160
+ !ouIdHelper.hasLevelPrefix(item.id) &&
161
+ !ouIdHelper.hasGroupPrefix(item.id))
162
+ .map((item) => item.path.substring(0, item.path.lastIndexOf('/')))
163
+ .filter((path) => path),
164
+ ], selected: selectedItems
165
+ .filter((item) => !DYNAMIC_ORG_UNITS.includes(item.id) &&
166
+ !ouIdHelper.hasLevelPrefix(item.id) &&
167
+ !ouIdHelper.hasGroupPrefix(item.id))
168
+ .map((item) => item.path), onChange: onSelectItems, dataTest: 'org-unit-tree' })),
169
+ React.createElement("div", { className: cx('selectsWrapper', {
170
+ disabled: selectedItems.some((item) => DYNAMIC_ORG_UNITS.includes(item.id)),
171
+ hidden: hideLevelSelect && hideGroupSelect,
172
+ }) },
173
+ !hideLevelSelect && (React.createElement(MultiSelect, { selected: ouLevels.length
174
+ ? selectedItems
175
+ .filter((item) => ouIdHelper.hasLevelPrefix(item.id))
176
+ .map((item) => ouIdHelper.removePrefix(item.id))
177
+ : [], onChange: ({ selected }) => onLevelChange(selected), placeholder: i18n.t('Select a level'), loading: !ouLevels.length, dense: true, dataTest: 'org-unit-level-select' }, ouLevels.map((level) => (React.createElement(MultiSelectOption, { key: level.id, value: level.id, label: level.displayName, dataTest: `org-unit-level-select-option-${level.id}` }))))),
178
+ !hideGroupSelect && (React.createElement(MultiSelect, { selected: ouGroups.length
179
+ ? selectedItems
180
+ .filter((item) => ouIdHelper.hasGroupPrefix(item.id))
181
+ .map((item) => ouIdHelper.removePrefix(item.id))
182
+ : [], onChange: ({ selected }) => onGroupChange(selected), placeholder: i18n.t('Select a group'), loading: !ouGroups.length, dense: true, dataTest: 'org-unit-group-select' }, ouGroups.map((group) => (React.createElement(MultiSelectOption, { key: group.id, value: group.id, label: group.displayName, dataTest: `org-unit-group-select-option-${group.id}` })))))),
183
+ React.createElement("div", { className: "summaryWrapper" },
184
+ warning ? (React.createElement("div", { className: "warningWrapper" },
185
+ React.createElement(IconWarningFilled16, { color: colors.red500 }),
186
+ React.createElement("span", { className: "warningText" }, warning))) : (React.createElement("span", { className: "summaryText" }, getSummary())),
187
+ React.createElement("div", { className: "deselectButton" },
188
+ React.createElement(Button, { secondary: true, small: true, onClick: clearSelection, disabled: !selectedItems.length }, i18n.t('Deselect all')))),
189
+ React.createElement("style", { jsx: true }, styles)));
190
+ };
191
+ OrgUnitDimension.defaultProps = {
192
+ hideGroupSelect: false,
193
+ hideLevelSelect: false,
194
+ hideUserOrgUnits: false,
195
+ };
196
+ OrgUnitDimension.propTypes = {
197
+ hideGroupSelect: PropTypes.bool,
198
+ hideLevelSelect: PropTypes.bool,
199
+ hideUserOrgUnits: PropTypes.bool,
200
+ roots: PropTypes.arrayOf(PropTypes.string),
201
+ selected: PropTypes.arrayOf(PropTypes.shape({
202
+ id: PropTypes.string.isRequired,
203
+ name: PropTypes.string.isRequired,
204
+ path: PropTypes.string,
205
+ })),
206
+ warning: PropTypes.string,
207
+ onSelect: PropTypes.func,
208
+ orgUnitGroupPromise: PropTypes.any,
209
+ orgUnitLevelPromise: PropTypes.any,
210
+ };
211
+ export default OrgUnitDimension;
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnVW5pdERpbWVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9vcmdhbmlzYXRpb24tdW5pdC1zZWxlY3Rvci9jb21wb25lbnRzL09yZ1VuaXREaW1lbnNpb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLElBQUksTUFBTSxnQkFBZ0IsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsb0JBQW9CLEdBQ3JCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRW5ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsVUFBVSxFQUNWLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIsMkJBQTJCLEdBQzVCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RCxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsMkJBQTJCO0NBQzVCLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLENBQUMsRUFDeEIsS0FBSyxFQUNMLFFBQVEsRUFDUixRQUFRLEVBQ1IsZUFBZSxFQUNmLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsT0FBTyxFQUNQLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDZixFQUFFLEVBQUU7SUFD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QUFFLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQy9CLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDakMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0tBQ3ZCLENBQUMsQ0FDSDtJQUNELE9BQU8sRUFBRSxTQUFTLENBQUMsTUFBTTtJQUN6QixRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUk7SUFDeEIsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLEdBQUc7SUFDbEMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDbkMsQ0FBQztBQUVGLGVBQWUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VEYXRhRW5naW5lIH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJztcbmltcG9ydCBpMThuIGZyb20gJ0BkaGlzMi9kMi1pMThuJztcbmltcG9ydCB7XG4gIEJ1dHRvbixcbiAgQ2hlY2tib3gsXG4gIGNvbG9ycyxcbiAgSWNvbldhcm5pbmdGaWxsZWQxNixcbiAgTXVsdGlTZWxlY3QsXG4gIE11bHRpU2VsZWN0T3B0aW9uLFxuICBPcmdhbmlzYXRpb25Vbml0VHJlZSxcbn0gZnJvbSAnQGRoaXMyL3VpJztcbmltcG9ydCBjeCBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgRElNRU5TSU9OX0lEX09SR1VOSVQsIGZvcm1hdExpc3QgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHtcbiAgb3VJZEhlbHBlcixcbiAgVVNFUl9PUkdfVU5JVCxcbiAgVVNFUl9PUkdfVU5JVF9DSElMRFJFTixcbiAgVVNFUl9PUkdfVU5JVF9HUkFORENISUxEUkVOLFxufSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IHN0eWxlcyB9IGZyb20gJy4vc3R5bGVzL09yZ1VuaXREaW1lbnNpb24uc3R5bGUnO1xuXG5jb25zdCBEWU5BTUlDX09SR19VTklUUyA9IFtcbiAgVVNFUl9PUkdfVU5JVCxcbiAgVVNFUl9PUkdfVU5JVF9DSElMRFJFTixcbiAgVVNFUl9PUkdfVU5JVF9HUkFORENISUxEUkVOLFxuXTtcblxuY29uc3QgT3JnVW5pdERpbWVuc2lvbiA9ICh7XG4gIHJvb3RzLFxuICBzZWxlY3RlZCxcbiAgb25TZWxlY3QsXG4gIGhpZGVHcm91cFNlbGVjdCxcbiAgaGlkZUxldmVsU2VsZWN0LFxuICBoaWRlVXNlck9yZ1VuaXRzLFxuICB3YXJuaW5nLFxuICBvcmdVbml0R3JvdXBQcm9taXNlLFxuICBvcmdVbml0TGV2ZWxQcm9taXNlLFxufTogYW55KSA9PiB7XG4gIGNvbnN0IFtvdUxldmVscywgc2V0T3VMZXZlbHNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbb3VHcm91cHMsIHNldE91R3JvdXBzXSA9IHVzZVN0YXRlKFtdKTtcbiAgY29uc3QgW3NlbGVjdGVkSXRlbXMsIHNldFNlbGVjdGVkSXRlbXNdID0gdXNlU3RhdGUoc2VsZWN0ZWQpO1xuICBjb25zdCBkYXRhRW5naW5lID0gdXNlRGF0YUVuZ2luZSgpO1xuXG4gIGNvbnN0IG9uU2VsZWN0SXRlbXMgPSAoc2VsZWN0ZWRJdGVtOiBhbnkpID0+IHtcbiAgICBjb25zdCB7IGlkLCBjaGVja2VkLCBkaXNwbGF5TmFtZSwgcGF0aCB9ID0gc2VsZWN0ZWRJdGVtO1xuICAgIGxldCByZXN1bHQgPSBbLi4uc2VsZWN0ZWRJdGVtc107XG5cbiAgICBpZiAoY2hlY2tlZCAmJiBEWU5BTUlDX09SR19VTklUUy5pbmNsdWRlcyhpZCkpIHtcbiAgICAgIHJlc3VsdCA9IFtcbiAgICAgICAgLi4ucmVzdWx0LmZpbHRlcigoaXRlbSkgPT4gRFlOQU1JQ19PUkdfVU5JVFMuaW5jbHVkZXMoaXRlbS5pZCkpLFxuICAgICAgICB7IGlkLCBkaXNwbGF5TmFtZSB9LFxuICAgICAgXTtcbiAgICB9IGVsc2UgaWYgKGNoZWNrZWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHsgaWQsIHBhdGgsIG5hbWU6IGRpc3BsYXlOYW1lIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBbLi4ucmVzdWx0LmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pZCAhPT0gaWQpXTtcbiAgICB9XG5cbiAgICBzZXRTZWxlY3RlZEl0ZW1zKHJlc3VsdCBhcyBhbnkpO1xuXG4gICAgb25TZWxlY3Qoe1xuICAgICAgZGltZW5zaW9uSWQ6IERJTUVOU0lPTl9JRF9PUkdVTklULFxuICAgICAgaXRlbXM6IHJlc3VsdCxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjbGVhclNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICBzZXRTZWxlY3RlZEl0ZW1zKFtdKTtcbiAgICBvblNlbGVjdCh7XG4gICAgICBkaW1lbnNpb25JZDogRElNRU5TSU9OX0lEX09SR1VOSVQsXG4gICAgICBpdGVtczogW10sXG4gICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBkb0ZldGNoT3VMZXZlbHMgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBvcmdVbml0TGV2ZWxQcm9taXNlO1xuICAgICAgcmVzdWx0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiAoYS5sZXZlbCA+IGIubGV2ZWwgPyAxIDogLTEpKTtcbiAgICAgIHNldE91TGV2ZWxzKHJlc3VsdCk7XG4gICAgfTtcbiAgICBjb25zdCBkb0ZldGNoT3VHcm91cHMgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBvcmdVbml0R3JvdXBQcm9taXNlO1xuICAgICAgc2V0T3VHcm91cHMocmVzdWx0KTtcbiAgICB9O1xuXG4gICAgIWhpZGVMZXZlbFNlbGVjdCAmJiBkb0ZldGNoT3VMZXZlbHMoKTtcbiAgICAhaGlkZUdyb3VwU2VsZWN0ICYmIGRvRmV0Y2hPdUdyb3VwcygpO1xuICB9LCBbZGF0YUVuZ2luZSwgaGlkZUxldmVsU2VsZWN0LCBoaWRlR3JvdXBTZWxlY3RdKTtcblxuICBjb25zdCBvbkxldmVsQ2hhbmdlID0gKGlkczogc3RyaW5nW10pID0+IHtcbiAgICBjb25zdCBpdGVtcyA9IGlkcy5tYXAoKGlkOiBzdHJpbmcpID0+ICh7XG4gICAgICBpZDogb3VJZEhlbHBlci5hZGRMZXZlbFByZWZpeChpZCksXG4gICAgICBuYW1lOiAob3VMZXZlbHM/LmZpbmQoKGxldmVsOiBhbnkpID0+IGxldmVsLmlkID09PSBpZCkgYXMgYW55KVxuICAgICAgICA/LmRpc3BsYXlOYW1lLFxuICAgIH0pKTtcblxuICAgIHNldFNlbGVjdGVkSXRlbXMoW1xuICAgICAgLi4uc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKG91OiBhbnkpID0+ICFvdUlkSGVscGVyLmhhc0xldmVsUHJlZml4KG91LmlkKSksXG4gICAgICAuLi5pdGVtcyxcbiAgICBdKTtcblxuICAgIG9uU2VsZWN0KHtcbiAgICAgIGRpbWVuc2lvbklkOiBESU1FTlNJT05fSURfT1JHVU5JVCxcbiAgICAgIGl0ZW1zOiBzZWxlY3RlZEl0ZW1zLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IG9uR3JvdXBDaGFuZ2UgPSAoaWRzOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gaWRzLm1hcCgoaWQ6IHN0cmluZykgPT4gKHtcbiAgICAgIGlkOiBvdUlkSGVscGVyLmFkZEdyb3VwUHJlZml4KGlkKSxcbiAgICAgIG5hbWU6ICgob3VHcm91cHM/LmZpbmQoKGdyb3VwOiBhbnkpID0+IGdyb3VwLmlkID09PSBpZCkgfHwge30pIGFzIGFueSlcbiAgICAgICAgLmRpc3BsYXlOYW1lLFxuICAgIH0pKTtcblxuICAgIHNldFNlbGVjdGVkSXRlbXMoW1xuICAgICAgLi4uc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKG91OiBhbnkpID0+ICFvdUlkSGVscGVyLmhhc0dyb3VwUHJlZml4KG91LmlkKSksXG4gICAgICAuLi5pdGVtcyxcbiAgICBdKTtcblxuICAgIG9uU2VsZWN0KHtcbiAgICAgIGRpbWVuc2lvbklkOiBESU1FTlNJT05fSURfT1JHVU5JVCxcbiAgICAgIGl0ZW1zOiBzZWxlY3RlZEl0ZW1zLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGdldFN1bW1hcnkgPSAoKSA9PiB7XG4gICAgbGV0IHN1bW1hcnk7XG4gICAgaWYgKHNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBudW1iZXJPZk9yZ1VuaXRzID0gc2VsZWN0ZWRJdGVtcy5maWx0ZXIoXG4gICAgICAgIChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgIURZTkFNSUNfT1JHX1VOSVRTLmluY2x1ZGVzKGl0ZW0uaWQpICYmXG4gICAgICAgICAgIW91SWRIZWxwZXIuaGFzTGV2ZWxQcmVmaXgoaXRlbS5pZCkgJiZcbiAgICAgICAgICAhb3VJZEhlbHBlci5oYXNHcm91cFByZWZpeChpdGVtLmlkKVxuICAgICAgKS5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IG51bWJlck9mTGV2ZWxzID0gc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT5cbiAgICAgICAgb3VJZEhlbHBlci5oYXNMZXZlbFByZWZpeChpdGVtLmlkKVxuICAgICAgKS5sZW5ndGg7XG4gICAgICBjb25zdCBudW1iZXJPZkdyb3VwcyA9IHNlbGVjdGVkSXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+XG4gICAgICAgIG91SWRIZWxwZXIuaGFzR3JvdXBQcmVmaXgoaXRlbS5pZClcbiAgICAgICkubGVuZ3RoO1xuICAgICAgY29uc3QgdXNlck9yZ1VuaXRzID0gc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT5cbiAgICAgICAgRFlOQU1JQ19PUkdfVU5JVFMuaW5jbHVkZXMoaXRlbS5pZClcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHBhcnRzID0gW107XG5cbiAgICAgIGlmIChudW1iZXJPZk9yZ1VuaXRzKSB7XG4gICAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgICAgaTE4bi50KCd7e2NvdW50fX0gb3JnIHVuaXRzJywge1xuICAgICAgICAgICAgY291bnQ6IG51bWJlck9mT3JnVW5pdHMsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6ICd7e2NvdW50fX0gb3JnIHVuaXQnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlX3BsdXJhbDogJ3t7Y291bnR9fSBvcmcgdW5pdHMnLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAobnVtYmVyT2ZMZXZlbHMpIHtcbiAgICAgICAgcGFydHMucHVzaChcbiAgICAgICAgICBpMThuLnQoJ3t7Y291bnR9fSBsZXZlbHMnLCB7XG4gICAgICAgICAgICBjb3VudDogbnVtYmVyT2ZMZXZlbHMsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6ICd7e2NvdW50fX0gbGV2ZWwnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlX3BsdXJhbDogJ3t7Y291bnR9fSBsZXZlbHMnLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAobnVtYmVyT2ZHcm91cHMpIHtcbiAgICAgICAgcGFydHMucHVzaChcbiAgICAgICAgICBpMThuLnQoJ3t7Y291bnR9fSBncm91cHMnLCB7XG4gICAgICAgICAgICBjb3VudDogbnVtYmVyT2ZHcm91cHMsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6ICd7e2NvdW50fX0gZ3JvdXAnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlX3BsdXJhbDogJ3t7Y291bnR9fSBncm91cHMnLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB1c2VyT3JnVW5pdHMuZm9yRWFjaCgob3JnVW5pdDogYW55KSA9PiB7XG4gICAgICAgIHBhcnRzLnB1c2gob3JnVW5pdC5uYW1lIHx8IG9yZ1VuaXQuZGlzcGxheU5hbWUpO1xuICAgICAgfSk7XG4gICAgICBzdW1tYXJ5ID0gaTE4bi50KCdTZWxlY3RlZDoge3tjb21tYVNlcGFyYXRlZExpc3RPZk9yZ2FuaXNhdGlvblVuaXRzfX0nLCB7XG4gICAgICAgIGtleVNlcGFyYXRvcjogJz4nLFxuICAgICAgICBuc1NlcGFyYXRvcjogJ3wnLFxuICAgICAgICBjb21tYVNlcGFyYXRlZExpc3RPZk9yZ2FuaXNhdGlvblVuaXRzOiBmb3JtYXRMaXN0KHBhcnRzKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdW1tYXJ5ID0gaTE4bi50KCdOb3RoaW5nIHNlbGVjdGVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1bW1hcnk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxuICAgICAgeyFoaWRlVXNlck9yZ1VuaXRzICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1c2VyT3JnVW5pdHNXcmFwcGVyXCI+XG4gICAgICAgICAgPENoZWNrYm94XG4gICAgICAgICAgICBsYWJlbD17aTE4bi50KCdVc2VyIG9yZ2FuaXNhdGlvbiB1bml0Jyl9XG4gICAgICAgICAgICBjaGVja2VkPXtzZWxlY3RlZEl0ZW1zLnNvbWUoXG4gICAgICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uaWQgPT09IFVTRVJfT1JHX1VOSVRcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBvbkNoYW5nZT17KHsgY2hlY2tlZCB9OiBhbnkpID0+XG4gICAgICAgICAgICAgIG9uU2VsZWN0SXRlbXMoe1xuICAgICAgICAgICAgICAgIGlkOiBVU0VSX09SR19VTklULFxuICAgICAgICAgICAgICAgIGNoZWNrZWQsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGkxOG4udCgnVXNlciBvcmdhbmlzYXRpb24gdW5pdCcpLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVuc2VcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgbGFiZWw9e2kxOG4udCgnVXNlciBzdWItdW5pdHMnKX1cbiAgICAgICAgICAgIGNoZWNrZWQ9e3NlbGVjdGVkSXRlbXMuc29tZShcbiAgICAgICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5pZCA9PT0gVVNFUl9PUkdfVU5JVF9DSElMRFJFTlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoeyBjaGVja2VkIH06IGFueSkgPT5cbiAgICAgICAgICAgICAgb25TZWxlY3RJdGVtcyh7XG4gICAgICAgICAgICAgICAgaWQ6IFVTRVJfT1JHX1VOSVRfQ0hJTERSRU4sXG4gICAgICAgICAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogaTE4bi50KCdVc2VyIHN1Yi11bml0cycpLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVuc2VcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgbGFiZWw9e2kxOG4udCgnVXNlciBzdWIteDItdW5pdHMnKX1cbiAgICAgICAgICAgIGNoZWNrZWQ9e3NlbGVjdGVkSXRlbXMuc29tZShcbiAgICAgICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5pZCA9PT0gVVNFUl9PUkdfVU5JVF9HUkFORENISUxEUkVOXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyh7IGNoZWNrZWQgfTogYW55KSA9PlxuICAgICAgICAgICAgICBvblNlbGVjdEl0ZW1zKHtcbiAgICAgICAgICAgICAgICBpZDogVVNFUl9PUkdfVU5JVF9HUkFORENISUxEUkVOLFxuICAgICAgICAgICAgICAgIGNoZWNrZWQsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGkxOG4udCgnVXNlciBzdWIteDItdW5pdHMnKSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlbnNlXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2N4KCdvcmdVbml0VHJlZVdyYXBwZXInLCB7XG4gICAgICAgICAgZGlzYWJsZWQ6IHNlbGVjdGVkSXRlbXMuc29tZSgoaXRlbTogYW55KSA9PlxuICAgICAgICAgICAgRFlOQU1JQ19PUkdfVU5JVFMuaW5jbHVkZXMoaXRlbS5pZClcbiAgICAgICAgICApLFxuICAgICAgICB9KX1cbiAgICAgID5cbiAgICAgICAgPE9yZ2FuaXNhdGlvblVuaXRUcmVlXG4gICAgICAgICAgcm9vdHM9e3Jvb3RzfVxuICAgICAgICAgIGluaXRpYWxseUV4cGFuZGVkPXtbXG4gICAgICAgICAgICAuLi4ocm9vdHMubGVuZ3RoID09PSAxID8gW2AvJHtyb290c1swXX1gXSA6IFtdKSxcbiAgICAgICAgICAgIC4uLnNlbGVjdGVkSXRlbXNcbiAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoaXRlbTogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgIURZTkFNSUNfT1JHX1VOSVRTLmluY2x1ZGVzKGl0ZW0uaWQpICYmXG4gICAgICAgICAgICAgICAgICAhb3VJZEhlbHBlci5oYXNMZXZlbFByZWZpeChpdGVtLmlkKSAmJlxuICAgICAgICAgICAgICAgICAgIW91SWRIZWxwZXIuaGFzR3JvdXBQcmVmaXgoaXRlbS5pZClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgaXRlbS5wYXRoLnN1YnN0cmluZygwLCBpdGVtLnBhdGgubGFzdEluZGV4T2YoJy8nKSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuZmlsdGVyKChwYXRoOiBhbnkpID0+IHBhdGgpLFxuICAgICAgICAgIF19XG4gICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkSXRlbXNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgIChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgIURZTkFNSUNfT1JHX1VOSVRTLmluY2x1ZGVzKGl0ZW0uaWQpICYmXG4gICAgICAgICAgICAgICAgIW91SWRIZWxwZXIuaGFzTGV2ZWxQcmVmaXgoaXRlbS5pZCkgJiZcbiAgICAgICAgICAgICAgICAhb3VJZEhlbHBlci5oYXNHcm91cFByZWZpeChpdGVtLmlkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnBhdGgpfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvblNlbGVjdEl0ZW1zfVxuICAgICAgICAgIGRhdGFUZXN0PXsnb3JnLXVuaXQtdHJlZSd9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjeCgnc2VsZWN0c1dyYXBwZXInLCB7XG4gICAgICAgICAgZGlzYWJsZWQ6IHNlbGVjdGVkSXRlbXMuc29tZSgoaXRlbTogYW55KSA9PlxuICAgICAgICAgICAgRFlOQU1JQ19PUkdfVU5JVFMuaW5jbHVkZXMoaXRlbS5pZClcbiAgICAgICAgICApLFxuICAgICAgICAgIGhpZGRlbjogaGlkZUxldmVsU2VsZWN0ICYmIGhpZGVHcm91cFNlbGVjdCxcbiAgICAgICAgfSl9XG4gICAgICA+XG4gICAgICAgIHshaGlkZUxldmVsU2VsZWN0ICYmIChcbiAgICAgICAgICA8TXVsdGlTZWxlY3RcbiAgICAgICAgICAgIHNlbGVjdGVkPXtcbiAgICAgICAgICAgICAgb3VMZXZlbHMubGVuZ3RoXG4gICAgICAgICAgICAgICAgPyBzZWxlY3RlZEl0ZW1zXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gb3VJZEhlbHBlci5oYXNMZXZlbFByZWZpeChpdGVtLmlkKSlcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBvdUlkSGVscGVyLnJlbW92ZVByZWZpeChpdGVtLmlkKSlcbiAgICAgICAgICAgICAgICA6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNoYW5nZT17KHsgc2VsZWN0ZWQgfTogYW55KSA9PiBvbkxldmVsQ2hhbmdlKHNlbGVjdGVkKX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpMThuLnQoJ1NlbGVjdCBhIGxldmVsJyl9XG4gICAgICAgICAgICBsb2FkaW5nPXshb3VMZXZlbHMubGVuZ3RofVxuICAgICAgICAgICAgZGVuc2VcbiAgICAgICAgICAgIGRhdGFUZXN0PXsnb3JnLXVuaXQtbGV2ZWwtc2VsZWN0J31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7b3VMZXZlbHMubWFwKChsZXZlbDogYW55KSA9PiAoXG4gICAgICAgICAgICAgIDxNdWx0aVNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgIGtleT17bGV2ZWwuaWR9XG4gICAgICAgICAgICAgICAgdmFsdWU9e2xldmVsLmlkfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtsZXZlbC5kaXNwbGF5TmFtZX1cbiAgICAgICAgICAgICAgICBkYXRhVGVzdD17YG9yZy11bml0LWxldmVsLXNlbGVjdC1vcHRpb24tJHtsZXZlbC5pZH1gfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9NdWx0aVNlbGVjdD5cbiAgICAgICAgKX1cbiAgICAgICAgeyFoaWRlR3JvdXBTZWxlY3QgJiYgKFxuICAgICAgICAgIDxNdWx0aVNlbGVjdFxuICAgICAgICAgICAgc2VsZWN0ZWQ9e1xuICAgICAgICAgICAgICBvdUdyb3Vwcy5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IHNlbGVjdGVkSXRlbXNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaXRlbTogYW55KSA9PiBvdUlkSGVscGVyLmhhc0dyb3VwUHJlZml4KGl0ZW0uaWQpKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IG91SWRIZWxwZXIucmVtb3ZlUHJlZml4KGl0ZW0uaWQpKVxuICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoeyBzZWxlY3RlZCB9OiBhbnkpID0+IG9uR3JvdXBDaGFuZ2Uoc2VsZWN0ZWQpfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2kxOG4udCgnU2VsZWN0IGEgZ3JvdXAnKX1cbiAgICAgICAgICAgIGxvYWRpbmc9eyFvdUdyb3Vwcy5sZW5ndGh9XG4gICAgICAgICAgICBkZW5zZVxuICAgICAgICAgICAgZGF0YVRlc3Q9eydvcmctdW5pdC1ncm91cC1zZWxlY3QnfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtvdUdyb3Vwcy5tYXAoKGdyb3VwOiBhbnkpID0+IChcbiAgICAgICAgICAgICAgPE11bHRpU2VsZWN0T3B0aW9uXG4gICAgICAgICAgICAgICAga2V5PXtncm91cC5pZH1cbiAgICAgICAgICAgICAgICB2YWx1ZT17Z3JvdXAuaWR9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2dyb3VwLmRpc3BsYXlOYW1lfVxuICAgICAgICAgICAgICAgIGRhdGFUZXN0PXtgb3JnLXVuaXQtZ3JvdXAtc2VsZWN0LW9wdGlvbi0ke2dyb3VwLmlkfWB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L011bHRpU2VsZWN0PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1bW1hcnlXcmFwcGVyXCI+XG4gICAgICAgIHt3YXJuaW5nID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2FybmluZ1dyYXBwZXJcIj5cbiAgICAgICAgICAgIDxJY29uV2FybmluZ0ZpbGxlZDE2IGNvbG9yPXtjb2xvcnMucmVkNTAwfSAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwid2FybmluZ1RleHRcIj57d2FybmluZ308L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3VtbWFyeVRleHRcIj57Z2V0U3VtbWFyeSgpfTwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNlbGVjdEJ1dHRvblwiPlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIHNlY29uZGFyeVxuICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFyU2VsZWN0aW9ufVxuICAgICAgICAgICAgZGlzYWJsZWQ9eyFzZWxlY3RlZEl0ZW1zLmxlbmd0aH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aTE4bi50KCdEZXNlbGVjdCBhbGwnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzdHlsZSBqc3g+e3N0eWxlc308L3N0eWxlPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuT3JnVW5pdERpbWVuc2lvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGhpZGVHcm91cFNlbGVjdDogZmFsc2UsXG4gIGhpZGVMZXZlbFNlbGVjdDogZmFsc2UsXG4gIGhpZGVVc2VyT3JnVW5pdHM6IGZhbHNlLFxufTtcblxuT3JnVW5pdERpbWVuc2lvbi5wcm9wVHlwZXMgPSB7XG4gIGhpZGVHcm91cFNlbGVjdDogUHJvcFR5cGVzLmJvb2wsXG4gIGhpZGVMZXZlbFNlbGVjdDogUHJvcFR5cGVzLmJvb2wsXG4gIGhpZGVVc2VyT3JnVW5pdHM6IFByb3BUeXBlcy5ib29sLFxuICByb290czogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gIHNlbGVjdGVkOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHBhdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgfSlcbiAgKSxcbiAgd2FybmluZzogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICBvcmdVbml0R3JvdXBQcm9taXNlOiBQcm9wVHlwZXMuYW55LFxuICBvcmdVbml0TGV2ZWxQcm9taXNlOiBQcm9wVHlwZXMuYW55LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgT3JnVW5pdERpbWVuc2lvbjtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ // Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+ export * from './OrgUnitDimension';
5
+ export * from './utils';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQscURBQXFEO0FBQ3JELGlEQUFpRDtBQUVqRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjMgVURTTSBESElTMiBMYWIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZVxuLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLlxuXG5leHBvcnQgKiBmcm9tICcuL09yZ1VuaXREaW1lbnNpb24nO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG4iXX0=
@@ -0,0 +1,83 @@
1
+ import { colors, spacers } from '@dhis2/ui';
2
+ export const styles = `
3
+ .container {
4
+ height: 100%;
5
+ display: flex;
6
+ flex-direction: column;
7
+ }
8
+
9
+ .orgUnitTreeWrapper {
10
+ height: 382px;
11
+ flex-grow: 1;
12
+ overflow: auto;
13
+ }
14
+
15
+ .orgUnitTreeWrapper > :global(*) {
16
+ flex-grow: 1;
17
+ }
18
+
19
+ .disabled {
20
+ cursor: not-allowed;
21
+ opacity: 0.5;
22
+ }
23
+
24
+ .disabled > :global(*) {
25
+ pointer-events: none;
26
+ }
27
+
28
+ .userOrgUnitsWrapper {
29
+ display: flex;
30
+ background: ${colors.grey200};
31
+ padding: ${spacers.dp8} ${spacers.dp8} ${spacers.dp8} ${spacers.dp24};
32
+ margin-bottom: ${spacers.dp12};
33
+ }
34
+
35
+ .userOrgUnitsWrapper > :global(*) {
36
+ margin-right: ${spacers.dp48};
37
+ }
38
+
39
+ .selectsWrapper {
40
+ display: flex;
41
+ align-items: flex-start;
42
+ gap: ${spacers.dp8};
43
+ margin-top: ${spacers.dp12};
44
+ }
45
+
46
+ .selectsWrapper.hidden {
47
+ display: none;
48
+ }
49
+
50
+ .selectsWrapper > :global(*) {
51
+ width: 50%;
52
+ }
53
+
54
+ .summaryWrapper {
55
+ display: inline-flex;
56
+ align-items: center;
57
+ margin-top: ${spacers.dp8};
58
+ }
59
+
60
+ .warningWrapper {
61
+ display: inline-flex;
62
+ align-items: center;
63
+ }
64
+
65
+ .warningText {
66
+ margin-left: ${spacers.dp8};
67
+ font-size: 14px;
68
+ line-height: 18px;
69
+ color: ${colors.red600};
70
+ }
71
+
72
+ .summaryText {
73
+ font-size: 14px;
74
+ line-height: 18px;
75
+ color: ${colors.grey700};
76
+ }
77
+
78
+ .deselectButton {
79
+ display: inline-block;
80
+ margin-left: ${spacers.dp8};
81
+ }
82
+ `;
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnVW5pdERpbWVuc2lvbi5zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9vcmdhbmlzYXRpb24tdW5pdC1zZWxlY3Rvci9jb21wb25lbnRzL3N0eWxlcy9PcmdVbml0RGltZW5zaW9uLnN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQkE0QkEsTUFBTSxDQUFDLE9BQU87bUJBQ2pCLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJO3lCQUNuRCxPQUFPLENBQUMsSUFBSTs7Ozt3QkFJYixPQUFPLENBQUMsSUFBSTs7Ozs7O2VBTXJCLE9BQU8sQ0FBQyxHQUFHO3NCQUNKLE9BQU8sQ0FBQyxJQUFJOzs7Ozs7Ozs7Ozs7OztzQkFjWixPQUFPLENBQUMsR0FBRzs7Ozs7Ozs7O3VCQVNWLE9BQU8sQ0FBQyxHQUFHOzs7aUJBR2pCLE1BQU0sQ0FBQyxNQUFNOzs7Ozs7aUJBTWIsTUFBTSxDQUFDLE9BQU87Ozs7O3VCQUtSLE9BQU8sQ0FBQyxHQUFHOztDQUVqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sb3JzLCBzcGFjZXJzIH0gZnJvbSAnQGRoaXMyL3VpJztcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IGBcbiAgICAuY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5vcmdVbml0VHJlZVdyYXBwZXIge1xuICAgICAgICBoZWlnaHQ6IDM4MnB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cblxuICAgIC5vcmdVbml0VHJlZVdyYXBwZXIgPiA6Z2xvYmFsKCopIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQgPiA6Z2xvYmFsKCopIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnVzZXJPcmdVbml0c1dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5ncmV5MjAwfTtcbiAgICAgICAgcGFkZGluZzogJHtzcGFjZXJzLmRwOH0gJHtzcGFjZXJzLmRwOH0gJHtzcGFjZXJzLmRwOH0gJHtzcGFjZXJzLmRwMjR9O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAke3NwYWNlcnMuZHAxMn07XG4gICAgfVxuXG4gICAgLnVzZXJPcmdVbml0c1dyYXBwZXIgPiA6Z2xvYmFsKCopIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAke3NwYWNlcnMuZHA0OH07XG4gICAgfVxuXG4gICAgLnNlbGVjdHNXcmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogJHtzcGFjZXJzLmRwOH07XG4gICAgICAgIG1hcmdpbi10b3A6ICR7c3BhY2Vycy5kcDEyfTtcbiAgICB9XG5cbiAgICAuc2VsZWN0c1dyYXBwZXIuaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuc2VsZWN0c1dyYXBwZXIgPiA6Z2xvYmFsKCopIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAuc3VtbWFyeVdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogJHtzcGFjZXJzLmRwOH07XG4gICAgfVxuXG4gICAgLndhcm5pbmdXcmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLndhcm5pbmdUZXh0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICR7c3BhY2Vycy5kcDh9O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICBjb2xvcjogJHtjb2xvcnMucmVkNjAwfTtcbiAgICB9XG5cbiAgICAuc3VtbWFyeVRleHQge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgICBjb2xvcjogJHtjb2xvcnMuZ3JleTcwMH07XG4gICAgfVxuXG4gICAgLmRlc2VsZWN0QnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogJHtzcGFjZXJzLmRwOH07XG4gICAgfVxuYDtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ // Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+ export * from './ouIdHelper';
5
+ export * from './ouLevelUtils';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvY29tcG9uZW50cy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQscURBQXFEO0FBQ3JELGlEQUFpRDtBQUNqRCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjMgVURTTSBESElTMiBMYWIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZVxuLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLlxuZXhwb3J0ICogZnJvbSAnLi9vdUlkSGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vb3VMZXZlbFV0aWxzJztcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ const LEVEL_ID_PREFIX = 'LEVEL';
2
+ const GROUP_ID_PREFIX = 'OU_GROUP';
3
+ export const USER_ORG_UNIT = 'USER_ORGUNIT';
4
+ export const USER_ORG_UNIT_CHILDREN = 'USER_ORGUNIT_CHILDREN';
5
+ export const USER_ORG_UNIT_GRANDCHILDREN = 'USER_ORGUNIT_GRANDCHILDREN';
6
+ const hasGroupPrefix = (id) => id.substr(0, GROUP_ID_PREFIX.length) === GROUP_ID_PREFIX;
7
+ const hasLevelPrefix = (id) => id.substr(0, LEVEL_ID_PREFIX.length) === LEVEL_ID_PREFIX;
8
+ const stripLevelPrefix = (id) => hasLevelPrefix(id) ? id.substr(LEVEL_ID_PREFIX.length + 1) : id;
9
+ const stripGroupPrefix = (id) => hasGroupPrefix(id) ? id.substr(GROUP_ID_PREFIX.length + 1) : id;
10
+ const removePrefix = (id) => stripGroupPrefix(stripLevelPrefix(id));
11
+ export const ouIdHelper = Object.freeze({
12
+ addLevelPrefix: (id) => `${LEVEL_ID_PREFIX}-${removePrefix(id)}`,
13
+ addGroupPrefix: (id) => `${GROUP_ID_PREFIX}-${removePrefix(id)}`,
14
+ removePrefix,
15
+ hasGroupPrefix,
16
+ hasLevelPrefix,
17
+ });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvY29tcG9uZW50cy91dGlscy9vdUlkSGVscGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUNoQyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQztBQUM1QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyx1QkFBdUIsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyw0QkFBNEIsQ0FBQztBQUV4RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQ3BDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxlQUFlLENBQUM7QUFFM0QsTUFBTSxjQUFjLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUNwQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssZUFBZSxDQUFDO0FBRTNELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUN0QyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRWxFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUN0QyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRWxFLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRTVFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3RDLGNBQWMsRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxlQUFlLElBQUksWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0lBQ3hFLGNBQWMsRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxlQUFlLElBQUksWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0lBQ3hFLFlBQVk7SUFDWixjQUFjO0lBQ2QsY0FBYztDQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IExFVkVMX0lEX1BSRUZJWCA9ICdMRVZFTCc7XG5jb25zdCBHUk9VUF9JRF9QUkVGSVggPSAnT1VfR1JPVVAnO1xuZXhwb3J0IGNvbnN0IFVTRVJfT1JHX1VOSVQgPSAnVVNFUl9PUkdVTklUJztcbmV4cG9ydCBjb25zdCBVU0VSX09SR19VTklUX0NISUxEUkVOID0gJ1VTRVJfT1JHVU5JVF9DSElMRFJFTic7XG5leHBvcnQgY29uc3QgVVNFUl9PUkdfVU5JVF9HUkFORENISUxEUkVOID0gJ1VTRVJfT1JHVU5JVF9HUkFORENISUxEUkVOJztcblxuY29uc3QgaGFzR3JvdXBQcmVmaXggPSAoaWQ6IHN0cmluZykgPT5cbiAgaWQuc3Vic3RyKDAsIEdST1VQX0lEX1BSRUZJWC5sZW5ndGgpID09PSBHUk9VUF9JRF9QUkVGSVg7XG5cbmNvbnN0IGhhc0xldmVsUHJlZml4ID0gKGlkOiBzdHJpbmcpID0+XG4gIGlkLnN1YnN0cigwLCBMRVZFTF9JRF9QUkVGSVgubGVuZ3RoKSA9PT0gTEVWRUxfSURfUFJFRklYO1xuXG5jb25zdCBzdHJpcExldmVsUHJlZml4ID0gKGlkOiBzdHJpbmcpID0+XG4gIGhhc0xldmVsUHJlZml4KGlkKSA/IGlkLnN1YnN0cihMRVZFTF9JRF9QUkVGSVgubGVuZ3RoICsgMSkgOiBpZDtcblxuY29uc3Qgc3RyaXBHcm91cFByZWZpeCA9IChpZDogc3RyaW5nKSA9PlxuICBoYXNHcm91cFByZWZpeChpZCkgPyBpZC5zdWJzdHIoR1JPVVBfSURfUFJFRklYLmxlbmd0aCArIDEpIDogaWQ7XG5cbmNvbnN0IHJlbW92ZVByZWZpeCA9IChpZDogc3RyaW5nKSA9PiBzdHJpcEdyb3VwUHJlZml4KHN0cmlwTGV2ZWxQcmVmaXgoaWQpKTtcblxuZXhwb3J0IGNvbnN0IG91SWRIZWxwZXIgPSBPYmplY3QuZnJlZXplKHtcbiAgYWRkTGV2ZWxQcmVmaXg6IChpZDogc3RyaW5nKSA9PiBgJHtMRVZFTF9JRF9QUkVGSVh9LSR7cmVtb3ZlUHJlZml4KGlkKX1gLFxuICBhZGRHcm91cFByZWZpeDogKGlkOiBzdHJpbmcpID0+IGAke0dST1VQX0lEX1BSRUZJWH0tJHtyZW1vdmVQcmVmaXgoaWQpfWAsXG4gIHJlbW92ZVByZWZpeCxcbiAgaGFzR3JvdXBQcmVmaXgsXG4gIGhhc0xldmVsUHJlZml4LFxufSk7XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { DIMENSION_ID_ORGUNIT, dimensionGetItems, layoutGetDimension, layoutReplaceDimension, } from '../../../../../shared';
2
+ import { ouIdHelper } from '../ouIdHelper';
3
+ const isOuLevelIntId = (id) => ouIdHelper.hasLevelPrefix(id)
4
+ ? Number.isInteger(parseInt(ouIdHelper.removePrefix(id), 10))
5
+ : false;
6
+ const replaceNumericOuLevelWithUid = (ouLevels) => (item) => {
7
+ if (!isOuLevelIntId(item.id)) {
8
+ return item;
9
+ }
10
+ const ouIntId = parseInt(ouIdHelper.removePrefix(item.id), 10);
11
+ const ouUid = ouLevels.find((l) => parseInt(l.level, 10) === ouIntId)?.id;
12
+ return ouUid
13
+ ? Object.assign({}, item, { id: ouIdHelper.addLevelPrefix(ouUid) })
14
+ : item;
15
+ };
16
+ export const convertOuLevelsToUids = (ouLevels, layout) => {
17
+ const ouDimension = layoutGetDimension(layout, DIMENSION_ID_ORGUNIT);
18
+ const hasNumericOuLevels = ouDimension &&
19
+ dimensionGetItems(ouDimension).some((item) => isOuLevelIntId(item.id));
20
+ if (hasNumericOuLevels) {
21
+ const replaceNumericOuLevel = replaceNumericOuLevelWithUid(ouLevels);
22
+ const updatedOuItems = dimensionGetItems(ouDimension).map(replaceNumericOuLevel);
23
+ return layoutReplaceDimension(layout, DIMENSION_ID_ORGUNIT, updatedOuItems);
24
+ }
25
+ return layout;
26
+ };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvY29tcG9uZW50cy91dGlscy9vdUxldmVsVXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLHNCQUFzQixHQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsTUFBTSxjQUFjLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUNwQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsS0FBSyxDQUFDO0FBRVosTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtJQUNwRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQ3pCLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxPQUFPLENBQzlDLEVBQUUsRUFBRSxDQUFDO0lBRU4sT0FBTyxLQUFLO1FBQ1YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkUsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNYLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsUUFBYSxFQUFFLE1BQVcsRUFBRSxFQUFFO0lBQ2xFLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBRXJFLE1BQU0sa0JBQWtCLEdBQ3RCLFdBQVc7UUFDWCxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU5RSxJQUFJLGtCQUFrQixFQUFFO1FBQ3RCLE1BQU0scUJBQXFCLEdBQUcsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUN2RCxxQkFBcUIsQ0FDdEIsQ0FBQztRQUVGLE9BQU8sc0JBQXNCLENBQUMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0tBQzdFO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRElNRU5TSU9OX0lEX09SR1VOSVQsXG4gIGRpbWVuc2lvbkdldEl0ZW1zLFxuICBsYXlvdXRHZXREaW1lbnNpb24sXG4gIGxheW91dFJlcGxhY2VEaW1lbnNpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZCc7XG5cbmltcG9ydCB7IG91SWRIZWxwZXIgfSBmcm9tICcuLi9vdUlkSGVscGVyJztcblxuY29uc3QgaXNPdUxldmVsSW50SWQgPSAoaWQ6IHN0cmluZykgPT5cbiAgb3VJZEhlbHBlci5oYXNMZXZlbFByZWZpeChpZClcbiAgICA/IE51bWJlci5pc0ludGVnZXIocGFyc2VJbnQob3VJZEhlbHBlci5yZW1vdmVQcmVmaXgoaWQpLCAxMCkpXG4gICAgOiBmYWxzZTtcblxuY29uc3QgcmVwbGFjZU51bWVyaWNPdUxldmVsV2l0aFVpZCA9IChvdUxldmVsczogYW55KSA9PiAoaXRlbTogYW55KSA9PiB7XG4gIGlmICghaXNPdUxldmVsSW50SWQoaXRlbS5pZCkpIHtcbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIGNvbnN0IG91SW50SWQgPSBwYXJzZUludChvdUlkSGVscGVyLnJlbW92ZVByZWZpeChpdGVtLmlkKSwgMTApO1xuICBjb25zdCBvdVVpZCA9IG91TGV2ZWxzLmZpbmQoXG4gICAgKGw6IGFueSkgPT4gcGFyc2VJbnQobC5sZXZlbCwgMTApID09PSBvdUludElkXG4gICk/LmlkO1xuXG4gIHJldHVybiBvdVVpZFxuICAgID8gT2JqZWN0LmFzc2lnbih7fSwgaXRlbSwgeyBpZDogb3VJZEhlbHBlci5hZGRMZXZlbFByZWZpeChvdVVpZCkgfSlcbiAgICA6IGl0ZW07XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydE91TGV2ZWxzVG9VaWRzID0gKG91TGV2ZWxzOiBhbnksIGxheW91dDogYW55KSA9PiB7XG4gIGNvbnN0IG91RGltZW5zaW9uID0gbGF5b3V0R2V0RGltZW5zaW9uKGxheW91dCwgRElNRU5TSU9OX0lEX09SR1VOSVQpO1xuXG4gIGNvbnN0IGhhc051bWVyaWNPdUxldmVscyA9XG4gICAgb3VEaW1lbnNpb24gJiZcbiAgICBkaW1lbnNpb25HZXRJdGVtcyhvdURpbWVuc2lvbikuc29tZSgoaXRlbTogYW55KSA9PiBpc091TGV2ZWxJbnRJZChpdGVtLmlkKSk7XG5cbiAgaWYgKGhhc051bWVyaWNPdUxldmVscykge1xuICAgIGNvbnN0IHJlcGxhY2VOdW1lcmljT3VMZXZlbCA9IHJlcGxhY2VOdW1lcmljT3VMZXZlbFdpdGhVaWQob3VMZXZlbHMpO1xuXG4gICAgY29uc3QgdXBkYXRlZE91SXRlbXMgPSBkaW1lbnNpb25HZXRJdGVtcyhvdURpbWVuc2lvbikubWFwKFxuICAgICAgcmVwbGFjZU51bWVyaWNPdUxldmVsXG4gICAgKTtcblxuICAgIHJldHVybiBsYXlvdXRSZXBsYWNlRGltZW5zaW9uKGxheW91dCwgRElNRU5TSU9OX0lEX09SR1VOSVQsIHVwZGF0ZWRPdUl0ZW1zKTtcbiAgfVxuXG4gIHJldHVybiBsYXlvdXQ7XG59O1xuIl19
@@ -0,0 +1,6 @@
1
+ // Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+ export * from './organisation-unit-selector.module';
5
+ export * from './organisation-unit-selector.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELHFEQUFxRDtBQUNyRCxpREFBaUQ7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjMgVURTTSBESElTMiBMYWIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZVxuLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLlxuZXhwb3J0ICogZnJvbSAnLi9vcmdhbmlzYXRpb24tdW5pdC1zZWxlY3Rvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vcmdhbmlzYXRpb24tdW5pdC1zZWxlY3Rvci5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,5 @@
1
+ // Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+ export * from './organisation-unit-config.model';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvb3JnYW5pc2F0aW9uLXVuaXQtc2VsZWN0b3IvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFDckQsaURBQWlEO0FBQ2pELGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyMyBVRFNNIERISVMyIExhYi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlXG4vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuXG5leHBvcnQgKiBmcm9tICcuL29yZ2FuaXNhdGlvbi11bml0LWNvbmZpZy5tb2RlbCc7XG4iXX0=
@@ -0,0 +1,16 @@
1
+ // Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+ export class OrganisationUnitSelectionConfig {
5
+ constructor(params) {
6
+ this.hideGroupSelect = params?.hideGroupSelect || false;
7
+ this.hideLevelSelect = params?.hideLevelSelect || false;
8
+ this.hideUserOrgUnits = params?.hideUserOrgUnits || false;
9
+ this.usageType = params?.usageType || 'DATA_ENTRY';
10
+ this.minLevel = params?.minLevel;
11
+ this.allowSingleSelection = params?.allowSingleSelection || false;
12
+ this.batchSize = params?.batchSize;
13
+ this.additionalQueryFields = params?.additionalQueryFields;
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9uLXVuaXQtY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL29yZ2FuaXNhdGlvbi11bml0LXNlbGVjdG9yL21vZGVscy9vcmdhbmlzYXRpb24tdW5pdC1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELHFEQUFxRDtBQUNyRCxpREFBaUQ7QUFHakQsTUFBTSxPQUFPLCtCQUErQjtJQVUxQyxZQUFZLE1BQWlEO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxFQUFFLGVBQWUsSUFBSSxLQUFLLENBQUM7UUFDeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLEVBQUUsZUFBZSxJQUFJLEtBQUssQ0FBQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxFQUFFLGdCQUFnQixJQUFJLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sRUFBRSxTQUFTLElBQUksWUFBWSxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxFQUFFLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxFQUFFLG9CQUFvQixJQUFJLEtBQUssQ0FBQztRQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sRUFBRSxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQztJQUM3RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyMyBVRFNNIERISVMyIExhYi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlXG4vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuXG5cbmV4cG9ydCB0eXBlIE9yZ2FuaXNhdGlvblVuaXRTZWxlY3Rpb25Vc2FnZVR5cGUgPSAnREFUQV9FTlRSWScgfCAnREFUQV9WSUVXJztcbmV4cG9ydCBjbGFzcyBPcmdhbmlzYXRpb25Vbml0U2VsZWN0aW9uQ29uZmlnIHtcbiAgaGlkZUdyb3VwU2VsZWN0ITogYm9vbGVhbjtcbiAgaGlkZUxldmVsU2VsZWN0ITogYm9vbGVhbjtcbiAgaGlkZVVzZXJPcmdVbml0cyE6IGJvb2xlYW47XG4gIHVzYWdlVHlwZSE6IE9yZ2FuaXNhdGlvblVuaXRTZWxlY3Rpb25Vc2FnZVR5cGU7XG4gIG1pbkxldmVsPzogbnVtYmVyO1xuICBhbGxvd1NpbmdsZVNlbGVjdGlvbj86IGJvb2xlYW47XG4gIGJhdGNoU2l6ZT86IG51bWJlcjtcbiAgYWRkaXRpb25hbFF1ZXJ5RmllbGRzPzogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IocGFyYW1zPzogUGFydGlhbDxPcmdhbmlzYXRpb25Vbml0U2VsZWN0aW9uQ29uZmlnPikge1xuICAgIHRoaXMuaGlkZUdyb3VwU2VsZWN0ID0gcGFyYW1zPy5oaWRlR3JvdXBTZWxlY3QgfHwgZmFsc2U7XG4gICAgdGhpcy5oaWRlTGV2ZWxTZWxlY3QgPSBwYXJhbXM/LmhpZGVMZXZlbFNlbGVjdCB8fCBmYWxzZTtcbiAgICB0aGlzLmhpZGVVc2VyT3JnVW5pdHMgPSBwYXJhbXM/LmhpZGVVc2VyT3JnVW5pdHMgfHwgZmFsc2U7XG4gICAgdGhpcy51c2FnZVR5cGUgPSBwYXJhbXM/LnVzYWdlVHlwZSB8fCAnREFUQV9FTlRSWSc7XG4gICAgdGhpcy5taW5MZXZlbCA9IHBhcmFtcz8ubWluTGV2ZWw7XG4gICAgdGhpcy5hbGxvd1NpbmdsZVNlbGVjdGlvbiA9IHBhcmFtcz8uYWxsb3dTaW5nbGVTZWxlY3Rpb24gfHwgZmFsc2U7XG4gICAgdGhpcy5iYXRjaFNpemUgPSBwYXJhbXM/LmJhdGNoU2l6ZTtcbiAgICB0aGlzLmFkZGl0aW9uYWxRdWVyeUZpZWxkcyA9IHBhcmFtcz8uYWRkaXRpb25hbFF1ZXJ5RmllbGRzO1xuICB9XG59XG4iXX0=