@iapps/ng-dhis2-ui 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/iapps-ng-dhis2-ui.mjs +1 -1
- package/esm2022/index.mjs +1 -2
- package/esm2022/lib/modules/button/button.component.mjs +14 -9
- package/esm2022/lib/modules/button/button.module.mjs +5 -5
- package/esm2022/lib/modules/button/index.mjs +1 -1
- package/esm2022/lib/modules/header-bar/header-bar.component.mjs +5 -5
- package/esm2022/lib/modules/header-bar/header-bar.module.mjs +5 -5
- package/esm2022/lib/modules/header-bar/index.mjs +1 -1
- package/esm2022/lib/modules/header-bar/models/header-bar-app.model.mjs +1 -1
- package/esm2022/lib/modules/header-bar/models/header-bar-data.model.mjs +1 -1
- package/esm2022/lib/modules/header-bar/models/header-bar-notification.model.mjs +1 -1
- package/esm2022/lib/modules/header-bar/models/index.mjs +1 -1
- package/esm2022/lib/modules/header-bar/utils/apps.mjs +1 -1
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.mjs +14 -14
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-modal.mjs +1 -1
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-table.mjs +15 -15
- package/esm2022/lib/modules/header-bar/utils/debug-info/use-debug-info.mjs +1 -1
- package/esm2022/lib/modules/header-bar/utils/header-bar-context.mjs +2 -2
- package/esm2022/lib/modules/header-bar/utils/header-bar.mjs +1 -1
- package/esm2022/lib/modules/header-bar/utils/join-path.mjs +1 -1
- package/esm2022/lib/modules/header-bar/utils/logo-image.mjs +24 -24
- package/esm2022/lib/modules/header-bar/utils/logo.mjs +1 -1
- package/esm2022/lib/modules/header-bar/utils/notification-icon.mjs +47 -47
- package/esm2022/lib/modules/header-bar/utils/notifications.mjs +10 -10
- package/esm2022/lib/modules/header-bar/utils/profile/use-on-doc-click.mjs +1 -1
- package/esm2022/lib/modules/header-bar/utils/profile-menu/index.mjs +1 -1
- package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-header.mjs +37 -37
- package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-menu.mjs +28 -28
- package/esm2022/lib/modules/header-bar/utils/profile-menu/update-notification.mjs +24 -24
- package/esm2022/lib/modules/header-bar/utils/profile.mjs +25 -25
- package/esm2022/lib/modules/header-bar/utils/title.mjs +1 -1
- package/esm2022/lib/modules/organisation-unit-selector/components/OrgUnitDimension.mjs +14 -10
- package/esm2022/lib/modules/organisation-unit-selector/components/index.mjs +1 -1
- package/esm2022/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.mjs +1 -1
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/index.mjs +1 -1
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.mjs +2 -2
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.mjs +1 -1
- package/esm2022/lib/modules/organisation-unit-selector/containers/organisation-unit-selector/organisation-unit-selector.component.mjs +88 -0
- package/esm2022/lib/modules/organisation-unit-selector/containers/organisation-unit-selector-modal/organisation-unit-selector-modal.component-modal.mjs +114 -0
- package/esm2022/lib/modules/organisation-unit-selector/index.mjs +3 -2
- package/esm2022/lib/modules/organisation-unit-selector/models/index.mjs +1 -1
- package/esm2022/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.mjs +1 -1
- package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.module.mjs +17 -8
- package/esm2022/lib/modules/period-selector/components/FixedPeriodFilter.mjs +1 -1
- package/esm2022/lib/modules/period-selector/components/PeriodDimension.mjs +1 -1
- package/esm2022/lib/modules/period-selector/components/PeriodTransfer.mjs +1 -1
- package/esm2022/lib/modules/period-selector/components/RelativePeriodFilter.mjs +1 -1
- package/esm2022/lib/modules/period-selector/components/utils/fixedPeriods.mjs +17 -17
- package/esm2022/lib/modules/period-selector/components/utils/index.mjs +1 -1
- package/esm2022/lib/modules/period-selector/components/utils/periodTypes.mjs +1 -1
- package/esm2022/lib/modules/period-selector/components/utils/relativePeriods.mjs +1 -1
- package/esm2022/lib/modules/period-selector/containers/period-selector/period-selector.component.mjs +66 -0
- package/esm2022/lib/modules/period-selector/containers/period-selector-modal/period-selector-modal.component.mjs +82 -0
- package/esm2022/lib/modules/period-selector/index.mjs +3 -2
- package/esm2022/lib/modules/period-selector/period-selector.module.mjs +10 -9
- package/esm2022/lib/modules/react-wrapper/index.mjs +1 -1
- package/esm2022/lib/modules/react-wrapper/react-wrapper.component.mjs +9 -7
- package/esm2022/lib/modules/react-wrapper/react-wrapper.module.mjs +5 -5
- package/esm2022/lib/shared/assets/AssignedCategoriesIcon.mjs +1 -1
- package/esm2022/lib/shared/assets/DimensionItemIcons/PeriodIcon.mjs +1 -1
- package/esm2022/lib/shared/components/TransferOption.mjs +1 -1
- package/esm2022/lib/shared/components/index.mjs +1 -1
- package/esm2022/lib/shared/index.mjs +1 -1
- package/esm2022/lib/shared/shared.module.mjs +5 -5
- package/esm2022/lib/shared/styles/DimensionSelector.style.mjs +1 -1
- package/esm2022/lib/shared/styles/index.mjs +1 -1
- package/esm2022/lib/shared/utils/axis.mjs +1 -1
- package/esm2022/lib/shared/utils/axisGetDimension.mjs +1 -1
- package/esm2022/lib/shared/utils/axisHasDimension.mjs +1 -1
- package/esm2022/lib/shared/utils/dimension.mjs +1 -1
- package/esm2022/lib/shared/utils/dimensionGetItems.mjs +1 -1
- package/esm2022/lib/shared/utils/dimensionIs.mjs +1 -1
- package/esm2022/lib/shared/utils/dimensionIsEmpty.mjs +1 -1
- package/esm2022/lib/shared/utils/dimensionIsValid.mjs +1 -1
- package/esm2022/lib/shared/utils/dimensionSelectorHelper.mjs +1 -1
- package/esm2022/lib/shared/utils/index.mjs +1 -1
- package/esm2022/lib/shared/utils/layoutGetAllAxes.mjs +1 -1
- package/esm2022/lib/shared/utils/layoutGetAllDimensions.mjs +1 -1
- package/esm2022/lib/shared/utils/layoutGetDimension.mjs +1 -1
- package/esm2022/lib/shared/utils/layoutReplaceDimension.mjs +1 -1
- package/esm2022/lib/shared/utils/list.mjs +1 -1
- package/esm2022/lib/shared/utils/predefinedDimensions.mjs +3 -1
- package/fesm2022/iapps-ng-dhis2-ui.mjs +506 -317
- package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/lib/modules/button/button.component.d.ts +1 -2
- package/lib/modules/organisation-unit-selector/{organisation-unit-selector.component.d.ts → containers/organisation-unit-selector/organisation-unit-selector.component.d.ts} +3 -2
- package/lib/modules/organisation-unit-selector/containers/organisation-unit-selector-modal/organisation-unit-selector-modal.component-modal.d.ts +31 -0
- package/lib/modules/organisation-unit-selector/index.d.ts +2 -1
- package/lib/modules/organisation-unit-selector/organisation-unit-selector.module.d.ts +5 -4
- package/lib/modules/period-selector/{period-selector.component.d.ts → containers/period-selector/period-selector.component.d.ts} +1 -1
- package/lib/modules/period-selector/containers/period-selector-modal/period-selector-modal.component.d.ts +17 -0
- package/lib/modules/period-selector/index.d.ts +2 -1
- package/lib/modules/period-selector/period-selector.module.d.ts +5 -4
- package/lib/modules/react-wrapper/react-wrapper.component.d.ts +1 -2
- package/lib/shared/utils/predefinedDimensions.d.ts +2 -0
- package/package.json +1 -2
- package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.component.mjs +0 -78
- package/esm2022/lib/modules/period-selector/period-selector.component.mjs +0 -66
- package/esm2022/lib/ng-dhis2-ui.module.mjs +0 -15
- package/lib/ng-dhis2-ui.module.d.ts +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iapps-ng-dhis2-ui.mjs","sources":["../../../ng-dhis2-ui/src/lib/ng-dhis2-ui.module.ts","../../../ng-dhis2-ui/src/lib/shared/components/TransferOption.tsx","../../../ng-dhis2-ui/src/lib/shared/components/index.ts","../../../ng-dhis2-ui/src/lib/shared/shared.module.ts","../../../ng-dhis2-ui/src/lib/modules/header-bar/models/header-bar-app.model.ts","../../../ng-dhis2-ui/src/lib/modules/header-bar/models/header-bar-notification.model.ts","../../../ng-dhis2-ui/src/lib/modules/header-bar/models/header-bar-data.model.ts","../../../ng-dhis2-ui/src/lib/modules/header-bar/models/index.ts","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/join-path.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/apps.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/logo-image.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/logo.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/notification-icon.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/notifications.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/debug-info/use-debug-info.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/debug-info/debug-info-table.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/debug-info/debug-info-modal.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/profile-menu/profile-header.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/header-bar-context.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/profile-menu/update-notification.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/profile-menu/profile-menu.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/profile/use-on-doc-click.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/profile.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/title.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/utils/header-bar.tsx","../../../ng-dhis2-ui/src/lib/modules/react-wrapper/react-wrapper.component.tsx","../../../ng-dhis2-ui/src/lib/modules/react-wrapper/react-wrapper.module.ts","../../../ng-dhis2-ui/src/lib/modules/react-wrapper/index.ts","../../../ng-dhis2-ui/src/lib/modules/header-bar/header-bar.component.tsx","../../../ng-dhis2-ui/src/lib/modules/header-bar/header-bar.module.ts","../../../ng-dhis2-ui/src/lib/modules/header-bar/index.ts","../../../ng-dhis2-ui/src/lib/modules/button/button.component.tsx","../../../ng-dhis2-ui/src/lib/modules/button/button.module.ts","../../../ng-dhis2-ui/src/lib/modules/button/index.ts","../../../ng-dhis2-ui/src/lib/shared/assets/AssignedCategoriesIcon.tsx","../../../ng-dhis2-ui/src/lib/shared/utils/predefinedDimensions.tsx","../../../ng-dhis2-ui/src/lib/shared/utils/dimensionSelectorHelper.tsx","../../../ng-dhis2-ui/src/lib/shared/utils/list.ts","../../../ng-dhis2-ui/src/lib/shared/utils/axis.ts","../../../ng-dhis2-ui/src/lib/shared/utils/dimension.ts","../../../ng-dhis2-ui/src/lib/shared/utils/dimensionIs.ts","../../../ng-dhis2-ui/src/lib/shared/utils/axisGetDimension.ts","../../../ng-dhis2-ui/src/lib/shared/utils/axisHasDimension.ts","../../../ng-dhis2-ui/src/lib/shared/utils/layoutReplaceDimension.ts","../../../ng-dhis2-ui/src/lib/shared/utils/layoutGetAllAxes.ts","../../../ng-dhis2-ui/src/lib/shared/utils/layoutGetAllDimensions.ts","../../../ng-dhis2-ui/src/lib/shared/utils/layoutGetDimension.ts","../../../ng-dhis2-ui/src/lib/shared/utils/dimensionIsEmpty.ts","../../../ng-dhis2-ui/src/lib/shared/utils/dimensionIsValid.ts","../../../ng-dhis2-ui/src/lib/shared/utils/dimensionGetItems.ts","../../../ng-dhis2-ui/src/lib/shared/utils/index.ts","../../../ng-dhis2-ui/src/lib/shared/styles/DimensionSelector.style.ts","../../../ng-dhis2-ui/src/lib/shared/styles/index.ts","../../../ng-dhis2-ui/src/lib/shared/index.ts","../../../ng-dhis2-ui/src/lib/modules/period-selector/components/utils/periodTypes.tsx","../../../ng-dhis2-ui/src/lib/modules/period-selector/components/utils/relativePeriods.tsx","../../../ng-dhis2-ui/src/lib/modules/period-selector/components/utils/fixedPeriods.tsx","../../../ng-dhis2-ui/src/lib/modules/period-selector/components/utils/index.tsx","../../../ng-dhis2-ui/src/lib/modules/period-selector/components/FixedPeriodFilter.tsx","../../../ng-dhis2-ui/src/lib/modules/period-selector/components/RelativePeriodFilter.tsx","../../../ng-dhis2-ui/src/lib/shared/assets/DimensionItemIcons/PeriodIcon.tsx","../../../ng-dhis2-ui/src/lib/modules/period-selector/components/PeriodTransfer.tsx","../../../ng-dhis2-ui/src/lib/modules/period-selector/components/PeriodDimension.tsx","../../../ng-dhis2-ui/src/lib/modules/period-selector/period-selector.component.tsx","../../../ng-dhis2-ui/src/lib/modules/period-selector/period-selector.module.ts","../../../ng-dhis2-ui/src/lib/modules/period-selector/index.ts","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.ts","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.ts","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/utils/index.ts","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/index.ts","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.ts","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/OrgUnitDimension.tsx","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.ts","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/models/index.ts","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/organisation-unit-selector.component.tsx","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/organisation-unit-selector.module.ts","../../../ng-dhis2-ui/src/lib/modules/organisation-unit-selector/index.ts","../../../ng-dhis2-ui/src/iapps-ng-dhis2-ui.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class NgDhis2UiModule {}\n","import { IconEdit16, Tooltip, colors, spacers, theme } from '@dhis2/ui';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nexport const TransferOption = ({\n disabled,\n label,\n highlighted,\n selected,\n onClick,\n onDoubleClick,\n value,\n icon,\n active,\n tooltipText,\n dataTest,\n onEditClick,\n}: any) => {\n const renderContent = () => (\n <div\n className={cx('chip', {\n highlighted,\n disabled,\n selected,\n inactive: active !== undefined && !active,\n })}\n data-test={`${dataTest}-content`}\n onClick={(event) => {\n if (disabled) {\n return;\n }\n onClick({ label, value }, event);\n }}\n onDoubleClick={(event) => {\n if (disabled) {\n return;\n }\n onDoubleClick({ label, value }, event);\n }}\n >\n <span className=\"icon\">{icon}</span>\n <span className=\"label\">{label}</span>\n {onEditClick && (\n <span\n className=\"edit\"\n onClick={(e) => {\n e.stopPropagation();\n onEditClick();\n }}\n data-test={`${dataTest}-edit-button`}\n >\n <IconEdit16 />\n </span>\n )}\n\n <style jsx>{`\n .wrapper:last-child {\n margin-bottom: ${spacers.dp4};\n }\n .chip {\n display: inline-flex;\n background: ${colors.grey200};\n font-size: 14px;\n line-height: 16px;\n padding: 2px ${spacers.dp8} 2px ${spacers.dp4};\n margin: ${spacers.dp4} ${spacers.dp8} 0 ${spacers.dp8};\n border-radius: 3px;\n user-select: none;\n }\n\n .chip:hover {\n background: ${colors.grey300};\n }\n\n .selected {\n background: ${theme.secondary100};\n color: ${theme.secondary900};\n }\n\n .selected :global(.icon path) {\n fill: ${theme.secondary700};\n }\n\n .selected:hover {\n background: #c9edeb;\n }\n\n .highlighted,\n .highlighted:hover {\n background: ${theme.secondary800};\n color: ${colors.white};\n }\n\n .highlighted :global(.icon path) {\n fill: ${colors.white};\n }\n\n .disabled {\n opacity: 0.3;\n cursor: not-allowed;\n }\n\n .inactive {\n opacity: 0.3;\n }\n\n .icon,\n .label {\n line-height: 18px;\n }\n\n .icon {\n margin-right: ${spacers.dp4};\n display: inline-flex;\n vertical-align: text-bottom;\n padding-top: 1px;\n }\n\n .label {\n font-size: 14px;\n }\n\n .edit {\n height: 16px;\n margin-top: 1px;\n margin-left: ${spacers.dp8};\n cursor: pointer;\n }\n\n .edit:hover {\n background-color: rgba(0, 0, 0, 0.12);\n outline: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 3px;\n }\n\n .highlighted .edit:hover {\n background-color: rgba(255, 255, 255, 0.12);\n outline: 1px solid rgba(255, 255, 255, 0.12);\n }\n `}</style>\n </div>\n );\n\n return (\n <div data-value={value} data-test={dataTest} className=\"wrapper\">\n {tooltipText ? (\n <Tooltip\n key={`${value}`}\n content={tooltipText}\n placement={'top'}\n openDelay={750}\n closeDelay={150}\n >\n {renderContent()}\n </Tooltip>\n ) : (\n renderContent()\n )}\n </div>\n );\n};\n\nTransferOption.propTypes = {\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n active: PropTypes.bool,\n dataTest: PropTypes.string,\n disabled: PropTypes.bool,\n highlighted: PropTypes.bool,\n icon: PropTypes.node,\n selected: PropTypes.bool,\n tooltipText: PropTypes.string,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onEditClick: PropTypes.func,\n};\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nexport const sharedComponents: any[] = [];\n\nexport * from './TransferOption';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { sharedComponents } from './components';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [...sharedComponents],\n exports: [...sharedComponents],\n})\nexport class SharedDhis2UiModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport class HeaderBarApp {\n name!: string;\n namespace!: string;\n defaultAction!: string;\n displayName!: string;\n icon!: string;\n description!: string;\n\n constructor(module: Record<string, unknown>) {\n this.name = module['name'] as string;\n this.namespace = module['namespace'] as string;\n this.defaultAction = this.getPath(module['defaultAction'] as string);\n this.icon = this.getPath(module['icon'] as string);\n this.displayName = module['displayName'] as string;\n this.description = module['description'] as string;\n }\n\n getPath(item: string) {\n if (item?.startsWith('../')) {\n return '../../' + item;\n }\n return item;\n }\n}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport class HeaderBarNotification {\n unreadInterpretations?: number;\n unreadMessageConversations?: number;\n\n constructor(notification: Record<string, number>) {\n this.unreadInterpretations = notification['unreadInterpretations'];\n this.unreadMessageConversations =\n notification['unreadMessageConversations'];\n }\n}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';\nimport { Observable, catchError, map, of, zip } from 'rxjs';\nimport { HeaderBarApp } from './header-bar-app.model';\nimport { HeaderBarNotification } from './header-bar-notification.model';\n\nexport class HeaderBarData {\n apps!: HeaderBarApp[];\n title!: string;\n help: any;\n notifications!: HeaderBarNotification;\n user!: Record<string, unknown>;\n\n constructor(private httpClient: NgxDhis2HttpClientService) {}\n\n getApps(): Observable<HeaderBarApp[]> {\n return this.httpClient\n .get('dhis-web-commons/menu/getModules.action', {\n useRootUrl: true,\n })\n .pipe(\n catchError(() =>\n of({\n modules: [],\n })\n ),\n map((result: { modules: Record<string, unknown>[] }) => {\n return (result?.modules || [])\n .map((module: Record<string, unknown>) => new HeaderBarApp(module))\n .filter((headerBarApp) => headerBarApp);\n })\n );\n }\n\n getNotifications(): Observable<HeaderBarNotification | null> {\n return this.httpClient\n .get('me/dashboard')\n .pipe(\n map((notifications: Record<string, number>) =>\n notifications ? new HeaderBarNotification(notifications) : null\n )\n );\n }\n\n get(): Observable<HeaderBarData | null> {\n return zip(\n this.getApps(),\n this.httpClient.get('systemSettings/helpPageLink'),\n this.httpClient.get('me/dashboard'),\n this.httpClient.get('systemSettings/applicationTitle'),\n this.httpClient.get(\n 'me.json?fields=authorities,avatar,email,name,settings'\n )\n ).pipe(\n map(\n (response: [HeaderBarApp[], any, HeaderBarNotification, any, any]) => {\n if (response) {\n const [apps, help, notifications, title, user] = response;\n this.apps = apps;\n this.help = help;\n this.notifications = notifications;\n this.title = title as string;\n this.user = user;\n\n return this;\n }\n\n return null;\n }\n ),\n catchError(() => {\n return of(null);\n })\n );\n }\n}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './header-bar-data.model';\nexport * from './header-bar-app.model';\n","export const joinPath = (...parts: any[]) => {\n const realParts = parts.filter((part) => !!part)\n return realParts.map((part) => part.replace(/^\\/+|\\/+$/g, '')).join('/')\n}\n","import { Card } from '@dhis2-ui/card';\nimport { InputField } from '@dhis2-ui/input';\nimport { useConfig } from '@dhis2/app-runtime';\nimport { colors, spacers, theme } from '@dhis2/ui-constants';\nimport { IconApps24, IconSettings24 } from '@dhis2/ui-icons';\nimport PropTypes from 'prop-types';\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { joinPath } from './join-path';\nimport i18n from '@dhis2/d2-i18n';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\n/**\n * Copied from here:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n */\nfunction escapeRegExpCharacters(text: string) {\n return text.replace(/[/.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction Search({ value, onChange, baseUrl }: any) {\n return (\n <div className=\"headerbar-apps-search\">\n <span className=\"headerbar-apps-search-input\">\n <InputField\n value={value}\n name=\"filter\"\n placeholder={i18n.t('Search apps')}\n onChange={onChange}\n initialFocus\n />\n </span>\n\n <span className=\"headerbar-apps-search-icon\">\n <a href={joinPath(baseUrl, 'dhis-web-menu-management')}>\n <IconSettings24 color={colors.grey700} />\n </a>\n </span>\n\n <style jsx>{`\n .headerbar-apps-search {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n height: 52px;\n margin: 8px;\n }\n\n .headerbar-apps-search-input {\n flex: 1 100%;\n }\n\n .headerbar-apps-search-icon {\n flex: 1 auto;\n margin: 8px;\n }\n `}</style>\n </div>\n );\n}\n\nSearch.propTypes = {\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n baseUrl: PropTypes.string,\n};\n\nfunction Item({ name, path, img }: any) {\n return (\n <a className=\"headerbar-app-item\" href={path}>\n <img className=\"headerbar-app-item-logo\" src={img} alt=\"app logo\" />\n\n <div className=\"headerbar-app-item-title\">{name}</div>\n\n <style jsx>{`\n .headerbar-app-item {\n display: flex;\n flex-direction: column;\n -webkit-box-align: center;\n align-items: center;\n -webkit-box-pack: center;\n justify-content: center;\n width: 96px;\n margin: 8px;\n border-radius: 12px;\n text-decoration: none;\n cursor: pointer;\n }\n .headerbar-app-item-logo {\n display: inline-block;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 96px;\n margin: 8px;\n border-radius: 12px;\n text-decoration: none;\n cursor: pointer;\n }\n\n .headerbar-app-item-logo:hover,\n .headerbar-app-item-logo:focus {\n background-color: ${theme.primary050};\n cursor: pointer;\n }\n\n .headerbar-app-item-logo:hover > div {\n font-weight: 500;\n cursor: pointer;\n }\n\n .headerbar-app-item-logo {\n width: 48px;\n height: 48px;\n margin: 8px;\n cursor: pointer;\n }\n\n .headerbar-app-item-title {\n overflow-wrap: anywhere;\n margin-top: 14px;\n color: rgba(0, 0, 0, 0.87);\n font-size: 12px;\n letter-spacing: 0.01em;\n line-height: 14px;\n text-align: center;\n cursor: pointer;\n }\n `}</style>\n </a>\n );\n}\n\nItem.propTypes = {\n img: PropTypes.string,\n name: PropTypes.string,\n path: PropTypes.string,\n};\n\nfunction List({ apps, filter }: any) {\n return (\n <div\n className=\"headerbar-apps-menu-list\"\n data-test=\"headerbar-apps-menu-list\"\n >\n {apps\n .filter(({ displayName, name }: any) => {\n const appName = displayName || name;\n const formattedAppName = appName.toLowerCase();\n const formattedFilter = escapeRegExpCharacters(filter).toLowerCase();\n\n return filter.length > 0\n ? formattedAppName.match(formattedFilter)\n : true;\n })\n .map(({ displayName, name, defaultAction, icon }: any, idx: string) => (\n <Item\n key={`app-${name}-${idx}`}\n name={displayName || name}\n path={defaultAction}\n img={icon}\n />\n ))}\n\n <style jsx>{`\n .headerbar-apps-menu-list {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-content: flex-start;\n align-items: flex-start;\n justify-content: flex-start;\n width: 30vw;\n min-width: 300px;\n max-width: 560px;\n\n min-height: 200px;\n max-height: 465px;\n margin: 0 8px 8px 8px;\n\n overflow: auto;\n overflow-x: hidden;\n }\n `}</style>\n </div>\n );\n}\nList.propTypes = {\n apps: PropTypes.array,\n filter: PropTypes.string,\n};\n\nconst AppMenu = ({ apps, filter, onFilterChange, baseUrl }: any) => (\n <div className=\"headerbar-apps-menu\" data-test=\"headerbar-apps-menu\">\n <Card>\n <Search value={filter} onChange={onFilterChange} baseUrl={baseUrl} />\n <List apps={apps} filter={filter} />\n </Card>\n\n <style jsx>{`\n .headerbar-apps-menu {\n z-index: 10000;\n position: absolute;\n right: -4px;\n }\n `}</style>\n </div>\n);\n\nAppMenu.propTypes = {\n apps: PropTypes.array.isRequired,\n onFilterChange: PropTypes.func.isRequired,\n filter: PropTypes.string,\n baseUrl: PropTypes.string,\n};\n\nconst Apps = ({ apps, baseUrl }: any) => {\n const [show, setShow] = useState(false);\n const [filter, setFilter] = useState('');\n\n const handleVisibilityToggle = useCallback(() => setShow(!show), [show]);\n const handleFilterChange = useCallback(\n ({ value }: any) => setFilter(value),\n []\n );\n\n const containerEl = useRef(null);\n const onDocClick = useCallback((evt: any) => {\n if (\n containerEl.current &&\n !(containerEl.current as any).contains(evt.target)\n ) {\n setShow(false);\n }\n }, []);\n useEffect(() => {\n document.addEventListener('click', onDocClick);\n return () => document.removeEventListener('click', onDocClick);\n }, [onDocClick]);\n\n return (\n <div\n className=\"headerbar-apps\"\n ref={containerEl}\n data-test=\"headerbar-apps\"\n >\n <button onClick={handleVisibilityToggle} data-test=\"headerbar-apps-icon\">\n <IconApps24 color={colors.white} />\n </button>\n\n {show ? (\n <AppMenu\n apps={apps}\n filter={filter}\n baseUrl={baseUrl}\n onFilterChange={handleFilterChange}\n />\n ) : null}\n\n <style jsx>{`\n .headerbar-apps button {\n display: block;\n background: transparent;\n padding: ${spacers.dp4} ${spacers.dp12} 0;\n border: 0;\n cursor: pointer;\n height: 100%;\n }\n .headerbar-apps button:focus {\n outline: 2px solid white;\n outline-offset: -2px;\n }\n .headerbar-apps button:focus:not(:focus-visible) {\n outline: none;\n }\n .headerbar-apps button:hover {\n background: #1a557f;\n }\n .headerbar-apps button:active {\n background: #104067;\n }\n\n .headerbar-apps {\n position: relative;\n height: 100%;\n }\n `}</style>\n </div>\n );\n};\n\nApps.propTypes = {\n apps: PropTypes.array.isRequired,\n baseUrl: PropTypes.string,\n};\n\nexport default Apps;\n","import { LogoIconWhite } from '@dhis2-ui/logo'\nimport { useDataQuery } from '@dhis2/app-runtime'\nimport React from 'react'\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n }\n\nconst query = {\n customLogo: {\n resource: 'staticContent/logo_banner',\n },\n}\n\nconst pathExists = (data: any) =>\n data &&\n data.customLogo &&\n data.customLogo.images &&\n data.customLogo.images.png\n\nexport const LogoImage = () => {\n const { loading, error, data } = useDataQuery(query) as any;\n\n \n if (loading) {\n return null\n }\n\n let Logo\n if (!error && pathExists(data)) {\n \n Logo = (\n <img\n alt=\"Headerbar Logo\"\n src={data.customLogo.images.png}\n \n />\n \n )\n } else {\n \n Logo = <LogoIconWhite />\n\n }\n\n return (\n <div className=\"header-bar-logo\">\n {Logo}\n <style jsx>{`\n .header-bar-logo {\n min-width: 48px;\n max-width: 250px;\n height: 48px;\n display: flex;\n -webkit-box-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n align-items: center;\n overflow: hidden;\n }\n\n .header-bar-logo svg {\n height: 25px;\n width: 27px;\n }\n \n .header-bar-logo img {\n max-height: 100%;\n min-height: auto;\n width: auto;\n }\n `}</style>\n </div>\n )\n}\n","import { useConfig } from '@dhis2/app-runtime';\nimport React from 'react';\nimport { LogoImage } from './logo-image';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\ninterface LogoProp {\n baseUrl: string;\n}\n\nexport const Logo = ({ baseUrl }: LogoProp) => {\n return (\n <div className=\"headerbar-logo\" data-test=\"headerbar-logo\">\n <a href={baseUrl}>\n <LogoImage />\n </a>\n\n <style jsx>{`\n .headerbar-logo {\n box-sizing: border-box;\n min-width: 49px;\n max-height: 48px;\n margin: 0 12px 0 0;\n border-right: 1px solid rgba(32, 32, 32, 0.15);\n }\n .headerbar-logo:hover {\n background-color: #1a557f;\n }\n\n .headerbar-logo a,\n .headerbar-logo a:hover,\n .headerbar-logo a:focus,\n .headerbar-logo a:active,\n .headerbar-logo a:visited {\n user-select: none;\n }\n .headerbar-logo a:focus {\n outline: 2px solid white;\n outline-offset: -2px;\n }\n .headerbar-logo a:focus:not(:focus-visible) {\n outline: none;\n }\n `}</style>\n </div>\n );\n};\n","import { colors, theme, spacers } from '@dhis2/ui-constants'\nimport { IconMessages24, IconMail24 } from '@dhis2/ui-icons'\nimport PropTypes from 'prop-types'\nimport React from 'react'\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n }\n\n\nfunction icon(kind: string) {\n if (kind === 'message') {\n return <IconMessages24 color={colors.white} />\n } else {\n return <IconMail24 color={colors.white} />\n }\n}\n\nexport const NotificationIcon = (params: any) => {\n const { count, href, kind, dataTestId } = params;\n const notificationClassName = \"headerbar-notification-icon \" + kind\n return (\n <a href={href} className={notificationClassName} data-test={dataTestId}>\n {icon(kind)}\n\n {count > 0 && <span data-test={`${dataTestId}-count`}>{count}</span>}\n\n <style jsx>{`\n .headerbar-notification-icon {\n position: relative;\n margin: 0;\n cursor: pointer;\n padding: 0 ${spacers.dp12};\n height: 100%;\n display: flex;\n align-items: center;\n }\n .headerbar-notification-icon:focus {\n outline: 2px solid white;\n outline-offset: -2px;\n }\n .headerbar-notification-icon:focus:not(:focus-visible) {\n outline: none;\n }\n .headerbar-notification-icon:hover {\n background: #1a557f;\n }\n .headerbar-notification-icon:active {\n background: #104067;\n }\n .headerbar-notification-icon span {\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1;\n position: absolute;\n top: 3px;\n right: 2px;\n min-width: 18px;\n min-height: 18px;\n border-radius: ${spacers.dp12};\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1),\n 0 1px 2px 0 rgba(0, 0, 0, 0.06);\n background-color: ${theme.secondary500};\n color: ${colors.white};\n font-size: 13px;\n font-weight: 600;\n line-height: 15px;\n text-align: center;\n cursor: inherit;\n padding: 0 ${spacers.dp4};\n }\n `}</style>\n </a>\n) }\n\nNotificationIcon.defaultProps = {\n count: 0,\n}\n\nNotificationIcon.propTypes = {\n href: PropTypes.string.isRequired,\n count: PropTypes.number,\n dataTestId: PropTypes.string,\n message: PropTypes.string,\n kind: PropTypes.oneOf(['interpretation', 'message']),\n}\n","import { useConfig } from '@dhis2/app-runtime'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport { joinPath } from './join-path'\nimport { NotificationIcon } from './notification-icon'\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n }\n\n\n/*\n AUTHORITIES:\n - ALL: superuser\n - M_dhis-web-interpretation: access to interpretations app\n - M_dhis-web-messaging: access to messaging app\n */\n\nconst hasAuthority = (userAuthorities: any, authId: string) =>\n Array.isArray(userAuthorities) &&\n userAuthorities.some(\n (userAuthId) => userAuthId === 'ALL' || userAuthId === authId\n )\n\nexport const Notifications = (params: any) => {\n const {\n interpretations,\n messages,\n userAuthorities,\n } = params;\n const { baseUrl } = useConfig()\n\n return (\n <div className=\"headerbar-notifications\" data-test=\"headerbar-notifications\">\n {hasAuthority(userAuthorities, 'M_dhis-web-interpretation') && (\n <NotificationIcon\n count={interpretations}\n href={joinPath(baseUrl, 'dhis-web-interpretation')}\n kind=\"message\"\n dataTestId=\"headerbar-interpretations\"\n />\n )}\n\n {hasAuthority(userAuthorities, 'M_dhis-web-messaging') && (\n <NotificationIcon\n message=\"email\"\n count={messages}\n href={joinPath(baseUrl, 'dhis-web-messaging')}\n kind=\"interpretation\"\n dataTestId=\"headerbar-messages\"\n />\n )}\n\n <style jsx>{`\n .headerbar-notifications {\n user-select: none;\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 100%;\n }\n `}</style>\n </div>\n )\n}\n\nNotifications.propTypes = {\n interpretations: PropTypes.number,\n messages: PropTypes.number,\n userAuthorities: PropTypes.arrayOf(PropTypes.string),\n}\n","import { useConfig } from '@dhis2/app-runtime'\n\nexport const useDebugInfo = () => {\n const { appName, appVersion, systemInfo } = useConfig() as any\n\n return {\n app_name: appName || null,\n app_version: appVersion?.full || null,\n dhis2_version: systemInfo?.version || null,\n dhis2_revision: systemInfo?.revision || null,\n }\n}\n\nexport const useFormattedDebugInfo = () =>\n JSON.stringify(useDebugInfo(), undefined, 2)\n","import { colors } from '@dhis2/ui-constants';\nimport React from 'react';\nimport { useDebugInfo } from './use-debug-info';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nconst formatDebugInfoKey = (key: any) => {\n const tokens = key.split('_');\n return tokens\n .map((token: any) => {\n if (token.toLowerCase() === 'dhis2') {\n return 'DHIS2';\n } else {\n return token[0].toUpperCase() + token.substr(1).toLowerCase();\n }\n })\n .join(' ');\n};\n\nexport function DebugInfoTable() {\n const debugInfo = useDebugInfo() as any;\n return (\n <table {...{ 'data-test': 'dhis2-ui-headerbar-debuginfotable' }}>\n <tbody>\n {Object.keys(debugInfo).map((key) => (\n <tr key={key}>\n <td className=\"debug-info-key\">{formatDebugInfoKey(key)}</td>\n <td>{debugInfo[key]}</td>\n </tr>\n ))}\n </tbody>\n <style jsx>{`\n table {\n white-space: pre-wrap;\n font-size: 14px;\n line-height: 1.2;\n color: ${colors.grey700};\n font-famile: Menlo, Courier, monospace !important;\n }\n td {\n padding: 3px 16px 3px 0;\n }\n .debug-info-key {\n font-weight: bold;\n }\n `}</style>\n </table>\n );\n}\n","import { Button, ButtonStrip } from '@dhis2-ui/button'\nimport { Modal, ModalActions, ModalContent, ModalTitle } from '@dhis2-ui/modal'\nimport { useAlert } from '@dhis2/app-runtime'\nimport i18n from '@dhis2/d2-i18n'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport { DebugInfoTable } from './debug-info-table'\nimport { useFormattedDebugInfo } from './use-debug-info'\n\nexport function DebugInfoModal(params: any) {\n const { onClose } = params;\n const debugInfo = useFormattedDebugInfo()\n const { show: showClipboardAlert } = useAlert(\n 'Debug information copied to clipboard',\n { duration: 3000 }\n )\n\n const copyDebugInfo = () => {\n navigator.clipboard.writeText(debugInfo)\n onClose()\n showClipboardAlert()\n }\n\n return (\n <Modal position=\"middle\" dataTest=\"dhis2-ui-headerbar-debuginfomodal\">\n <ModalTitle>{i18n.t('Debug info')}</ModalTitle>\n <ModalContent>\n <DebugInfoTable />\n </ModalContent>\n <ModalActions>\n <ButtonStrip end>\n <Button onClick={() => onClose()}>{i18n.t('Close')}</Button>\n <Button\n primary\n onClick={copyDebugInfo}\n dataTest=\"dhis2-ui-headerbar-debuginfomodal-copybutton\"\n >\n {i18n.t('Copy debug info')}\n </Button>\n </ButtonStrip>\n </ModalActions>\n </Modal>\n )\n}\n\nDebugInfoModal.propTypes = {\n onClose: PropTypes.func.isRequired,\n}\n","import { MenuItem } from '@dhis2-ui/menu';\nimport { colors } from '@dhis2/ui-constants';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport i18n from '@dhis2/d2-i18n';\nimport { useDebugInfo } from './use-debug-info';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nexport const DebugInfoMenuItem = (params: any) => {\n const { hideProfileMenu, showDebugInfoModal } = params;\n const debugInfo = useDebugInfo();\n\n const openDebugModal = () => {\n hideProfileMenu();\n showDebugInfoModal();\n };\n\n const debugInfoLabel = (\n <div className=\"root\">\n <div\n className=\"instance-info version\"\n data-test=\"dhis2-ui-headerbar-instanceinfo\"\n >\n {debugInfo.dhis2_version\n ? i18n.t('DHIS2 {{dhis2Version}}', {\n dhis2Version: debugInfo.dhis2_version,\n })\n : i18n.t('DHIS2 version unknown')}\n </div>\n <div className=\"version\" data-test=\"dhis2-ui-headerbar-appinfo\">\n {debugInfo.app_name\n ? debugInfo.app_version\n ? `${debugInfo.app_name} ${debugInfo.app_version}`\n : i18n.t('{{appName}} version unknown', {\n appName: debugInfo.app_name,\n })\n : debugInfo.app_version\n ? i18n.t('App {{appVersion}}', {\n appVersion: debugInfo.app_version,\n })\n : i18n.t('App version unknown')}\n {}\n </div>\n <style jsx>{`\n .root {\n color: ${colors.grey700};\n font-style: italic;\n font-size: 14px;\n line-height: 17px;\n }\n .instance-info {\n margin-bottom: 4px;\n }\n .version {\n white-space: no-wrap;\n }\n `}</style>\n </div>\n );\n\n return (\n <MenuItem\n dense\n onClick={openDebugModal}\n label={debugInfoLabel}\n dataTest=\"dhis2-ui-headerbar-debuginfo\"\n />\n );\n};\n\nDebugInfoMenuItem.propTypes = {\n hideProfileMenu: PropTypes.func.isRequired,\n showDebugInfoModal: PropTypes.func.isRequired,\n};\n","import { UserAvatar } from '@dhis2-ui/user-avatar'\nimport { useConfig } from '@dhis2/app-runtime'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport { joinPath } from '../join-path'\nimport i18n from '@dhis2/d2-i18n'\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n }\n\nconst ProfileName = (params: any) => {\n const { children } = params;\n return (\n <div className=\"headerbar-profile-username\" data-test=\"headerbar-profile-username\">\n {children}\n\n <style jsx>{`\n .headerbar-profile-username {\n margin-bottom: 3px;\n font-size: 16px;\n line-height: 19px;\n }\n `}</style>\n </div>\n) }\nProfileName.propTypes = {\n children: PropTypes.string,\n}\n\nconst ProfileEmail = (params: any) => {\n const { children } = params;\n return (\n <div className=\"headerbar-profile-user-email\" data-test=\"headerbar-profile-user-email\">\n {children}\n \n <style jsx>{`\n .headerbar-profile-user-email {\n margin-bottom: 6px;\n font-size: 14px;\n line-height: 16px;\n }\n `}</style>\n </div>\n )\n}\nProfileEmail.propTypes = {\n children: PropTypes.string,\n}\n\nconst ProfileEdit = (params: any) => {\n const { children } = params;\n const { baseUrl } = useConfig()\n\n return (\n <a\n className=\"headerbar-profile-edit-profile-link\"\n href={joinPath(baseUrl, 'dhis-web-user-profile/#/profile')}\n data-test=\"headerbar-profile-edit-profile-link\"\n >\n {children}\n\n <style jsx>{`\n .headerbar-profile-edit-profile-link {\n color: rgba(0, 0, 0, 0.87);\n font-size: 12px;\n line-height: 14px;\n text-decoration: underline !important;\n cursor: pointer;\n }\n `}</style>\n </a>\n )\n}\n\nProfileEdit.propTypes = {\n children: PropTypes.string,\n}\n\nconst ProfileDetails = (params: any) => {\n const { name, email } = params;\n return (\n <div className=\"headerbar-profile-details\">\n <ProfileName>{name}</ProfileName>\n <ProfileEmail>{email}</ProfileEmail>\n <ProfileEdit>{i18n.t('Edit profile')}</ProfileEdit>\n \n <style jsx>{`\n .headerbar-profile-details {\n display: flex;\n flex-direction: column;\n margin-left: 20px;\n color: #000;\n font-size: 14px;\n font-weight: 400;\n }\n `}</style>\n </div>\n )\n}\n\nProfileDetails.propTypes = {\n email: PropTypes.string,\n name: PropTypes.string,\n}\n\nexport const ProfileHeader = (params: any) => {\n const { name, email, avatarId } = params;\n return (<div className=\"headerbar-profile-header\">\n <UserAvatar\n avatarId={avatarId}\n name={name}\n dataTest=\"headerbar-profile-menu-icon\"\n large\n />\n <ProfileDetails name={name} email={email} />\n\n <style jsx>{`\n .headerbar-profile-header {\n display: flex;\n flex-direction: row;\n margin-left: 24px;\n padding-top: 20px;\n }\n `}</style>\n </div>\n) }\n\nProfileHeader.propTypes = {\n avatarId: PropTypes.string,\n email: PropTypes.string,\n name: PropTypes.string,\n}\n","import PropTypes from 'prop-types'\nimport React, { createContext, useContext } from 'react'\n\nconst headerBarContext = createContext({\n updateAvailable: false,\n onApplyAvailableUpdate: () => {},\n})\n\nexport const HeaderBarContextProvider = (params: any) => {\n const {\n updateAvailable,\n onApplyAvailableUpdate,\n children,\n } = params;\n return (\n <headerBarContext.Provider\n value={{ updateAvailable, onApplyAvailableUpdate }}\n >\n {children}\n </headerBarContext.Provider>\n )\n}\nHeaderBarContextProvider.propTypes = {\n children: PropTypes.node,\n updateAvailable: PropTypes.bool,\n onApplyAvailableUpdate: PropTypes.func,\n}\n\nexport const useHeaderBarContext = () => useContext(headerBarContext)\n","import { MenuItem } from '@dhis2-ui/menu'\nimport { useConfig } from '@dhis2/app-runtime'\nimport { colors } from '@dhis2/ui-constants'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport { useHeaderBarContext } from '../header-bar-context'\nimport i18n from '@dhis2/d2-i18n'\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n }\n\nexport function UpdateNotification(params: any) {\n const { hideProfileMenu } =params;\n const { appName } = useConfig()\n const { updateAvailable, onApplyAvailableUpdate } = useHeaderBarContext()\n const onClick = () => {\n hideProfileMenu()\n onApplyAvailableUpdate?.()\n }\n\n const updateNotificationLabel = (\n <div className=\"root\">\n <div className=\"badge\" />\n <div className=\"spacer\" />\n <div className=\"message\">\n {appName\n ? i18n.t('New {{appName}} version available', { appName })\n : i18n.t('New app version available')}\n <br />\n {i18n.t('Click to reload')}\n </div>\n <style jsx>{`\n .root {\n display: flex;\n flex-direction: row;\n align-items: center;\n font-size: 14px;\n line-height: 17px;\n }\n .badge {\n display: inline-block;\n width: 12px;\n height: 12px;\n margin: 0 8px;\n border-radius: 6px;\n background-color: ${colors.blue600};\n }\n .spacer {\n display: inline-block;\n width: 8px;\n }\n .message {\n display: inline-block;\n }\n `}</style>\n </div>\n )\n\n return updateAvailable ? (\n <MenuItem\n dense\n onClick={onClick}\n label={updateNotificationLabel}\n dataTest=\"dhis2-ui-headerbar-updatenotification\"\n />\n ) : null\n}\n\nUpdateNotification.propTypes = {\n hideProfileMenu: PropTypes.func.isRequired,\n}\n","import { Card } from '@dhis2-ui/card'\nimport { Center } from '@dhis2-ui/center'\nimport { Divider } from '@dhis2-ui/divider'\nimport { Layer } from '@dhis2-ui/layer'\nimport { CircularLoader } from '@dhis2-ui/loader'\nimport { MenuDivider, MenuItem } from '@dhis2-ui/menu'\nimport { clearSensitiveCaches, useConfig } from '@dhis2/app-runtime'\nimport { colors } from '@dhis2/ui-constants'\nimport {\n IconSettings24,\n IconInfo24,\n IconLogOut24,\n IconUser24,\n IconQuestion24,\n} from '@dhis2/ui-icons'\nimport PropTypes from 'prop-types'\nimport React, { useState } from 'react'\nimport { DebugInfoMenuItem } from '../debug-info/debug-info-menu-item'\nimport { joinPath } from '../join-path'\nimport i18n from '@dhis2/d2-i18n';\nimport { ProfileHeader } from './profile-header'\nimport { UpdateNotification } from './update-notification'\n\nconst LoadingMask = () => (\n <Layer\n translucent\n disablePortal\n dataTest=\"headerbar-profile-menu-loading-mask\"\n >\n <Center>\n <CircularLoader />\n </Center>\n </Layer>\n)\n\nconst ProfileContents = (params: any) => {\n const {\n name,\n email,\n avatarId,\n helpUrl,\n hideProfileMenu,\n showDebugInfoModal,\n } = params;\n const { baseUrl } = useConfig()\n const [loading, setLoading] = useState(false)\n\n return (\n <Card>\n <div className=\"headerbar-profile-contents\">\n <ProfileHeader name={name} email={email} avatarId={avatarId} />\n <Divider margin=\"13px 0 7px 0\" />\n <ul data-test=\"headerbar-profile-menu\">\n <MenuItem\n href={joinPath(\n baseUrl,\n 'dhis-web-user-profile/#/settings'\n )}\n label={i18n.t('Settings')}\n value=\"settings\"\n icon={<IconSettings24 color={colors.grey700} />}\n />\n <MenuItem\n href={joinPath(\n baseUrl,\n 'dhis-web-user-profile/#/account'\n )}\n label={i18n.t('Account')}\n value=\"account\"\n icon={<IconUser24 color={colors.grey700} />}\n />\n {helpUrl && (\n <MenuItem\n href={helpUrl}\n label={i18n.t('Help')}\n value=\"help\"\n icon={<IconQuestion24 color={colors.grey700} />}\n />\n )}\n <MenuItem\n href={joinPath(\n baseUrl,\n 'dhis-web-user-profile/#/aboutPage'\n )}\n label={i18n.t('About DHIS2')}\n value=\"about\"\n icon={<IconInfo24 color={colors.grey700} />}\n />\n <MenuItem\n href={joinPath(\n baseUrl,\n 'dhis-web-commons-security/logout.action'\n )}\n // NB: By MenuItem implementation, this callback\n // overwrites default navigation behavior but maintains\n // the href attribute\n onClick={async () => {\n setLoading(true)\n await clearSensitiveCaches()\n setLoading(false)\n window.location.assign(\n joinPath(\n baseUrl,\n 'dhis-web-commons-security/logout.action'\n )\n )\n }}\n label={i18n.t('Logout')}\n value=\"logout\"\n icon={<IconLogOut24 color={colors.grey700} />}\n />\n <MenuDivider dense />\n <DebugInfoMenuItem\n hideProfileMenu={hideProfileMenu}\n showDebugInfoModal={showDebugInfoModal}\n />\n <UpdateNotification hideProfileMenu={hideProfileMenu} />\n </ul>\n </div>\n\n {loading && <LoadingMask />}\n\n <style jsx>{`\n .headerbar-profile-contents {\n width: 100%;\n padding: 0;\n }\n\n .headerbar-profile-contents ul {\n padding: 0;\n margin: 0;\n }\n\n .headerbar-profile-contents a {\n display: inline-flex !important;\n }\n\n .headerbar-profile-contents a,\n .headerbar-profile-contents a:hover,\n .headerbar-profile-contents a:focus,\n .headerbar-profile-contents a:active,\n .headerbar-profile-contents a:visited {\n text-decoration: none;\n display: block;\n }\n `}</style>\n </Card>\n )\n}\n\nProfileContents.propTypes = {\n hideProfileMenu: PropTypes.func.isRequired,\n showDebugInfoModal: PropTypes.func.isRequired,\n avatarId: PropTypes.string,\n email: PropTypes.string,\n helpUrl: PropTypes.string,\n name: PropTypes.string,\n}\n\nexport const ProfileMenu = (params: any) => {\n const { ...props }=params;\n return (\n <div className=\"headerbar-profile-menu\" data-test=\"headerbar-profile-menu\">\n <ProfileContents {...props} />\n <style jsx>{`\n .headerbar-profile-menu {\n z-index: 10000;\n position: absolute;\n right: 4px;\n width: 320px;\n }\n `}</style>\n </div>\n )\n}\n\nProfileMenu.propTypes = {\n hideProfileMenu: PropTypes.func.isRequired,\n showDebugInfoModal: PropTypes.func.isRequired,\n avatarId: PropTypes.string,\n email: PropTypes.string,\n helpUrl: PropTypes.string,\n name: PropTypes.string,\n}\n","import { useEffect, useMemo } from 'react'\n\nexport const useOnDocClick = (containerRef: any, hide: any) => {\n const onDocClick = useMemo(() => {\n return (evt: any) => {\n if (!containerRef.current) {\n return null\n }\n\n if (!containerRef.current.contains(evt.target)) {\n hide()\n }\n\n return null;\n }\n }, [containerRef, hide])\n\n useEffect(() => {\n document.addEventListener('click', onDocClick)\n\n return () => {\n document.removeEventListener('click', onDocClick)\n }\n }, [onDocClick])\n}\n","import { UserAvatar } from '@dhis2-ui/user-avatar'\nimport PropTypes from 'prop-types'\nimport React, { useCallback, useRef, useState } from 'react'\nimport { DebugInfoModal } from './debug-info/debug-info-modal'\nimport { ProfileMenu } from './profile-menu'\nimport { useOnDocClick } from './profile/use-on-doc-click'\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n }\n\nconst Profile = (params: any) => {\n const { name, email, avatarId, helpUrl } = params;\n const [showProfileMenu, setShowProfileMenu] = useState(false)\n const [showDebugInfoModal, setShowDebugInfoModal] = useState(false)\n const hideProfileMenu = useCallback(\n () => setShowProfileMenu(false),\n [setShowProfileMenu]\n )\n const toggleProfileMenu = useCallback(\n () => setShowProfileMenu((show) => !show),\n [setShowProfileMenu]\n ) as any\n const containerRef = useRef(null)\n\n useOnDocClick(containerRef, hideProfileMenu)\n\n return (\n <div\n ref={containerRef}\n data-test=\"headerbar-profile\"\n className=\"headerbar-profile\"\n >\n <button\n className=\"headerbar-profile-btn\"\n onClick={toggleProfileMenu}\n >\n <UserAvatar\n avatarId={avatarId}\n name={name}\n dataTest=\"headerbar-profile-icon\"\n medium\n />\n </button>\n\n {showProfileMenu && (\n <ProfileMenu\n avatarId={avatarId}\n name={name}\n email={email}\n helpUrl={helpUrl}\n hideProfileMenu={hideProfileMenu}\n showDebugInfoModal={() => {\n setShowDebugInfoModal(true)\n }}\n />\n )}\n {showDebugInfoModal && (\n <DebugInfoModal\n onClose={() => {\n setShowDebugInfoModal(false)\n }}\n />\n )}\n\n <style jsx>{`\n .headerbar-profile {\n position: relative;\n height: 100%;\n }\n\n .headerbar-profile-btn {\n background: transparent;\n padding: 6px;\n border: 0;\n cursor: pointer;\n }\n .headerbar-profile-btn:focus {\n outline: 2px solid white;\n outline-offset: -2px;\n }\n .headerbar-profile-btn:focus:not(:focus-visible) {\n outline: none;\n }\n .headerbar-profile-btn:hover {\n background: #1a557f;\n }\n .headerbar-profile-btn:active {\n background: #104067;\n }\n `}</style>\n </div>\n )\n}\n\nProfile.propTypes = {\n name: PropTypes.string.isRequired,\n avatarId: PropTypes.string,\n email: PropTypes.string,\n helpUrl: PropTypes.string,\n}\n\nexport default Profile\n","import PropTypes from 'prop-types';\nimport React from 'react';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nexport const Title = (params: any) => {\n const { app, instance } = params;\n return (\n <div className=\"headerbar-title\" data-test=\"headerbar-title\">\n {app ? `${instance} - ${app}` : `${instance}`}\n\n <style jsx>{`\n .headerbar-title {\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 14px;\n font-weight: 500;\n letter-spacing: 0.01em;\n white-space: nowrap;\n }\n `}</style>\n </div>\n );\n};\nTitle.propTypes = {\n app: PropTypes.string,\n instance: PropTypes.string,\n};\n","import i18n from '@dhis2/d2-i18n';\nimport { colors } from '@dhis2/ui-constants';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { HeaderBarData } from '../models';\nimport Apps from './apps';\nimport { Logo } from './logo';\nimport { Notifications } from './notifications';\nimport Profile from './profile';\nimport { Title } from './title';\n\ninterface HeaderBarProp {\n appName: string;\n data: HeaderBarData;\n className?: string;\n}\n\nexport const HeaderBar = ({ appName, data, className }: HeaderBarProp) => {\n const loading = false;\n const error = null;\n\n // See https://jira.dhis2.org/browse/LIBS-180\n if (!loading && !error) {\n // TODO: This will run every render which is probably wrong!\n // Also, setting the global locale shouldn't be done in the headerbar\n const locale = (data.user['settings'] as any)['keyUiLocale'] || 'en';\n i18n.setDefaultNamespace('default');\n i18n.changeLanguage(locale);\n }\n\n {\n /* TODO: Find better way to attach base URL */\n }\n const baseUrl = '../../../';\n\n return (\n <header className={className}>\n <div className=\"main\">\n {!loading && !error && (\n <>\n <Logo baseUrl={baseUrl} />\n\n <Title\n app={appName}\n instance={(data.title as any)['applicationTitle']}\n />\n\n <div className=\"right-control-spacer\" />\n\n {/*TODO: Find better approach to handle PWA */}\n {/* {'pwaEnabled' && <OnlineStatus />} */}\n\n <Notifications\n interpretations={data.notifications.unreadInterpretations}\n messages={data.notifications.unreadMessageConversations}\n userAuthorities={data.user['authorities'] as any}\n />\n <Apps apps={data.apps} baseUrl={baseUrl} />\n\n <Profile\n name={data.user['name'] as string}\n email={data.user['email'] as string}\n avatarId={((data.user['avatar'] || {}) as any)['id']}\n helpUrl={data.help.helpPageLink}\n />\n </>\n )}\n </div>\n\n {/* {'pwaEnabled' && !loading && !error && <OnlineStatus dense />} */}\n\n <style jsx>{`\n .main {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n background-color: #2c6693;\n color: ${colors.white};\n height: 48px;\n }\n .right-control-spacer {\n margin-left: auto;\n }\n `}</style>\n </header>\n );\n};\n\nHeaderBar.propTypes = {\n appName: PropTypes.string,\n data: HeaderBarData,\n className: PropTypes.string,\n updateAvailable: PropTypes.bool,\n onApplyAvailableUpdate: PropTypes.func,\n};\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n} from '@angular/core';\nimport parse from 'html-react-parser';\nimport * as React from 'react';\nimport { ComponentProps } from 'react';\nimport * as ReactDOM from 'react-dom/client';\n(window as any).React = React;\n\n@Directive({\n selector: 'ng-dhis2-ui-wrapper',\n})\nexport class ReactWrapperComponent\n implements OnChanges, OnDestroy, AfterViewInit\n{\n @Input() props?: ComponentProps<any>;\n @Input() component!: React.ElementType;\n\n @ContentChild('ngDhis2UiContent') content!: ElementRef<HTMLElement>;\n protected reactDomRoot?: ReactDOM.Root;\n\n constructor(protected elementRef: ElementRef<HTMLElement>) {}\n\n ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n this.render();\n }\n\n ngOnChanges(): void {\n if (this.elementRef) this.render();\n }\n\n ngOnDestroy() {\n this.reactDomRoot?.unmount();\n }\n\n protected render() {\n if (!this.component) throw new Error('React component must be supplied');\n\n if (!this.reactDomRoot) return;\n\n const jsxContent = this.content?.nativeElement?.outerHTML\n ? parse(this.content?.nativeElement?.outerHTML)\n : undefined;\n\n this.reactDomRoot.render(\n <this.component {...this.props}> {jsxContent || ''} </this.component>\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactWrapperComponent } from './react-wrapper.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ReactWrapperComponent],\n exports: [ReactWrapperComponent],\n})\nexport class ReactWrapperModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './react-wrapper.module';\nexport * from './react-wrapper.component';\n","import { Component, ElementRef } from '@angular/core';\nimport { DataProvider } from '@dhis2/app-runtime';\nimport { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';\nimport React from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport { firstValueFrom } from 'rxjs';\nimport { HeaderBarData } from './models';\nimport { HeaderBar } from './utils/header-bar';\nimport { ReactWrapperComponent } from '../react-wrapper';\n\n@Component({\n selector: 'ng-dhis2-ui-header-bar',\n template: `<ng-container></ng-container>`,\n})\nexport class HeaderBarComponent extends ReactWrapperComponent {\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private httpClient: NgxDhis2HttpClientService\n ) {\n super(elementRef);\n }\n\n override async ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n const manifest = await firstValueFrom(this.httpClient.manifest());\n const data = await firstValueFrom(new HeaderBarData(this.httpClient).get());\n\n this.component = data\n ? () => (\n <DataProvider>\n {<HeaderBar appName={manifest?.name} data={data} />}\n </DataProvider>\n )\n : () => <div>Something went wrong</div>;\n this.render();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedDhis2UiModule } from '../../shared/shared.module';\nimport { HeaderBarComponent } from './header-bar.component';\n\n@NgModule({\n imports: [CommonModule, SharedDhis2UiModule],\n declarations: [HeaderBarComponent],\n exports: [HeaderBarComponent],\n})\nexport class HeaderBarModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './header-bar.module';\nexport * from './header-bar.component';\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { Button } from '@dhis2/ui';\nimport { ReactWrapperComponent } from '../react-wrapper';\n\n@Component({\n selector: 'ng-dhis2-ui-button',\n template: '<ng-content></ng-content>',\n})\nexport class ButtonComponent extends ReactWrapperComponent {\n @Input() label!: string;\n @Input() primary?: boolean;\n @Input() secondary?: boolean;\n @Input() destructive?: boolean;\n @Input() disabled?: boolean;\n @Input() small?: boolean;\n @Input() large?: boolean;\n\n @Output() buttonClick: EventEmitter<any> = new EventEmitter();\n\n override props: Record<string, unknown> = {\n onClick: (e: any) => {\n this.onButtonClick(e);\n },\n };\n\n override component = Button;\n\n ngOnInit() {\n this.props = {\n ...this.props,\n primary: this.primary,\n secondary: this.secondary,\n destructive: this.destructive,\n small: this.small,\n large: this.large,\n };\n }\n\n onButtonClick(event: any) {\n this.buttonClick.emit(event);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedDhis2UiModule } from '../../shared/shared.module';\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n imports: [CommonModule, SharedDhis2UiModule],\n})\nexport class ButtonModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './button.module';\nexport * from './button.component';\n","import React from 'react';\n\nexport const AssignedCategoriesIcon = () => {\n return (\n <svg height=\"16\" viewBox=\"0 0 16 16\" width=\"16\">\n <g fill=\"#212934\" fillRule=\"evenodd\">\n <path d=\"m2 7h11v1h-11z\" />\n <path d=\"m2 13h11v1h-11z\" />\n <path d=\"m2 2h11v1h-11z\" />\n <path d=\"m7 8h1v5h-1z\" />\n <path d=\"m12 3h1v10h-1z\" />\n <path d=\"m2 3h1v10h-1z\" />\n </g>\n </svg>\n );\n};\n","import {\n IconClock16,\n IconDimensionData16,\n IconDimensionOrgUnit16,\n} from '@dhis2/ui';\nimport i18n from '@dhis2/d2-i18n';\nimport React from 'react';\nimport { AssignedCategoriesIcon } from '../assets/AssignedCategoriesIcon';\n\nexport const DIMENSION_ID_DATA = 'dx';\nexport const DIMENSION_ID_PERIOD = 'pe';\nexport const DIMENSION_ID_ORGUNIT = 'ou';\nexport const DIMENSION_ID_ASSIGNED_CATEGORIES = 'co';\nexport const DIMENSION_PROP_NO_ITEMS = 'noItems';\n\nexport const getFixedDimensions = () => ({\n [DIMENSION_ID_DATA]: {\n id: DIMENSION_ID_DATA,\n name: i18n.t('Data'),\n iconName: 'DataIcon',\n icon: IconDimensionData16,\n },\n [DIMENSION_ID_PERIOD]: {\n id: DIMENSION_ID_PERIOD,\n name: i18n.t('Period'),\n iconName: 'PeriodIcon',\n icon: IconClock16,\n },\n [DIMENSION_ID_ORGUNIT]: {\n id: DIMENSION_ID_ORGUNIT,\n name: i18n.t('Organisation unit'),\n iconName: 'OrgUnitIcon',\n icon: IconDimensionOrgUnit16,\n },\n});\n\nexport const getDynamicDimensions = () => ({\n [DIMENSION_ID_ASSIGNED_CATEGORIES]: {\n id: DIMENSION_ID_ASSIGNED_CATEGORIES,\n name: i18n.t('Assigned Categories'),\n iconName: 'AssignedCategoriesIcon',\n icon: AssignedCategoriesIcon,\n [DIMENSION_PROP_NO_ITEMS]: true,\n },\n});\n\nexport const getPredefinedDimensions = () => ({\n ...getFixedDimensions(),\n ...getDynamicDimensions(),\n});\n\nexport const filterOutPredefinedDimensions = (dimensionIds: string[]) =>\n dimensionIds.filter(\n (dimensionId: string) =>\n !Object.keys(getPredefinedDimensions()).includes(dimensionId)\n );\n\nexport const getPredefinedDimensionProp = (\n dimensionId: string,\n propName: string\n) => ((getPredefinedDimensions() as any)[dimensionId] || {})[propName];\n\nexport const getDimensionById = (dimensionId: string) =>\n (getPredefinedDimensions() as any)[dimensionId];\n","export const TRANSFER_OPTIONS_WIDTH = '420px';\n\nexport const TRANSFER_SELECTED_WIDTH = '298px';\n\nexport const TRANSFER_HEIGHT = '512px';\n","import i18n from '@dhis2/d2-i18n';\n\nexport const formatList = (items: any) => {\n // Wrap Intl.ListFormat in try/catch as DHIS2 locales are not always ISO 639 compliant\n try {\n const formatter = new (Intl as any).ListFormat(i18n.language, {\n style: 'long',\n type: 'conjunction',\n });\n return formatter.format(items);\n } catch (error) {\n return items.join(', ');\n }\n};\n","// Axis\n\nexport const AXIS = {\n defaultValue: [],\n isValid: (axis: any) => Array.isArray(axis),\n};\n\n// Axis ids\n\nexport const AXIS_ID_COLUMNS = 'columns';\nexport const AXIS_ID_ROWS = 'rows';\nexport const AXIS_ID_FILTERS = 'filters';\nexport const AXIS_ID_YEAR_OVER_YEAR_SERIES = 'yearOverYearSeries';\nexport const AXIS_ID_YEAR_OVER_YEAR_CATEGORY = 'yearOverYearCategory';\n//export const AXIS_ID_POINTS_CATEGORY = 'pointsCategory'\n\nexport const DEFAULT_AXIS_IDS = [\n AXIS_ID_COLUMNS,\n AXIS_ID_ROWS,\n AXIS_ID_FILTERS,\n];\nexport const ALL_AXIS_IDS = [\n AXIS_ID_COLUMNS,\n AXIS_ID_ROWS,\n AXIS_ID_FILTERS,\n AXIS_ID_YEAR_OVER_YEAR_SERIES,\n AXIS_ID_YEAR_OVER_YEAR_CATEGORY,\n];\n","import { isObject } from 'lodash';\nimport { isString } from 'lodash';\n\n// Dimension\n\nexport const DIMENSION = {\n isValid: (dimension: any) => isObject(dimension),\n};\n\n// Props\n\nexport const DIMENSION_PROP_ID = {\n name: 'dimension',\n defaultValue: '',\n required: true,\n isValid: (prop: any) => isString(prop),\n};\n\nexport const DIMENSION_PROP_ITEMS = {\n name: 'items',\n defaultValue: [],\n required: false,\n isValid: (prop: any) => Array.isArray(prop),\n};\n\nexport const DIMENSION_PROP_FILTER = {\n name: 'filter',\n defaultValue: [],\n required: false,\n isValid: (prop: any) => isString(prop),\n};\n\nexport const DIMENSION_PROP_LEGEND_SET = {\n name: 'legendSet',\n defaultValue: [],\n required: false,\n isValid: (prop: any) => isString(prop),\n};\n\nexport const DIMENSION_PROP_PROGRAM_STAGE = {\n name: 'programStage',\n defaultValue: {},\n required: false,\n isValid: (prop: any) => isObject(prop),\n};\n\nexport const DIMENSION_PROP_REPETITION = {\n name: 'repetition',\n defaultValue: [],\n required: false,\n isValid: (prop: any) => Array.isArray(prop),\n};\n\nexport const DIMENSION_PROPS = [\n DIMENSION_PROP_ID,\n DIMENSION_PROP_ITEMS,\n DIMENSION_PROP_FILTER,\n DIMENSION_PROP_LEGEND_SET,\n DIMENSION_PROP_PROGRAM_STAGE,\n DIMENSION_PROP_REPETITION,\n];\n","import { DIMENSION_PROP_ID } from './dimension';\n\nexport const dimensionIs = (dimension: any, dimensionId: string) =>\n dimension[DIMENSION_PROP_ID.name] === dimensionId;\n","import { AXIS } from './axis';\nimport { dimensionIs } from './dimensionIs';\n\nexport const axisGetDimension = (axis: any, dimensionId: string) =>\n AXIS.isValid(axis) &&\n axis.find((dimension: any) => dimensionIs(dimension, dimensionId));\n","import { axisGetDimension } from './axisGetDimension';\n\nexport const axisHasDimension = (axis: any, dimensionId: string) =>\n Boolean(axisGetDimension(axis, dimensionId));\n","import { DEFAULT_AXIS_IDS } from './axis';\nimport { axisHasDimension } from './axisHasDimension';\nimport { dimensionIs } from './dimensionIs';\n\nexport const layoutReplaceDimension = (\n layout: any,\n dimensionId: any,\n items: any\n) => {\n const axisId = DEFAULT_AXIS_IDS.find((a) =>\n axisHasDimension(layout[a], dimensionId)\n );\n\n if (!axisId) {\n return Object.assign({}, layout);\n }\n\n const newAxisDimensions = layout[axisId].map((dimension: any) => {\n if (dimensionIs(dimension, dimensionId)) {\n return Object.assign({}, dimension, { items });\n }\n return dimension;\n });\n\n return Object.assign({}, layout, { [axisId]: newAxisDimensions });\n};\n","import { AXIS_ID_COLUMNS, AXIS_ID_ROWS, AXIS_ID_FILTERS } from './axis';\n\nexport const layoutGetAllAxes = (layout: any) => [\n layout[AXIS_ID_COLUMNS],\n layout[AXIS_ID_ROWS],\n layout[AXIS_ID_FILTERS],\n];\n","import { layoutGetAllAxes } from './layoutGetAllAxes';\n\nexport const layoutGetAllDimensions = (layout: any) =>\n layoutGetAllAxes(layout).reduce((allDimensions: any, axis: any) => {\n allDimensions.push(...axis);\n return allDimensions;\n }, []);\n","import { dimensionIs } from './dimensionIs';\nimport { layoutGetAllDimensions } from './layoutGetAllDimensions';\n\nexport const layoutGetDimension = (layout: any, dimensionId: string) =>\n layoutGetAllDimensions(layout).find((dimension: any) =>\n dimensionIs(dimension, dimensionId)\n );\n","import { DIMENSION, DIMENSION_PROP_ITEMS } from './dimension';\n\nexport const dimensionIsEmpty = (dimension: any) =>\n !(\n DIMENSION.isValid(dimension) &&\n DIMENSION_PROP_ITEMS.isValid(dimension[DIMENSION_PROP_ITEMS.name]) &&\n dimension[DIMENSION_PROP_ITEMS.name].length\n );\n","import { DIMENSION, DIMENSION_PROPS } from './dimension';\nimport { dimensionIsEmpty } from './dimensionIsEmpty';\n\nexport const dimensionIsValid = (\n dimension: any,\n { requireItems }: any = {}\n) => {\n if (!DIMENSION.isValid(dimension)) {\n return false;\n }\n\n const requiredProps = DIMENSION_PROPS.filter((prop) => prop.required);\n\n if (!requiredProps.every((prop) => prop.isValid(dimension[prop.name]))) {\n return false;\n }\n\n if (requireItems === true && dimensionIsEmpty(dimension)) {\n return false;\n }\n\n return true;\n};\n","import { DIMENSION_PROP_ITEMS } from './dimension';\nimport { dimensionIsValid } from './dimensionIsValid';\n\nexport const dimensionGetItems = (dimension: any) =>\n dimensionIsValid(dimension, { requireItems: true })\n ? dimension[DIMENSION_PROP_ITEMS.name]\n : DIMENSION_PROP_ITEMS.defaultValue;\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './dimensionSelectorHelper';\nexport * from './predefinedDimensions';\nexport * from './list';\nexport * from './axis';\nexport * from './axisHasDimension';\nexport * from './dimension';\nexport * from './dimensionSelectorHelper';\nexport * from './layoutReplaceDimension';\nexport * from './layoutGetDimension';\nexport * from './layoutGetAllDimensions';\nexport * from './dimensionGetItems';\n","import { colors, spacers } from '@dhis2/ui';\n\nexport default `\n .filterContainer {\n display: flex;\n margin-bottom: ${spacers.dp12};\n margin-top: ${spacers.dp8};\n }\n .emptyList {\n text-align: center;\n font-size: 14px;\n line-height: 16px;\n margin: ${spacers.dp24} 0 0;\n color: ${colors.grey700};\n }\n .rightHeader {\n font-size: 14px;\n font-weight: 400;\n }\n .leftHeader {\n padding: ${spacers.dp12} ${spacers.dp4};\n }\n .info-container {\n display: flex;\n margin-bottom: ${spacers.dp8};\n padding: ${spacers.dp8};\n background-color: ${colors.grey200};\n border-radius: 3px;\n }\n .info-text {\n padding-left: ${spacers.dp8};\n color: ${colors.grey900};\n font-size: 12px;\n line-height: 16px;\n }\n .calculation-button {\n margin: ${spacers.dp8} 0;\n }\n`;\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './DimensionSelector.style';\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './utils';\nexport * from './styles';\nexport * from './components';\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport const DAILY = 'DAILY';\nexport const WEEKLY = 'WEEKLY';\nexport const WEEKLYWED = 'WEEKLYWED';\nexport const WEEKLYTHU = 'WEEKLYTHU';\nexport const WEEKLYSAT = 'WEEKLYSAT';\nexport const WEEKLYSUN = 'WEEKLYSUN';\nexport const WEEKS_THIS_YEAR = 'WEEKS_THIS_YEAR';\nexport const BIWEEKLY = 'BIWEEKLY';\nexport const MONTHLY = 'MONTHLY';\nexport const BIMONTHLY = 'BIMONTHLY';\nexport const QUARTERLY = 'QUARTERLY';\nexport const SIXMONTHLY = 'SIXMONTHLY';\nexport const SIXMONTHLYAPR = 'SIXMONTHLYAPR';\nexport const YEARLY = 'YEARLY';\nexport const FINANCIAL = 'FINANCIAL';\nexport const FYNOV = 'FYNOV';\nexport const FYOCT = 'FYOCT';\nexport const FYJUL = 'FYJUL';\nexport const FYAPR = 'FYAPR';\n","import i18n from '@dhis2/d2-i18n';\nimport {\n DAILY,\n WEEKLY,\n BIWEEKLY,\n WEEKS_THIS_YEAR,\n MONTHLY,\n BIMONTHLY,\n QUARTERLY,\n SIXMONTHLY,\n FINANCIAL,\n YEARLY,\n} from './periodTypes';\n\nconst getDaysPeriodType = () => [\n { id: 'TODAY', name: i18n.t('Today') },\n { id: 'YESTERDAY', name: i18n.t('Yesterday') },\n { id: 'LAST_3_DAYS', name: i18n.t('Last 3 days') },\n { id: 'LAST_7_DAYS', name: i18n.t('Last 7 days') },\n { id: 'LAST_14_DAYS', name: i18n.t('Last 14 days') },\n { id: 'LAST_30_DAYS', name: i18n.t('Last 30 days') },\n { id: 'LAST_60_DAYS', name: i18n.t('Last 60 days') },\n { id: 'LAST_90_DAYS', name: i18n.t('Last 90 days') },\n { id: 'LAST_180_DAYS', name: i18n.t('Last 180 days') },\n];\n\nconst getWeeksPeriodType = () => [\n { id: 'THIS_WEEK', name: i18n.t('This week') },\n { id: 'LAST_WEEK', name: i18n.t('Last week') },\n { id: 'LAST_4_WEEKS', name: i18n.t('Last 4 weeks') },\n { id: 'LAST_12_WEEKS', name: i18n.t('Last 12 weeks') },\n { id: 'LAST_52_WEEKS', name: i18n.t('Last 52 weeks') },\n { id: WEEKS_THIS_YEAR, name: i18n.t('Weeks this year') },\n];\n\nconst getBiWeeksPeriodType = () => [\n { id: 'THIS_BIWEEK', name: i18n.t('This bi-week') },\n { id: 'LAST_BIWEEK', name: i18n.t('Last bi-week') },\n { id: 'LAST_4_BIWEEKS', name: i18n.t('Last 4 bi-weeks') },\n];\n\nconst getMonthsPeriodType = () => [\n { id: 'THIS_MONTH', name: i18n.t('This month') },\n { id: 'LAST_MONTH', name: i18n.t('Last month') },\n { id: 'LAST_3_MONTHS', name: i18n.t('Last 3 months') },\n { id: 'LAST_6_MONTHS', name: i18n.t('Last 6 months') },\n { id: 'LAST_12_MONTHS', name: i18n.t('Last 12 months') },\n {\n id: 'MONTHS_THIS_YEAR',\n name: i18n.t('Months this year'),\n },\n];\n\nconst getBiMonthsPeriodType = () => [\n { id: 'THIS_BIMONTH', name: i18n.t('This bi-month') },\n { id: 'LAST_BIMONTH', name: i18n.t('Last bi-month') },\n {\n id: 'LAST_6_BIMONTHS',\n name: i18n.t('Last 6 bi-months'),\n },\n {\n id: 'BIMONTHS_THIS_YEAR',\n name: i18n.t('Bi-months this year'),\n },\n];\n\nconst getQuartersPeriodType = () => [\n { id: 'THIS_QUARTER', name: i18n.t('This quarter') },\n { id: 'LAST_QUARTER', name: i18n.t('Last quarter') },\n { id: 'LAST_4_QUARTERS', name: i18n.t('Last 4 quarters') },\n {\n id: 'QUARTERS_THIS_YEAR',\n name: i18n.t('Quarters this year'),\n },\n];\n\nconst getSixMonthsPeriodType = () => [\n { id: 'THIS_SIX_MONTH', name: i18n.t('This six-month') },\n { id: 'LAST_SIX_MONTH', name: i18n.t('Last six-month') },\n {\n id: 'LAST_2_SIXMONTHS',\n name: i18n.t('Last 2 six-month'),\n },\n];\n\nconst getFinancialYearsPeriodType = () => [\n {\n id: 'THIS_FINANCIAL_YEAR',\n name: i18n.t('This financial year'),\n },\n {\n id: 'LAST_FINANCIAL_YEAR',\n name: i18n.t('Last financial year'),\n },\n {\n id: 'LAST_5_FINANCIAL_YEARS',\n name: i18n.t('Last 5 financial years'),\n },\n];\n\nconst getYearsPeriodType = () => [\n { id: 'THIS_YEAR', name: i18n.t('This year') },\n { id: 'LAST_YEAR', name: i18n.t('Last year') },\n { id: 'LAST_5_YEARS', name: i18n.t('Last 5 years') },\n { id: 'LAST_10_YEARS', name: i18n.t('Last 10 years') },\n];\n\nconst getOptions = () => [\n {\n id: DAILY,\n getPeriods: () => getDaysPeriodType(),\n name: i18n.t('Days'),\n },\n {\n id: WEEKLY,\n getPeriods: () => getWeeksPeriodType(),\n name: i18n.t('Weeks'),\n },\n {\n id: BIWEEKLY,\n getPeriods: () => getBiWeeksPeriodType(),\n name: i18n.t('Bi-weeks'),\n },\n {\n id: MONTHLY,\n getPeriods: () => getMonthsPeriodType(),\n name: i18n.t('Months'),\n },\n {\n id: BIMONTHLY,\n getPeriods: () => getBiMonthsPeriodType(),\n name: i18n.t('Bi-months'),\n },\n {\n id: QUARTERLY,\n getPeriods: () => getQuartersPeriodType(),\n name: i18n.t('Quarters'),\n },\n {\n id: SIXMONTHLY,\n getPeriods: () => getSixMonthsPeriodType(),\n name: i18n.t('Six-months'),\n },\n {\n id: FINANCIAL,\n getPeriods: () => getFinancialYearsPeriodType(),\n name: i18n.t('Financial Years'),\n },\n {\n id: YEARLY,\n getPeriods: () => getYearsPeriodType(),\n name: i18n.t('Years'),\n },\n];\n\nexport const getRelativePeriodsOptionsById = (id: string) =>\n getOptions().find((option) => option.id === id);\n\nexport const getRelativePeriodsOptions = () => getOptions();\n\nexport const getRelativePeriodIds = () =>\n Object.values(getOptions())\n .map((option) => option.getPeriods().map((period) => period.id))\n .flat();\n","import {\n generateFixedPeriods,\n getNowInCalendar,\n} from '@dhis2/multi-calendar-dates';\nimport i18n from '@dhis2/d2-i18n';\nimport {\n DAILY,\n WEEKLY,\n WEEKLYWED,\n WEEKLYTHU,\n WEEKLYSAT,\n WEEKLYSUN,\n BIWEEKLY,\n MONTHLY,\n BIMONTHLY,\n QUARTERLY,\n SIXMONTHLY,\n SIXMONTHLYAPR,\n YEARLY,\n FYNOV,\n FYOCT,\n FYJUL,\n FYAPR,\n} from './periodTypes';\n\nconst PERIOD_TYPE_REGEX = {\n [DAILY]: /^([0-9]{4})([0-9]{2})([0-9]{2})$/, // YYYYMMDD\n [WEEKLY]: /^([0-9]{4})()W([0-9]{1,2})$/, // YYYY\"W\"[1-53]\n [BIWEEKLY]: /^([0-9]{4})BiW([0-9]{1,2})$/, // YYYY\"BiW\"[1-27]\n [WEEKLYWED]: /^([0-9]{4})(Wed)W([0-9]{1,2})$/, // YYYY\"WedW\"[1-53]\n [WEEKLYTHU]: /^([0-9]{4})(Thu)W([0-9]{1,2})$/, // YYYY\"ThuW\"[1-53]\n [WEEKLYSAT]: /^([0-9]{4})(Sat)W([0-9]{1,2})$/, // YYYY\"SatW\"[1-53]\n [WEEKLYSUN]: /^([0-9]{4})(Sun)W([0-9]{1,2})$/, // YYYY\"SunW\"[1-53]\n [MONTHLY]: /^([0-9]{4})([0-9]{2})$/, // YYYYMM\n [BIMONTHLY]: /^([0-9]{4})([0-9]{2})B$/, // YYYY0[1-6]\"B\"\n [QUARTERLY]: /^([0-9]{4})Q([1234])$/, // YYYY\"Q\"[1-4]\n [SIXMONTHLY]: /^([0-9]{4})S([12])$/, // YYYY\"S\"[1/2]\n [SIXMONTHLYAPR]: /^([0-9]{4})AprilS([12])$/, // YYYY\"AprilS\"[1/2]\n // [SIXMONTHLYNOV]: /^([0-9]{4})NovS([12])$/, // YYYY\"NovS\"[1/2] Not supported?\n [YEARLY]: /^([0-9]{4})$/, // YYYY\n [FYNOV]: /^([0-9]{4})Nov$/, // YYYY\"Nov\"\n [FYOCT]: /^([0-9]{4})Oct$/, // YYYY\"Oct\"\n [FYJUL]: /^([0-9]{4})July$/, // YYYY\"July\"\n [FYAPR]: /^([0-9]{4})April$/, // YYYY\"April\"\n};\n\nconst getPeriods = ({\n periodType,\n config,\n fnFilter,\n periodSettings = {},\n}: any) => {\n const offset = parseInt(config.offset, 10);\n const isFilter = config.filterFuturePeriods;\n const isReverse = periodType.match(/^FY|YEARLY/)\n ? true\n : config.reversePeriods;\n\n const { calendar = 'gregory', locale = 'en' } = periodSettings as any;\n const now = getNowInCalendar(calendar);\n const year = (now.eraYear || now.year) + offset;\n\n const params = {\n periodType,\n year,\n calendar,\n locale,\n startingDay: config.startDay,\n };\n\n let periods = generateFixedPeriods(params);\n\n periods = isFilter ? fnFilter(periods) : periods;\n periods = !isReverse ? periods : periods.reverse();\n\n return periods;\n};\n\nconst getDailyPeriodType = (fnFilter: any, periodSettings?: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'DAILY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getWeeklyPeriodType = (\n weekObj: any,\n fnFilter: any,\n periodSettings: any\n) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'WEEKLY',\n config: {\n ...config,\n startDay: weekObj.startDay,\n },\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getBiWeeklyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'BIWEEKLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getMonthlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'MONTHLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getBiMonthlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'BIMONTHLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getQuarterlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'QUARTERLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getSixMonthlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'SIXMONTHLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getSixMonthlyAprilPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'SIXMONTHLYAPR',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getYearlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'YEARLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getFinancialOctoberPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'FYOCT',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getFinancialNovemberPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'FYNOV',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getFinancialJulyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'FYJUL',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getFinancialAprilPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'FYAPR',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst filterFuturePeriods = (periods: any) => {\n const array = [];\n const now = new Date(Date.now());\n\n for (let i = 0; i < periods.length; i++) {\n if (new Date(periods[i].startDate) <= now) {\n array.push(periods[i]);\n }\n }\n\n return array;\n};\n\nconst getOptions = (periodSettings?: any) => {\n return [\n {\n id: DAILY,\n getPeriods: getDailyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Daily'),\n },\n {\n id: WEEKLY,\n getPeriods: getWeeklyPeriodType(\n { startDay: 1 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly'),\n },\n {\n id: WEEKLYWED,\n getPeriods: getWeeklyPeriodType(\n { startDay: 3 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly (Start Wednesday)'),\n },\n {\n id: WEEKLYTHU,\n getPeriods: getWeeklyPeriodType(\n { startDay: 4 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly (Start Thursday)'),\n },\n {\n id: WEEKLYSAT,\n getPeriods: getWeeklyPeriodType(\n { startDay: 6 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly (Start Saturday)'),\n },\n {\n id: WEEKLYSUN,\n getPeriods: getWeeklyPeriodType(\n { startDay: 7 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly (Start Sunday)'),\n },\n {\n id: BIWEEKLY,\n getPeriods: getBiWeeklyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Bi-weekly'),\n },\n {\n id: MONTHLY,\n getPeriods: getMonthlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Monthly'),\n },\n {\n id: BIMONTHLY,\n getPeriods: getBiMonthlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Bi-monthly'),\n },\n {\n id: QUARTERLY,\n getPeriods: getQuarterlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Quarterly'),\n },\n {\n id: SIXMONTHLY,\n getPeriods: getSixMonthlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Six-monthly'),\n },\n {\n id: SIXMONTHLYAPR,\n getPeriods: getSixMonthlyAprilPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Six-monthly April'),\n },\n {\n id: YEARLY,\n getPeriods: getYearlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Yearly'),\n },\n {\n id: FYNOV,\n getPeriods: getFinancialNovemberPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Financial year (Start November)'),\n },\n {\n id: FYOCT,\n getPeriods: getFinancialOctoberPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Financial year (Start October)'),\n },\n {\n id: FYJUL,\n getPeriods: getFinancialJulyPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Financial year (Start July)'),\n },\n {\n id: FYAPR,\n getPeriods: getFinancialAprilPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Financial year (Start April)'),\n },\n ];\n};\n\nexport const getFixedPeriodsOptionsById = (\n id: string,\n periodSettings?: any\n) => {\n return getOptions(periodSettings).find((option) => option.id === id);\n};\n\nexport const getFixedPeriodsOptions = () => getOptions();\n\nexport const getYearOffsetFromNow = (yearStr: any) =>\n parseInt(yearStr) - new Date(Date.now()).getFullYear();\n\nexport const parsePeriodCode = (code: any, allowedTypes: any) => {\n const periodTypes = Object.keys(PERIOD_TYPE_REGEX);\n let i = 0;\n let type = '';\n let match = undefined;\n\n while (i < periodTypes.length && !match) {\n type = periodTypes[i];\n match = code.match((PERIOD_TYPE_REGEX as any)[type]);\n i++;\n }\n\n if (\n !match ||\n (Array.isArray(allowedTypes) && !allowedTypes.some((t) => t === type))\n ) {\n return undefined;\n }\n\n const period = getFixedPeriodsOptionsById(type);\n const offset = getYearOffsetFromNow(match[1]);\n const options = period?.getPeriods({ offset });\n\n return period\n ? {\n id: period.id,\n name: period.name,\n year: match[1],\n options,\n }\n : null;\n};\n","export const filterPeriodTypesById = (\n allPeriodTypes = [],\n excludedPeriodTypes = []\n) =>\n allPeriodTypes.filter(\n (period: unknown) => !excludedPeriodTypes.includes((period as never)['id'])\n );\n\nexport * from './relativePeriods';\nexport * from './fixedPeriods';\nexport * from './periodTypes';\n","import i18n from '@dhis2/d2-i18n';\nimport {\n InputField,\n SingleSelectField,\n SingleSelectOption,\n spacers,\n} from '@dhis2/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { filterPeriodTypesById, getFixedPeriodsOptions } from './utils';\n\nconst FixedPeriodFilter = ({\n allowedPeriodTypes,\n excludedPeriodTypes,\n currentPeriodType,\n currentYear,\n onSelectPeriodType,\n onSelectYear,\n dataTest,\n}: any) => {\n const onlyAllowedTypeIsSelected =\n Array.isArray(allowedPeriodTypes) &&\n allowedPeriodTypes.length === 1 &&\n allowedPeriodTypes[0] === currentPeriodType;\n\n return (\n <>\n <div className=\"leftSection\">\n <SingleSelectField\n label={i18n.t('Period type')}\n onChange={({ selected }: any) => onSelectPeriodType(selected)}\n dense\n selected={currentPeriodType}\n disabled={onlyAllowedTypeIsSelected}\n className=\"filterElement\"\n dataTest={`${dataTest}-period-type`}\n >\n {(allowedPeriodTypes\n ? getFixedPeriodsOptions().filter((option: any) =>\n allowedPeriodTypes.some((type: any) => type === option.id)\n )\n : filterPeriodTypesById(\n getFixedPeriodsOptions() as any,\n excludedPeriodTypes\n )\n ).map((option) => (\n <SingleSelectOption\n key={option.id}\n value={option.id}\n label={option.name}\n dataTest={`${dataTest}-period-type-option-${option.id}`}\n />\n ))}\n </SingleSelectField>\n </div>\n <div className=\"rightSection\">\n <InputField\n label={i18n.t('Year')}\n className=\"filterElement\"\n type=\"number\"\n placeholder={i18n.t('Select year')}\n value={currentYear}\n onChange={({ value }: any) => onSelectYear(value)}\n dense\n dataTest={`${dataTest}-year`}\n ></InputField>\n </div>\n <style jsx>{`\n .leftSection {\n flex-grow: 1;\n }\n .leftSection > :global(.filterElement),\n .rightSection > :global(.filterElement) {\n margin: 0;\n }\n .rightSection {\n width: 120px;\n margin-left: ${spacers.dp8};\n }\n `}</style>\n </>\n );\n};\n\nFixedPeriodFilter.defaultProps = {\n excludedPeriodTypes: [],\n};\n\nFixedPeriodFilter.propTypes = {\n currentPeriodType: PropTypes.string.isRequired,\n currentYear: PropTypes.string.isRequired,\n onSelectPeriodType: PropTypes.func.isRequired,\n onSelectYear: PropTypes.func.isRequired,\n allowedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n dataTest: PropTypes.string,\n excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default FixedPeriodFilter;\n","import { SingleSelectField, SingleSelectOption } from '@dhis2/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport i18n from '@dhis2/d2-i18n';\nimport { filterPeriodTypesById, getRelativePeriodsOptions } from './utils';\nimport { spacers } from '@dhis2/ui';\n\nexport const RelativePeriodFilter = ({\n currentFilter,\n onSelectFilter,\n dataTest,\n excludedPeriodTypes,\n}: any) => (\n <div className=\"leftSection\">\n <SingleSelectField\n label={i18n.t('Period type')}\n onChange={({ selected }: any) => onSelectFilter(selected)}\n dense\n selected={currentFilter}\n className=\"filterElement\"\n dataTest={dataTest}\n >\n {filterPeriodTypesById(\n getRelativePeriodsOptions() as any,\n excludedPeriodTypes\n ).map((option: any) => (\n <SingleSelectOption\n key={option.id}\n value={option.id}\n label={option.name}\n dataTest={`${dataTest}-option-${option.id}`}\n />\n ))}\n </SingleSelectField>\n <style jsx>{`\n .leftSection {\n flex-grow: 1;\n }\n .leftSection > :global(.filterElement),\n .rightSection > :global(.filterElement) {\n margin: 0;\n }\n .rightSection {\n width: 120px;\n margin-left: ${spacers.dp8};\n }\n `}</style>\n </div>\n);\n\nRelativePeriodFilter.propTypes = {\n currentFilter: PropTypes.string.isRequired,\n onSelectFilter: PropTypes.func.isRequired,\n dataTest: PropTypes.string,\n excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n};\n","import React from 'react';\n\nexport default (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill=\"#6E7A8A\"\n d=\"M8,4 C10.209139,4 12,5.790861 12,8 C12,10.209139 10.209139,12 8,12 C5.790861,12 4,10.209139 4,8 C4,5.790861 5.790861,4 8,4 Z M8,5 C6.34314575,5 5,6.34314575 5,8 C5,9.65685425 6.34314575,11 8,11 C9.65685425,11 11,9.65685425 11,8 C11,6.34314575 9.65685425,5 8,5 Z M8.5,6 L8.5,7.5 L9.5,7.5 L9.5,8.5 L7.5,8.5 L7.5,6 L8.5,6 Z\"\n />\n </svg>\n);\n","import { getNowInCalendar } from '@dhis2/multi-calendar-dates';\nimport { TabBar, Tab, Transfer } from '@dhis2/ui';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react'; //TODO: Reimplement the icon.js\nimport i18n from '@dhis2/d2-i18n';\nimport {\n TRANSFER_HEIGHT,\n TRANSFER_OPTIONS_WIDTH,\n TRANSFER_SELECTED_WIDTH,\n TransferOption,\n} from '../../../shared';\nimport styles from '../../../shared/styles/DimensionSelector.style';\nimport FixedPeriodFilter from './FixedPeriodFilter';\nimport { RelativePeriodFilter } from './RelativePeriodFilter';\n\nimport {\n MONTHLY,\n QUARTERLY,\n getRelativePeriodsOptionsById,\n getFixedPeriodsOptionsById,\n} from './utils';\nimport PeriodIcon from '../../../shared/assets/DimensionItemIcons/PeriodIcon';\n\nconst PeriodTransfer = ({\n onSelect,\n dataTest,\n initialSelectedPeriods,\n rightFooter,\n excludedPeriodTypes,\n periodsSettings,\n}: any) => {\n const defaultRelativePeriodType = excludedPeriodTypes.includes(MONTHLY)\n ? getRelativePeriodsOptionsById(QUARTERLY)\n : getRelativePeriodsOptionsById(MONTHLY);\n const defaultFixedPeriodType = excludedPeriodTypes.includes(MONTHLY)\n ? getFixedPeriodsOptionsById(QUARTERLY, periodsSettings)\n : getFixedPeriodsOptionsById(MONTHLY, periodsSettings);\n\n const now = getNowInCalendar(periodsSettings.calendar);\n // use \".eraYear\" rather than \".year\" because in Ethiopian calendar, eraYear is what our users expect to see (for other calendars, it doesn't matter)\n // 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\n const defaultFixedPeriodYear = now.eraYear || now.year;\n\n const fixedPeriodConfig = (year: any) => ({\n offset: year - defaultFixedPeriodYear,\n filterFuturePeriods: false,\n reversePeriods: false,\n });\n\n const [allPeriods, setAllPeriods] = useState(\n defaultRelativePeriodType?.getPeriods() || []\n );\n const [selectedPeriods, setSelectedPeriods] = useState(\n initialSelectedPeriods\n );\n const [isRelative, setIsRelative] = useState(true);\n const [relativeFilter, setRelativeFilter] = useState({\n periodType: defaultRelativePeriodType?.id || '',\n });\n const [fixedFilter, setFixedFilter] = useState({\n periodType: defaultFixedPeriodType?.id || '',\n year: defaultFixedPeriodYear.toString(),\n });\n\n const onIsRelativeClick = (state: any) => {\n if (state !== isRelative) {\n setIsRelative(state);\n setAllPeriods(\n state\n ? getRelativePeriodsOptionsById(\n relativeFilter.periodType\n )?.getPeriods() || []\n : getFixedPeriodsOptionsById(\n fixedFilter.periodType,\n periodsSettings\n )?.getPeriods(fixedPeriodConfig(Number(fixedFilter.year))) || []\n );\n }\n };\n\n const renderLeftHeader = () => (\n <>\n <TabBar>\n <Tab\n selected={isRelative}\n onClick={() => onIsRelativeClick(true)}\n dataTest={`${dataTest}-relative-periods-button`}\n >\n {i18n.t('Relative periods')}\n </Tab>\n <Tab\n selected={!isRelative}\n onClick={() => onIsRelativeClick(false)}\n dataTest={`${dataTest}-fixed-periods-button`}\n >\n {i18n.t('Fixed periods')}\n </Tab>\n </TabBar>\n <div className=\"filterContainer\">\n {isRelative ? (\n <RelativePeriodFilter\n currentFilter={relativeFilter.periodType}\n onSelectFilter={(filter: any) => {\n setRelativeFilter({ periodType: filter });\n setAllPeriods(\n getRelativePeriodsOptionsById(filter)?.getPeriods() || []\n );\n }}\n dataTest={`${dataTest}-relative-period-filter`}\n excludedPeriodTypes={excludedPeriodTypes}\n />\n ) : (\n <FixedPeriodFilter\n currentPeriodType={fixedFilter.periodType}\n currentYear={fixedFilter.year}\n onSelectPeriodType={(periodType: string) => {\n onSelectFixedPeriods({\n periodType,\n year: fixedFilter.year,\n });\n }}\n onSelectYear={(year: any) => {\n onSelectFixedPeriods({\n periodType: fixedFilter.periodType,\n year,\n });\n }}\n dataTest={`${dataTest}-fixed-period-filter`}\n excludedPeriodTypes={excludedPeriodTypes}\n />\n )}\n </div>\n <style jsx>{styles}</style>\n </>\n );\n\n const renderRightHeader = () => (\n <>\n <p className=\"rightHeader\">{i18n.t('Selected Periods')}</p>\n <style jsx>{styles}</style>\n </>\n );\n\n const onSelectFixedPeriods = (filter: any) => {\n setFixedFilter(filter);\n setAllPeriods(\n (getFixedPeriodsOptionsById(\n filter.periodType,\n periodsSettings\n )?.getPeriods(fixedPeriodConfig(Number(filter.year))) || []) as any\n );\n };\n\n const renderEmptySelection = () => (\n <>\n <p className=\"emptyList\">{i18n.t('No periods selected')}</p>\n <style jsx>{styles}</style>\n </>\n );\n\n return (\n <Transfer\n onChange={({ selected }: any) => {\n const formattedItems = selected.map((id: string) => ({\n id,\n name: [...allPeriods, ...selectedPeriods].find(\n (item) => item.id === id\n ).name,\n }));\n setSelectedPeriods(formattedItems);\n onSelect(formattedItems);\n }}\n selected={selectedPeriods.map((period: any) => period.id)}\n leftHeader={renderLeftHeader()}\n enableOrderChange\n height={TRANSFER_HEIGHT}\n optionsWidth={TRANSFER_OPTIONS_WIDTH}\n selectedWidth={TRANSFER_SELECTED_WIDTH}\n selectedEmptyComponent={renderEmptySelection()}\n rightHeader={renderRightHeader()}\n rightFooter={rightFooter}\n options={[...allPeriods, ...selectedPeriods].map(({ id, name }) => ({\n label: name,\n value: id,\n }))}\n renderOption={(props: any) => (\n <TransferOption\n {...props}\n icon={PeriodIcon}\n dataTest={`${dataTest}-transfer-option`}\n />\n )}\n dataTest={`${dataTest}-transfer`}\n ></Transfer>\n );\n};\n\nPeriodTransfer.defaultProps = {\n initialSelectedPeriods: [],\n excludedPeriodTypes: [],\n periodsSettings: {\n calendar: 'gregory',\n locale: 'en',\n },\n};\n\nPeriodTransfer.propTypes = {\n onSelect: PropTypes.func.isRequired,\n dataTest: PropTypes.string,\n excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n initialSelectedPeriods: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n })\n ),\n periodsSettings: PropTypes.shape({\n calendar: PropTypes.string,\n locale: PropTypes.string,\n }),\n rightFooter: PropTypes.node,\n};\n\nexport default PeriodTransfer;\n","import { useDataQuery } from '@dhis2/app-runtime';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { DIMENSION_ID_PERIOD } from '../../../shared/utils/predefinedDimensions';\nimport PeriodTransfer from './PeriodTransfer';\n\nconst userSettingsQuery = {\n userSettings: {\n resource: 'userSettings',\n params: {\n key: ['keyUiLocale'],\n },\n },\n};\n\nexport const PeriodDimension = ({\n onSelect,\n selectedPeriods,\n rightFooter,\n excludedPeriodTypes,\n systemInfo,\n}: any) => {\n const result = useDataQuery(userSettingsQuery);\n\n const { calendar = 'gregory' } = systemInfo as any;\n // const { data: { userSettings: { keyUiLocale: locale } = {} } = {} } =\n // result as any;\n\n const locale =\n result.data && result.data['userSettings']\n ? (result.data['userSettings'] as any)['keyUiLocale']\n : '';\n\n const periodsSettings = { calendar, locale };\n\n const selectPeriods = (periods: any[]) => {\n onSelect({\n dimensionId: DIMENSION_ID_PERIOD,\n items: periods,\n });\n };\n return (\n <PeriodTransfer\n onSelect={selectPeriods}\n initialSelectedPeriods={selectedPeriods}\n rightFooter={rightFooter}\n dataTest={'period-dimension'}\n excludedPeriodTypes={excludedPeriodTypes}\n periodsSettings={periodsSettings}\n />\n );\n};\n\nPeriodDimension.propTypes = {\n onSelect: PropTypes.func.isRequired,\n excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n rightFooter: PropTypes.node,\n selectedPeriods: PropTypes.array,\n systemInfo: PropTypes.object,\n};\n\nPeriodDimension.defaultProps = {\n selectedPeriods: [],\n};\n","import {\n Component,\n Input,\n ElementRef,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { DataProvider } from '@dhis2/app-runtime';\nimport { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';\nimport React from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport { firstValueFrom } from 'rxjs';\nimport { PeriodDimension } from './components/PeriodDimension';\nimport {\n BIMONTHLY,\n BIWEEKLY,\n DAILY,\n MONTHLY,\n WEEKLY,\n WEEKLYSAT,\n WEEKLYSUN,\n WEEKLYTHU,\n WEEKLYWED,\n} from './components/utils';\nimport { ReactWrapperComponent } from '../react-wrapper/react-wrapper.component';\n\ntype PeriodSelectionEvent = {\n dimensionId: string;\n items: Record<string, unknown>[];\n};\n\n@Component({\n selector: 'ng-dhis2-ui-period-selector',\n template: `<ng-container></ng-container>`,\n styles: [\n `\n ::ng-deep .content-container {\n z-index: 0 !important;\n }\n `,\n ],\n})\nexport class PeriodSelectorComponent extends ReactWrapperComponent {\n @Input() selectedPeriods: any[] = [];\n\n @Output() selectPeriods = new EventEmitter();\n\n override props: Record<string, unknown> = {\n onSelect: (e: any) => {\n this.onSelectItems(e);\n },\n };\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private httpClient: NgxDhis2HttpClientService\n ) {\n super(elementRef);\n }\n\n override async ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n const systemInfo = await firstValueFrom(this.httpClient.systemInfo());\n const excludedPeriodTypes = this.getExcludedPeriodTypes(systemInfo);\n\n this.component = () => (\n <DataProvider>\n {\n <PeriodDimension\n selectedPeriods={this.selectedPeriods}\n onSelect={(selectionEvent: PeriodSelectionEvent) =>\n this.onSelectItems(selectionEvent)\n }\n excludedPeriodTypes={excludedPeriodTypes}\n systemInfo={systemInfo}\n />\n }\n </DataProvider>\n );\n this.render();\n }\n\n onSelectItems(selectionEvent: PeriodSelectionEvent) {\n this.selectPeriods.emit(selectionEvent.items);\n }\n\n getExcludedPeriodTypes = (systemSettings: any = {}) => {\n const types = [];\n if (systemSettings['hideDailyPeriods']) {\n types.push(DAILY);\n }\n if (systemSettings['hideWeeklyPeriods']) {\n types.push(WEEKLY, WEEKLYWED, WEEKLYTHU, WEEKLYSAT, WEEKLYSUN);\n }\n if (systemSettings['hideBiWeeklyPeriods']) {\n types.push(BIWEEKLY);\n }\n if (systemSettings['hideMonthlyPeriods']) {\n types.push(MONTHLY);\n }\n if (systemSettings['hideBiMonthlyPeriods']) {\n types.push(BIMONTHLY);\n }\n return types;\n };\n}\n","import { NgModule } from '@angular/core';\nimport { SharedDhis2UiModule } from '../../shared/shared.module';\nimport { PeriodSelectorComponent } from './period-selector.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule, SharedDhis2UiModule],\n declarations: [PeriodSelectorComponent],\n exports: [PeriodSelectorComponent],\n})\nexport class PeriodSelectorModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './period-selector.module';\nexport * from './period-selector.component';\n","const LEVEL_ID_PREFIX = 'LEVEL';\nconst GROUP_ID_PREFIX = 'OU_GROUP';\nexport const USER_ORG_UNIT = 'USER_ORGUNIT';\nexport const USER_ORG_UNIT_CHILDREN = 'USER_ORGUNIT_CHILDREN';\nexport const USER_ORG_UNIT_GRANDCHILDREN = 'USER_ORGUNIT_GRANDCHILDREN';\n\nconst hasGroupPrefix = (id: string) =>\n id.substr(0, GROUP_ID_PREFIX.length) === GROUP_ID_PREFIX;\n\nconst hasLevelPrefix = (id: string) =>\n id.substr(0, LEVEL_ID_PREFIX.length) === LEVEL_ID_PREFIX;\n\nconst stripLevelPrefix = (id: string) =>\n hasLevelPrefix(id) ? id.substr(LEVEL_ID_PREFIX.length + 1) : id;\n\nconst stripGroupPrefix = (id: string) =>\n hasGroupPrefix(id) ? id.substr(GROUP_ID_PREFIX.length + 1) : id;\n\nconst removePrefix = (id: string) => stripGroupPrefix(stripLevelPrefix(id));\n\nexport const ouIdHelper = Object.freeze({\n addLevelPrefix: (id: string) => `${LEVEL_ID_PREFIX}-${removePrefix(id)}`,\n addGroupPrefix: (id: string) => `${GROUP_ID_PREFIX}-${removePrefix(id)}`,\n removePrefix,\n hasGroupPrefix,\n hasLevelPrefix,\n});\n","import {\n DIMENSION_ID_ORGUNIT,\n dimensionGetItems,\n layoutGetDimension,\n layoutReplaceDimension,\n} from '../../../../../shared';\n\nimport { ouIdHelper } from '../ouIdHelper';\n\nconst isOuLevelIntId = (id: string) =>\n ouIdHelper.hasLevelPrefix(id)\n ? Number.isInteger(parseInt(ouIdHelper.removePrefix(id), 10))\n : false;\n\nconst replaceNumericOuLevelWithUid = (ouLevels: any) => (item: any) => {\n if (!isOuLevelIntId(item.id)) {\n return item;\n }\n\n const ouIntId = parseInt(ouIdHelper.removePrefix(item.id), 10);\n const ouUid = ouLevels.find(\n (l: any) => parseInt(l.level, 10) === ouIntId\n )?.id;\n\n return ouUid\n ? Object.assign({}, item, { id: ouIdHelper.addLevelPrefix(ouUid) })\n : item;\n};\n\nexport const convertOuLevelsToUids = (ouLevels: any, layout: any) => {\n const ouDimension = layoutGetDimension(layout, DIMENSION_ID_ORGUNIT);\n\n const hasNumericOuLevels =\n ouDimension &&\n dimensionGetItems(ouDimension).some((item: any) => isOuLevelIntId(item.id));\n\n if (hasNumericOuLevels) {\n const replaceNumericOuLevel = replaceNumericOuLevelWithUid(ouLevels);\n\n const updatedOuItems = dimensionGetItems(ouDimension).map(\n replaceNumericOuLevel\n );\n\n return layoutReplaceDimension(layout, DIMENSION_ID_ORGUNIT, updatedOuItems);\n }\n\n return layout;\n};\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './ouIdHelper';\nexport * from './ouLevelUtils';\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nexport * from './OrgUnitDimension';\nexport * from './utils';\n","import { colors, spacers } from '@dhis2/ui';\n\nexport const styles = `\n .container {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n\n .orgUnitTreeWrapper {\n height: 382px;\n flex-grow: 1;\n overflow: auto;\n }\n\n .orgUnitTreeWrapper > :global(*) {\n flex-grow: 1;\n }\n\n .disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .disabled > :global(*) {\n pointer-events: none;\n }\n\n .userOrgUnitsWrapper {\n display: flex;\n background: ${colors.grey200};\n padding: ${spacers.dp8} ${spacers.dp8} ${spacers.dp8} ${spacers.dp24};\n margin-bottom: ${spacers.dp12};\n }\n\n .userOrgUnitsWrapper > :global(*) {\n margin-right: ${spacers.dp48};\n }\n\n .selectsWrapper {\n display: flex;\n align-items: flex-start;\n gap: ${spacers.dp8};\n margin-top: ${spacers.dp12};\n }\n\n .selectsWrapper.hidden {\n display: none;\n }\n\n .selectsWrapper > :global(*) {\n width: 50%;\n }\n\n .summaryWrapper {\n display: inline-flex;\n align-items: center;\n margin-top: ${spacers.dp8};\n }\n\n .warningWrapper {\n display: inline-flex;\n align-items: center;\n }\n\n .warningText {\n margin-left: ${spacers.dp8};\n font-size: 14px;\n line-height: 18px;\n color: ${colors.red600};\n }\n\n .summaryText {\n font-size: 14px;\n line-height: 18px;\n color: ${colors.grey700};\n }\n\n .deselectButton {\n display: inline-block;\n margin-left: ${spacers.dp8};\n }\n`;\n","import { useDataEngine } from '@dhis2/app-runtime';\nimport i18n from '@dhis2/d2-i18n';\nimport {\n Button,\n Checkbox,\n colors,\n IconWarningFilled16,\n MultiSelect,\n MultiSelectOption,\n OrganisationUnitTree,\n} from '@dhis2/ui';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { DIMENSION_ID_ORGUNIT, formatList } from '../../../shared';\nimport {\n ouIdHelper,\n USER_ORG_UNIT,\n USER_ORG_UNIT_CHILDREN,\n USER_ORG_UNIT_GRANDCHILDREN,\n} from '../components';\nimport { styles } from './styles/OrgUnitDimension.style';\n\nconst DYNAMIC_ORG_UNITS = [\n USER_ORG_UNIT,\n USER_ORG_UNIT_CHILDREN,\n USER_ORG_UNIT_GRANDCHILDREN,\n];\n\nconst OrgUnitDimension = ({\n roots,\n selected,\n onSelect,\n hideGroupSelect,\n hideLevelSelect,\n hideUserOrgUnits,\n warning,\n orgUnitGroupPromise,\n orgUnitLevelPromise,\n}: any) => {\n const [ouLevels, setOuLevels] = useState([]);\n const [ouGroups, setOuGroups] = useState([]);\n const [selectedItems, setSelectedItems] = useState(selected);\n const dataEngine = useDataEngine();\n\n const onSelectItems = (selectedItem: any) => {\n const { id, checked, displayName, path } = selectedItem;\n let result = [...selectedItems];\n\n if (checked && DYNAMIC_ORG_UNITS.includes(id)) {\n result = [\n ...result.filter((item) => DYNAMIC_ORG_UNITS.includes(item.id)),\n { id, displayName },\n ];\n } else if (checked) {\n result.push({ id, path, name: displayName });\n } else {\n result = [...result.filter((item) => item.id !== id)];\n }\n\n setSelectedItems(result as any);\n\n onSelect({\n dimensionId: DIMENSION_ID_ORGUNIT,\n items: result,\n });\n };\n\n const clearSelection = () => {\n setSelectedItems([]);\n onSelect({\n dimensionId: DIMENSION_ID_ORGUNIT,\n items: [],\n });\n };\n\n useEffect(() => {\n const doFetchOuLevels = async () => {\n const result = await orgUnitLevelPromise;\n result.sort((a: any, b: any) => (a.level > b.level ? 1 : -1));\n setOuLevels(result);\n };\n const doFetchOuGroups = async () => {\n const result = await orgUnitGroupPromise;\n setOuGroups(result);\n };\n\n !hideLevelSelect && doFetchOuLevels();\n !hideGroupSelect && doFetchOuGroups();\n }, [dataEngine, hideLevelSelect, hideGroupSelect]);\n\n const onLevelChange = (ids: string[]) => {\n const items = ids.map((id: string) => ({\n id: ouIdHelper.addLevelPrefix(id),\n name: (ouLevels?.find((level: any) => level.id === id) as any)\n ?.displayName,\n }));\n\n setSelectedItems([\n ...selectedItems.filter((ou: any) => !ouIdHelper.hasLevelPrefix(ou.id)),\n ...items,\n ]);\n\n onSelect({\n dimensionId: DIMENSION_ID_ORGUNIT,\n items: selectedItems,\n });\n };\n\n const onGroupChange = (ids: string[]) => {\n const items = ids.map((id: string) => ({\n id: ouIdHelper.addGroupPrefix(id),\n name: ((ouGroups?.find((group: any) => group.id === id) || {}) as any)\n .displayName,\n }));\n\n setSelectedItems([\n ...selectedItems.filter((ou: any) => !ouIdHelper.hasGroupPrefix(ou.id)),\n ...items,\n ]);\n\n onSelect({\n dimensionId: DIMENSION_ID_ORGUNIT,\n items: selectedItems,\n });\n };\n\n const getSummary = () => {\n let summary;\n if (selectedItems.length) {\n const numberOfOrgUnits = selectedItems.filter(\n (item: any) =>\n !DYNAMIC_ORG_UNITS.includes(item.id) &&\n !ouIdHelper.hasLevelPrefix(item.id) &&\n !ouIdHelper.hasGroupPrefix(item.id)\n ).length;\n\n const numberOfLevels = selectedItems.filter((item: any) =>\n ouIdHelper.hasLevelPrefix(item.id)\n ).length;\n const numberOfGroups = selectedItems.filter((item: any) =>\n ouIdHelper.hasGroupPrefix(item.id)\n ).length;\n const userOrgUnits = selectedItems.filter((item: any) =>\n DYNAMIC_ORG_UNITS.includes(item.id)\n );\n\n const parts = [];\n\n if (numberOfOrgUnits) {\n parts.push(\n i18n.t('{{count}} org units', {\n count: numberOfOrgUnits,\n defaultValue: '{{count}} org unit',\n defaultValue_plural: '{{count}} org units',\n })\n );\n }\n if (numberOfLevels) {\n parts.push(\n i18n.t('{{count}} levels', {\n count: numberOfLevels,\n defaultValue: '{{count}} level',\n defaultValue_plural: '{{count}} levels',\n })\n );\n }\n if (numberOfGroups) {\n parts.push(\n i18n.t('{{count}} groups', {\n count: numberOfGroups,\n defaultValue: '{{count}} group',\n defaultValue_plural: '{{count}} groups',\n })\n );\n }\n userOrgUnits.forEach((orgUnit: any) => {\n parts.push(orgUnit.name || orgUnit.displayName);\n });\n summary = i18n.t('Selected: {{commaSeparatedListOfOrganisationUnits}}', {\n keySeparator: '>',\n nsSeparator: '|',\n commaSeparatedListOfOrganisationUnits: formatList(parts),\n });\n } else {\n summary = i18n.t('Nothing selected');\n }\n\n return summary;\n };\n\n return (\n <div className=\"container\">\n {!hideUserOrgUnits && (\n <div className=\"userOrgUnitsWrapper\">\n <Checkbox\n label={i18n.t('User organisation unit')}\n checked={selectedItems.some(\n (item: any) => item.id === USER_ORG_UNIT\n )}\n onChange={({ checked }: any) =>\n onSelectItems({\n id: USER_ORG_UNIT,\n checked,\n displayName: i18n.t('User organisation unit'),\n })\n }\n dense\n />\n <Checkbox\n label={i18n.t('User sub-units')}\n checked={selectedItems.some(\n (item: any) => item.id === USER_ORG_UNIT_CHILDREN\n )}\n onChange={({ checked }: any) =>\n onSelectItems({\n id: USER_ORG_UNIT_CHILDREN,\n checked,\n displayName: i18n.t('User sub-units'),\n })\n }\n dense\n />\n <Checkbox\n label={i18n.t('User sub-x2-units')}\n checked={selectedItems.some(\n (item: any) => item.id === USER_ORG_UNIT_GRANDCHILDREN\n )}\n onChange={({ checked }: any) =>\n onSelectItems({\n id: USER_ORG_UNIT_GRANDCHILDREN,\n checked,\n displayName: i18n.t('User sub-x2-units'),\n })\n }\n dense\n />\n </div>\n )}\n <div\n className={cx('orgUnitTreeWrapper', {\n disabled: selectedItems.some((item: any) =>\n DYNAMIC_ORG_UNITS.includes(item.id)\n ),\n })}\n >\n <OrganisationUnitTree\n roots={roots}\n initiallyExpanded={[\n ...(roots.length === 1 ? [`/${roots[0]}`] : []),\n ...selectedItems\n .filter(\n (item: any) =>\n !DYNAMIC_ORG_UNITS.includes(item.id) &&\n !ouIdHelper.hasLevelPrefix(item.id) &&\n !ouIdHelper.hasGroupPrefix(item.id)\n )\n .map((item: any) =>\n item.path.substring(0, item.path.lastIndexOf('/'))\n )\n .filter((path: any) => path),\n ]}\n selected={selectedItems\n .filter(\n (item: any) =>\n !DYNAMIC_ORG_UNITS.includes(item.id) &&\n !ouIdHelper.hasLevelPrefix(item.id) &&\n !ouIdHelper.hasGroupPrefix(item.id)\n )\n .map((item: any) => item.path)}\n onChange={onSelectItems}\n dataTest={'org-unit-tree'}\n />\n </div>\n <div\n className={cx('selectsWrapper', {\n disabled: selectedItems.some((item: any) =>\n DYNAMIC_ORG_UNITS.includes(item.id)\n ),\n hidden: hideLevelSelect && hideGroupSelect,\n })}\n >\n {!hideLevelSelect && (\n <MultiSelect\n selected={\n ouLevels.length\n ? selectedItems\n .filter((item: any) => ouIdHelper.hasLevelPrefix(item.id))\n .map((item: any) => ouIdHelper.removePrefix(item.id))\n : []\n }\n onChange={({ selected }: any) => onLevelChange(selected)}\n placeholder={i18n.t('Select a level')}\n loading={!ouLevels.length}\n dense\n dataTest={'org-unit-level-select'}\n >\n {ouLevels.map((level: any) => (\n <MultiSelectOption\n key={level.id}\n value={level.id}\n label={level.displayName}\n dataTest={`org-unit-level-select-option-${level.id}`}\n />\n ))}\n </MultiSelect>\n )}\n {!hideGroupSelect && (\n <MultiSelect\n selected={\n ouGroups.length\n ? selectedItems\n .filter((item: any) => ouIdHelper.hasGroupPrefix(item.id))\n .map((item: any) => ouIdHelper.removePrefix(item.id))\n : []\n }\n onChange={({ selected }: any) => onGroupChange(selected)}\n placeholder={i18n.t('Select a group')}\n loading={!ouGroups.length}\n dense\n dataTest={'org-unit-group-select'}\n >\n {ouGroups.map((group: any) => (\n <MultiSelectOption\n key={group.id}\n value={group.id}\n label={group.displayName}\n dataTest={`org-unit-group-select-option-${group.id}`}\n />\n ))}\n </MultiSelect>\n )}\n </div>\n <div className=\"summaryWrapper\">\n {warning ? (\n <div className=\"warningWrapper\">\n <IconWarningFilled16 color={colors.red500} />\n <span className=\"warningText\">{warning}</span>\n </div>\n ) : (\n <span className=\"summaryText\">{getSummary()}</span>\n )}\n <div className=\"deselectButton\">\n <Button\n secondary\n small\n onClick={clearSelection}\n disabled={!selectedItems.length}\n >\n {i18n.t('Deselect all')}\n </Button>\n </div>\n </div>\n <style jsx>{styles}</style>\n </div>\n );\n};\n\nOrgUnitDimension.defaultProps = {\n hideGroupSelect: false,\n hideLevelSelect: false,\n hideUserOrgUnits: false,\n};\n\nOrgUnitDimension.propTypes = {\n hideGroupSelect: PropTypes.bool,\n hideLevelSelect: PropTypes.bool,\n hideUserOrgUnits: PropTypes.bool,\n roots: PropTypes.arrayOf(PropTypes.string),\n selected: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n path: PropTypes.string,\n })\n ),\n warning: PropTypes.string,\n onSelect: PropTypes.func,\n orgUnitGroupPromise: PropTypes.any,\n orgUnitLevelPromise: PropTypes.any,\n};\n\nexport default OrgUnitDimension;\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nexport type OrganisationUnitSelectionUsageType = 'DATA_ENTRY' | 'DATA_VIEW';\nexport class OrganisationUnitSelectionConfig {\n hideGroupSelect!: boolean;\n hideLevelSelect!: boolean;\n hideUserOrgUnits!: boolean;\n usageType!: OrganisationUnitSelectionUsageType;\n minLevel?: number;\n allowSingleSelection?: boolean;\n batchSize?: number;\n additionalQueryFields?: string[];\n\n constructor(params?: Partial<OrganisationUnitSelectionConfig>) {\n this.hideGroupSelect = params?.hideGroupSelect || false;\n this.hideLevelSelect = params?.hideLevelSelect || false;\n this.hideUserOrgUnits = params?.hideUserOrgUnits || false;\n this.usageType = params?.usageType || 'DATA_ENTRY';\n this.minLevel = params?.minLevel;\n this.allowSingleSelection = params?.allowSingleSelection || false;\n this.batchSize = params?.batchSize;\n this.additionalQueryFields = params?.additionalQueryFields;\n }\n}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './organisation-unit-config.model';\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { NgxDhis2HttpClientService, User } from '@iapps/ngx-dhis2-http-client';\nimport React from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport { firstValueFrom, map } from 'rxjs';\nimport { DataProvider } from '@dhis2/app-runtime';\nimport OrgUnitDimension from './components/OrgUnitDimension';\nimport {\n OrganisationUnitSelectionConfig,\n OrganisationUnitSelectionUsageType,\n} from './models';\nimport { ReactWrapperComponent } from '../react-wrapper';\n\ntype OrganisationUnitSelectionEvent = {\n dimensionId: string;\n items: Record<string, unknown>[];\n};\n\n@Component({\n selector: 'ng-dhis2-ui-org-unit-selector',\n template: '<ng-container><ng-container>',\n})\nexport class OrganisationUnitSelectorComponent extends ReactWrapperComponent {\n @Input() selectedOrgUnits: any[] = [];\n @Input() orgUnitSelectionConfig: OrganisationUnitSelectionConfig =\n new OrganisationUnitSelectionConfig();\n\n @Output() selectOrgUnits = new EventEmitter();\n\n override props: Record<string, unknown> = {\n onSelect: (e: any) => {\n this.onSelectItems(e);\n },\n };\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private httpClient: NgxDhis2HttpClientService\n ) {\n super(elementRef);\n }\n\n override async ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n const rootOrgUnits = await this.getRootOrgUnits();\n\n this.component = () => (\n <DataProvider>\n {\n <OrgUnitDimension\n selected={this.selectedOrgUnits}\n hideGroupSelect={this.orgUnitSelectionConfig.hideGroupSelect}\n hideLevelSelect={this.orgUnitSelectionConfig.hideLevelSelect}\n hideUserOrgUnits={this.orgUnitSelectionConfig.hideUserOrgUnits}\n onSelect={(selectionEvent: OrganisationUnitSelectionEvent) =>\n this.onSelectItems(selectionEvent)\n }\n orgUnitGroupPromise={this.getOrgUnitGroups()}\n orgUnitLevelPromise={this.getOrgUnitLevels()}\n roots={rootOrgUnits}\n />\n }\n </DataProvider>\n );\n\n this.render();\n }\n\n getOrgUnitAttributeByUsage(usageType: OrganisationUnitSelectionUsageType) {\n switch (usageType) {\n case 'DATA_ENTRY':\n return 'organisationUnits';\n\n case 'DATA_VIEW':\n return 'dataViewOrganisationUnits';\n\n default:\n return 'organisationUnits';\n }\n }\n\n getRootOrgUnits(): Promise<string[]> {\n const orgUnitAttribute = this.getOrgUnitAttributeByUsage(\n this.orgUnitSelectionConfig.usageType\n );\n return firstValueFrom(\n this.httpClient\n .me()\n .pipe(\n map((user: User) =>\n (user ? user[orgUnitAttribute] : []).map((orgUnit) => orgUnit.id)\n )\n )\n );\n }\n\n getOrgUnitGroups(): Promise<any> {\n return firstValueFrom(\n this.httpClient\n .get(\n 'organisationUnitGroups.json?fields=id,displayName,name&paging=false'\n )\n .pipe(\n map((res: Record<string, unknown>) => res?.['organisationUnitGroups'])\n )\n );\n }\n\n getOrgUnitLevels(): Promise<any> {\n return firstValueFrom(\n this.httpClient\n .get(\n 'organisationUnitLevels.json?fields=id,level,displayName,name&paging=false'\n )\n .pipe(\n map((res: Record<string, unknown>) => res?.['organisationUnitLevels'])\n )\n );\n }\n\n onSelectItems(selectionEvent: OrganisationUnitSelectionEvent) {\n this.selectOrgUnits.emit(selectionEvent.items);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedDhis2UiModule } from '../../shared/shared.module';\nimport { OrganisationUnitSelectorComponent } from './organisation-unit-selector.component';\n\n@NgModule({\n imports: [CommonModule, SharedDhis2UiModule],\n declarations: [OrganisationUnitSelectorComponent],\n exports: [OrganisationUnitSelectorComponent],\n})\nexport class OrganisationUnitSelectorModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './organisation-unit-selector.module';\nexport * from './organisation-unit-selector.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["React","colors","theme","spacers","Button","getOptions","InputField","styles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"iapps-ng-dhis2-ui.mjs","sources":["../../../../packages/ng-dhis2-ui/src/lib/shared/components/TransferOption.tsx","../../../../packages/ng-dhis2-ui/src/lib/shared/components/index.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/shared.module.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/models/header-bar-app.model.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/models/header-bar-notification.model.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/models/header-bar-data.model.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/models/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/join-path.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/apps.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/logo-image.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/logo.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/notification-icon.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/notifications.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/debug-info/use-debug-info.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/debug-info/debug-info-table.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/debug-info/debug-info-modal.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/profile-menu/profile-header.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/header-bar-context.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/profile-menu/update-notification.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/profile-menu/profile-menu.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/profile/use-on-doc-click.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/profile.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/title.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/utils/header-bar.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/react-wrapper/react-wrapper.component.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/react-wrapper/react-wrapper.module.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/react-wrapper/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/header-bar.component.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/header-bar.module.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/header-bar/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/button/button.component.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/button/button.module.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/button/index.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/assets/AssignedCategoriesIcon.tsx","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/predefinedDimensions.tsx","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/dimensionSelectorHelper.tsx","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/list.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/axis.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/dimension.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/dimensionIs.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/axisGetDimension.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/axisHasDimension.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/layoutReplaceDimension.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/layoutGetAllAxes.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/layoutGetAllDimensions.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/layoutGetDimension.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/dimensionIsEmpty.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/dimensionIsValid.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/dimensionGetItems.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/utils/index.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/styles/DimensionSelector.style.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/styles/index.ts","../../../../packages/ng-dhis2-ui/src/lib/shared/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/components/utils/periodTypes.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/components/utils/relativePeriods.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/components/utils/fixedPeriods.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/components/utils/index.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/components/FixedPeriodFilter.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/components/RelativePeriodFilter.tsx","../../../../packages/ng-dhis2-ui/src/lib/shared/assets/DimensionItemIcons/PeriodIcon.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/components/PeriodTransfer.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/components/PeriodDimension.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/containers/period-selector-modal/period-selector-modal.component.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/containers/period-selector/period-selector.component.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/period-selector.module.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/period-selector/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/utils/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/components/OrgUnitDimension.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/models/index.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/containers/organisation-unit-selector/organisation-unit-selector.component.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/containers/organisation-unit-selector-modal/organisation-unit-selector-modal.component-modal.tsx","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/organisation-unit-selector.module.ts","../../../../packages/ng-dhis2-ui/src/lib/modules/organisation-unit-selector/index.ts","../../../../packages/ng-dhis2-ui/src/iapps-ng-dhis2-ui.ts"],"sourcesContent":["import { IconEdit16, Tooltip, colors, spacers, theme } from '@dhis2/ui';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nexport const TransferOption = ({\n disabled,\n label,\n highlighted,\n selected,\n onClick,\n onDoubleClick,\n value,\n icon,\n active,\n tooltipText,\n dataTest,\n onEditClick,\n}: any) => {\n const renderContent = () => (\n <div\n className={cx('chip', {\n highlighted,\n disabled,\n selected,\n inactive: active !== undefined && !active,\n })}\n data-test={`${dataTest}-content`}\n onClick={(event) => {\n if (disabled) {\n return;\n }\n onClick({ label, value }, event);\n }}\n onDoubleClick={(event) => {\n if (disabled) {\n return;\n }\n onDoubleClick({ label, value }, event);\n }}\n >\n <span className=\"icon\">{icon}</span>\n <span className=\"label\">{label}</span>\n {onEditClick && (\n <span\n className=\"edit\"\n onClick={(e) => {\n e.stopPropagation();\n onEditClick();\n }}\n data-test={`${dataTest}-edit-button`}\n >\n <IconEdit16 />\n </span>\n )}\n\n <style jsx>{`\n .wrapper:last-child {\n margin-bottom: ${spacers.dp4};\n }\n .chip {\n display: inline-flex;\n background: ${colors.grey200};\n font-size: 14px;\n line-height: 16px;\n padding: 2px ${spacers.dp8} 2px ${spacers.dp4};\n margin: ${spacers.dp4} ${spacers.dp8} 0 ${spacers.dp8};\n border-radius: 3px;\n user-select: none;\n }\n\n .chip:hover {\n background: ${colors.grey300};\n }\n\n .selected {\n background: ${theme.secondary100};\n color: ${theme.secondary900};\n }\n\n .selected :global(.icon path) {\n fill: ${theme.secondary700};\n }\n\n .selected:hover {\n background: #c9edeb;\n }\n\n .highlighted,\n .highlighted:hover {\n background: ${theme.secondary800};\n color: ${colors.white};\n }\n\n .highlighted :global(.icon path) {\n fill: ${colors.white};\n }\n\n .disabled {\n opacity: 0.3;\n cursor: not-allowed;\n }\n\n .inactive {\n opacity: 0.3;\n }\n\n .icon,\n .label {\n line-height: 18px;\n }\n\n .icon {\n margin-right: ${spacers.dp4};\n display: inline-flex;\n vertical-align: text-bottom;\n padding-top: 1px;\n }\n\n .label {\n font-size: 14px;\n }\n\n .edit {\n height: 16px;\n margin-top: 1px;\n margin-left: ${spacers.dp8};\n cursor: pointer;\n }\n\n .edit:hover {\n background-color: rgba(0, 0, 0, 0.12);\n outline: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 3px;\n }\n\n .highlighted .edit:hover {\n background-color: rgba(255, 255, 255, 0.12);\n outline: 1px solid rgba(255, 255, 255, 0.12);\n }\n `}</style>\n </div>\n );\n\n return (\n <div data-value={value} data-test={dataTest} className=\"wrapper\">\n {tooltipText ? (\n <Tooltip\n key={`${value}`}\n content={tooltipText}\n placement={'top'}\n openDelay={750}\n closeDelay={150}\n >\n {renderContent()}\n </Tooltip>\n ) : (\n renderContent()\n )}\n </div>\n );\n};\n\nTransferOption.propTypes = {\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n active: PropTypes.bool,\n dataTest: PropTypes.string,\n disabled: PropTypes.bool,\n highlighted: PropTypes.bool,\n icon: PropTypes.node,\n selected: PropTypes.bool,\n tooltipText: PropTypes.string,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onEditClick: PropTypes.func,\n};\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nexport const sharedComponents: any[] = [];\n\nexport * from './TransferOption';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { sharedComponents } from './components';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [...sharedComponents],\n exports: [...sharedComponents],\n})\nexport class SharedDhis2UiModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport class HeaderBarApp {\n name!: string;\n namespace!: string;\n defaultAction!: string;\n displayName!: string;\n icon!: string;\n description!: string;\n\n constructor(module: Record<string, unknown>) {\n this.name = module['name'] as string;\n this.namespace = module['namespace'] as string;\n this.defaultAction = this.getPath(module['defaultAction'] as string);\n this.icon = this.getPath(module['icon'] as string);\n this.displayName = module['displayName'] as string;\n this.description = module['description'] as string;\n }\n\n getPath(item: string) {\n if (item?.startsWith('../')) {\n return '../../' + item;\n }\n return item;\n }\n}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport class HeaderBarNotification {\n unreadInterpretations?: number;\n unreadMessageConversations?: number;\n\n constructor(notification: Record<string, number>) {\n this.unreadInterpretations = notification['unreadInterpretations'];\n this.unreadMessageConversations =\n notification['unreadMessageConversations'];\n }\n}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';\nimport { Observable, catchError, map, of, zip } from 'rxjs';\nimport { HeaderBarApp } from './header-bar-app.model';\nimport { HeaderBarNotification } from './header-bar-notification.model';\n\nexport class HeaderBarData {\n apps!: HeaderBarApp[];\n title!: string;\n help: any;\n notifications!: HeaderBarNotification;\n user!: Record<string, unknown>;\n\n constructor(private httpClient: NgxDhis2HttpClientService) {}\n\n getApps(): Observable<HeaderBarApp[]> {\n return this.httpClient\n .get('dhis-web-commons/menu/getModules.action', {\n useRootUrl: true,\n })\n .pipe(\n catchError(() =>\n of({\n modules: [],\n })\n ),\n map((result: { modules: Record<string, unknown>[] }) => {\n return (result?.modules || [])\n .map((module: Record<string, unknown>) => new HeaderBarApp(module))\n .filter((headerBarApp) => headerBarApp);\n })\n );\n }\n\n getNotifications(): Observable<HeaderBarNotification | null> {\n return this.httpClient\n .get('me/dashboard')\n .pipe(\n map((notifications: Record<string, number>) =>\n notifications ? new HeaderBarNotification(notifications) : null\n )\n );\n }\n\n get(): Observable<HeaderBarData | null> {\n return zip(\n this.getApps(),\n this.httpClient.get('systemSettings/helpPageLink'),\n this.httpClient.get('me/dashboard'),\n this.httpClient.get('systemSettings/applicationTitle'),\n this.httpClient.get(\n 'me.json?fields=authorities,avatar,email,name,settings'\n )\n ).pipe(\n map(\n (response: [HeaderBarApp[], any, HeaderBarNotification, any, any]) => {\n if (response) {\n const [apps, help, notifications, title, user] = response;\n this.apps = apps;\n this.help = help;\n this.notifications = notifications;\n this.title = title as string;\n this.user = user;\n\n return this;\n }\n\n return null;\n }\n ),\n catchError(() => {\n return of(null);\n })\n );\n }\n}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './header-bar-data.model';\nexport * from './header-bar-app.model';\n","export const joinPath = (...parts: any[]) => {\n const realParts = parts.filter((part) => !!part);\n return realParts.map((part) => part.replace(/^\\/+|\\/+$/g, '')).join('/');\n};\n","import { Card } from '@dhis2-ui/card';\nimport { InputField } from '@dhis2-ui/input';\nimport { useConfig } from '@dhis2/app-runtime';\nimport { colors, spacers, theme } from '@dhis2/ui-constants';\nimport { IconApps24, IconSettings24 } from '@dhis2/ui-icons';\nimport PropTypes from 'prop-types';\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { joinPath } from './join-path';\nimport i18n from '@dhis2/d2-i18n';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\n/**\n * Copied from here:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n */\nfunction escapeRegExpCharacters(text: string) {\n return text.replace(/[/.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction Search({ value, onChange, baseUrl }: any) {\n return (\n <div className=\"headerbar-apps-search\">\n <span className=\"headerbar-apps-search-input\">\n <InputField\n value={value}\n name=\"filter\"\n placeholder={i18n.t('Search apps')}\n onChange={onChange}\n initialFocus\n />\n </span>\n\n <span className=\"headerbar-apps-search-icon\">\n <a href={joinPath(baseUrl, 'dhis-web-menu-management')}>\n <IconSettings24 color={colors.grey700} />\n </a>\n </span>\n\n <style jsx>{`\n .headerbar-apps-search {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n height: 52px;\n margin: 8px;\n }\n\n .headerbar-apps-search-input {\n flex: 1 100%;\n }\n\n .headerbar-apps-search-icon {\n flex: 1 auto;\n margin: 8px;\n }\n `}</style>\n </div>\n );\n}\n\nSearch.propTypes = {\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n baseUrl: PropTypes.string,\n};\n\nfunction Item({ name, path, img }: any) {\n return (\n <a className=\"headerbar-app-item\" href={path}>\n <img className=\"headerbar-app-item-logo\" src={img} alt=\"app logo\" />\n\n <div className=\"headerbar-app-item-title\">{name}</div>\n\n <style jsx>{`\n .headerbar-app-item {\n display: flex;\n flex-direction: column;\n -webkit-box-align: center;\n align-items: center;\n -webkit-box-pack: center;\n justify-content: center;\n width: 96px;\n margin: 8px;\n border-radius: 12px;\n text-decoration: none;\n cursor: pointer;\n }\n .headerbar-app-item-logo {\n display: inline-block;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 96px;\n margin: 8px;\n border-radius: 12px;\n text-decoration: none;\n cursor: pointer;\n }\n\n .headerbar-app-item-logo:hover,\n .headerbar-app-item-logo:focus {\n background-color: ${theme.primary050};\n cursor: pointer;\n }\n\n .headerbar-app-item-logo:hover > div {\n font-weight: 500;\n cursor: pointer;\n }\n\n .headerbar-app-item-logo {\n width: 48px;\n height: 48px;\n margin: 8px;\n cursor: pointer;\n }\n\n .headerbar-app-item-title {\n overflow-wrap: anywhere;\n margin-top: 14px;\n color: rgba(0, 0, 0, 0.87);\n font-size: 12px;\n letter-spacing: 0.01em;\n line-height: 14px;\n text-align: center;\n cursor: pointer;\n }\n `}</style>\n </a>\n );\n}\n\nItem.propTypes = {\n img: PropTypes.string,\n name: PropTypes.string,\n path: PropTypes.string,\n};\n\nfunction List({ apps, filter }: any) {\n return (\n <div\n className=\"headerbar-apps-menu-list\"\n data-test=\"headerbar-apps-menu-list\"\n >\n {apps\n .filter(({ displayName, name }: any) => {\n const appName = displayName || name;\n const formattedAppName = appName.toLowerCase();\n const formattedFilter = escapeRegExpCharacters(filter).toLowerCase();\n\n return filter.length > 0\n ? formattedAppName.match(formattedFilter)\n : true;\n })\n .map(({ displayName, name, defaultAction, icon }: any, idx: string) => (\n <Item\n key={`app-${name}-${idx}`}\n name={displayName || name}\n path={defaultAction}\n img={icon}\n />\n ))}\n\n <style jsx>{`\n .headerbar-apps-menu-list {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-content: flex-start;\n align-items: flex-start;\n justify-content: flex-start;\n width: 30vw;\n min-width: 300px;\n max-width: 560px;\n\n min-height: 200px;\n max-height: 465px;\n margin: 0 8px 8px 8px;\n\n overflow: auto;\n overflow-x: hidden;\n }\n `}</style>\n </div>\n );\n}\nList.propTypes = {\n apps: PropTypes.array,\n filter: PropTypes.string,\n};\n\nconst AppMenu = ({ apps, filter, onFilterChange, baseUrl }: any) => (\n <div className=\"headerbar-apps-menu\" data-test=\"headerbar-apps-menu\">\n <Card>\n <Search value={filter} onChange={onFilterChange} baseUrl={baseUrl} />\n <List apps={apps} filter={filter} />\n </Card>\n\n <style jsx>{`\n .headerbar-apps-menu {\n z-index: 10000;\n position: absolute;\n right: -4px;\n }\n `}</style>\n </div>\n);\n\nAppMenu.propTypes = {\n apps: PropTypes.array.isRequired,\n onFilterChange: PropTypes.func.isRequired,\n filter: PropTypes.string,\n baseUrl: PropTypes.string,\n};\n\nconst Apps = ({ apps, baseUrl }: any) => {\n const [show, setShow] = useState(false);\n const [filter, setFilter] = useState('');\n\n const handleVisibilityToggle = useCallback(() => setShow(!show), [show]);\n const handleFilterChange = useCallback(\n ({ value }: any) => setFilter(value),\n []\n );\n\n const containerEl = useRef(null);\n const onDocClick = useCallback((evt: any) => {\n if (\n containerEl.current &&\n !(containerEl.current as any).contains(evt.target)\n ) {\n setShow(false);\n }\n }, []);\n useEffect(() => {\n document.addEventListener('click', onDocClick);\n return () => document.removeEventListener('click', onDocClick);\n }, [onDocClick]);\n\n return (\n <div\n className=\"headerbar-apps\"\n ref={containerEl}\n data-test=\"headerbar-apps\"\n >\n <button onClick={handleVisibilityToggle} data-test=\"headerbar-apps-icon\">\n <IconApps24 color={colors.white} />\n </button>\n\n {show ? (\n <AppMenu\n apps={apps}\n filter={filter}\n baseUrl={baseUrl}\n onFilterChange={handleFilterChange}\n />\n ) : null}\n\n <style jsx>{`\n .headerbar-apps button {\n display: block;\n background: transparent;\n padding: ${spacers.dp4} ${spacers.dp12} 0;\n border: 0;\n cursor: pointer;\n height: 100%;\n }\n .headerbar-apps button:focus {\n outline: 2px solid white;\n outline-offset: -2px;\n }\n .headerbar-apps button:focus:not(:focus-visible) {\n outline: none;\n }\n .headerbar-apps button:hover {\n background: #1a557f;\n }\n .headerbar-apps button:active {\n background: #104067;\n }\n\n .headerbar-apps {\n position: relative;\n height: 100%;\n }\n `}</style>\n </div>\n );\n};\n\nApps.propTypes = {\n apps: PropTypes.array.isRequired,\n baseUrl: PropTypes.string,\n};\n\nexport default Apps;\n","import { LogoIconWhite } from '@dhis2-ui/logo';\nimport { useDataQuery } from '@dhis2/app-runtime';\nimport React from 'react';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nconst query = {\n customLogo: {\n resource: 'staticContent/logo_banner',\n },\n};\n\nconst pathExists = (data: any) =>\n data &&\n data.customLogo &&\n data.customLogo.images &&\n data.customLogo.images.png;\n\nexport const LogoImage = () => {\n const { loading, error, data } = useDataQuery(query) as any;\n\n if (loading) {\n return null;\n }\n\n let Logo;\n if (!error && pathExists(data)) {\n Logo = <img alt=\"Headerbar Logo\" src={data.customLogo.images.png} />;\n } else {\n Logo = <LogoIconWhite />;\n }\n\n return (\n <div className=\"header-bar-logo\">\n {Logo}\n <style jsx>{`\n .header-bar-logo {\n min-width: 48px;\n max-width: 250px;\n height: 48px;\n display: flex;\n -webkit-box-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n align-items: center;\n overflow: hidden;\n }\n\n .header-bar-logo svg {\n height: 25px;\n width: 27px;\n }\n\n .header-bar-logo img {\n max-height: 100%;\n min-height: auto;\n width: auto;\n }\n `}</style>\n </div>\n );\n};\n","import { useConfig } from '@dhis2/app-runtime';\nimport React from 'react';\nimport { LogoImage } from './logo-image';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\ninterface LogoProp {\n baseUrl: string;\n}\n\nexport const Logo = ({ baseUrl }: LogoProp) => {\n return (\n <div className=\"headerbar-logo\" data-test=\"headerbar-logo\">\n <a href={baseUrl}>\n <LogoImage />\n </a>\n\n <style jsx>{`\n .headerbar-logo {\n box-sizing: border-box;\n min-width: 49px;\n max-height: 48px;\n margin: 0 12px 0 0;\n border-right: 1px solid rgba(32, 32, 32, 0.15);\n }\n .headerbar-logo:hover {\n background-color: #1a557f;\n }\n\n .headerbar-logo a,\n .headerbar-logo a:hover,\n .headerbar-logo a:focus,\n .headerbar-logo a:active,\n .headerbar-logo a:visited {\n user-select: none;\n }\n .headerbar-logo a:focus {\n outline: 2px solid white;\n outline-offset: -2px;\n }\n .headerbar-logo a:focus:not(:focus-visible) {\n outline: none;\n }\n `}</style>\n </div>\n );\n};\n","import { colors, theme, spacers } from '@dhis2/ui-constants';\nimport { IconMessages24, IconMail24 } from '@dhis2/ui-icons';\nimport PropTypes from 'prop-types';\nimport React from 'react';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nfunction icon(kind: string) {\n if (kind === 'message') {\n return <IconMessages24 color={colors.white} />;\n } else {\n return <IconMail24 color={colors.white} />;\n }\n}\n\nexport const NotificationIcon = (params: any) => {\n const { count, href, kind, dataTestId } = params;\n const notificationClassName = 'headerbar-notification-icon ' + kind;\n return (\n <a href={href} className={notificationClassName} data-test={dataTestId}>\n {icon(kind)}\n\n {count > 0 && <span data-test={`${dataTestId}-count`}>{count}</span>}\n\n <style jsx>{`\n .headerbar-notification-icon {\n position: relative;\n margin: 0;\n cursor: pointer;\n padding: 0 ${spacers.dp12};\n height: 100%;\n display: flex;\n align-items: center;\n }\n .headerbar-notification-icon:focus {\n outline: 2px solid white;\n outline-offset: -2px;\n }\n .headerbar-notification-icon:focus:not(:focus-visible) {\n outline: none;\n }\n .headerbar-notification-icon:hover {\n background: #1a557f;\n }\n .headerbar-notification-icon:active {\n background: #104067;\n }\n .headerbar-notification-icon span {\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1;\n position: absolute;\n top: 3px;\n right: 2px;\n min-width: 18px;\n min-height: 18px;\n border-radius: ${spacers.dp12};\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1),\n 0 1px 2px 0 rgba(0, 0, 0, 0.06);\n background-color: ${theme.secondary500};\n color: ${colors.white};\n font-size: 13px;\n font-weight: 600;\n line-height: 15px;\n text-align: center;\n cursor: inherit;\n padding: 0 ${spacers.dp4};\n }\n `}</style>\n </a>\n );\n};\n\nNotificationIcon.defaultProps = {\n count: 0,\n};\n\nNotificationIcon.propTypes = {\n href: PropTypes.string.isRequired,\n count: PropTypes.number,\n dataTestId: PropTypes.string,\n message: PropTypes.string,\n kind: PropTypes.oneOf(['interpretation', 'message']),\n};\n","import { useConfig } from '@dhis2/app-runtime';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { joinPath } from './join-path';\nimport { NotificationIcon } from './notification-icon';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\n/*\n AUTHORITIES:\n - ALL: superuser\n - M_dhis-web-interpretation: access to interpretations app\n - M_dhis-web-messaging: access to messaging app\n */\n\nconst hasAuthority = (userAuthorities: any, authId: string) =>\n Array.isArray(userAuthorities) &&\n userAuthorities.some(\n (userAuthId) => userAuthId === 'ALL' || userAuthId === authId\n );\n\nexport const Notifications = (params: any) => {\n const { interpretations, messages, userAuthorities } = params;\n const { baseUrl } = useConfig();\n\n return (\n <div\n className=\"headerbar-notifications\"\n data-test=\"headerbar-notifications\"\n >\n {hasAuthority(userAuthorities, 'M_dhis-web-interpretation') && (\n <NotificationIcon\n count={interpretations}\n href={joinPath(baseUrl, 'dhis-web-interpretation')}\n kind=\"message\"\n dataTestId=\"headerbar-interpretations\"\n />\n )}\n\n {hasAuthority(userAuthorities, 'M_dhis-web-messaging') && (\n <NotificationIcon\n message=\"email\"\n count={messages}\n href={joinPath(baseUrl, 'dhis-web-messaging')}\n kind=\"interpretation\"\n dataTestId=\"headerbar-messages\"\n />\n )}\n\n <style jsx>{`\n .headerbar-notifications {\n user-select: none;\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 100%;\n }\n `}</style>\n </div>\n );\n};\n\nNotifications.propTypes = {\n interpretations: PropTypes.number,\n messages: PropTypes.number,\n userAuthorities: PropTypes.arrayOf(PropTypes.string),\n};\n","import { useConfig } from '@dhis2/app-runtime';\n\nexport const useDebugInfo = () => {\n const { appName, appVersion, systemInfo } = useConfig() as any;\n\n return {\n app_name: appName || null,\n app_version: appVersion?.full || null,\n dhis2_version: systemInfo?.version || null,\n dhis2_revision: systemInfo?.revision || null,\n };\n};\n\nexport const useFormattedDebugInfo = () =>\n JSON.stringify(useDebugInfo(), undefined, 2);\n","import { colors } from '@dhis2/ui-constants';\nimport React from 'react';\nimport { useDebugInfo } from './use-debug-info';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nconst formatDebugInfoKey = (key: any) => {\n const tokens = key.split('_');\n return tokens\n .map((token: any) => {\n if (token.toLowerCase() === 'dhis2') {\n return 'DHIS2';\n } else {\n return token[0].toUpperCase() + token.substr(1).toLowerCase();\n }\n })\n .join(' ');\n};\n\nexport function DebugInfoTable() {\n const debugInfo = useDebugInfo() as any;\n return (\n <table {...{ 'data-test': 'dhis2-ui-headerbar-debuginfotable' }}>\n <tbody>\n {Object.keys(debugInfo).map((key) => (\n <tr key={key}>\n <td className=\"debug-info-key\">{formatDebugInfoKey(key)}</td>\n <td>{debugInfo[key]}</td>\n </tr>\n ))}\n </tbody>\n <style jsx>{`\n table {\n white-space: pre-wrap;\n font-size: 14px;\n line-height: 1.2;\n color: ${colors.grey700};\n font-famile: Menlo, Courier, monospace !important;\n }\n td {\n padding: 3px 16px 3px 0;\n }\n .debug-info-key {\n font-weight: bold;\n }\n `}</style>\n </table>\n );\n}\n","import { Button, ButtonStrip } from '@dhis2-ui/button';\nimport { Modal, ModalActions, ModalContent, ModalTitle } from '@dhis2-ui/modal';\nimport { useAlert } from '@dhis2/app-runtime';\nimport i18n from '@dhis2/d2-i18n';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { DebugInfoTable } from './debug-info-table';\nimport { useFormattedDebugInfo } from './use-debug-info';\n\nexport function DebugInfoModal(params: any) {\n const { onClose } = params;\n const debugInfo = useFormattedDebugInfo();\n const { show: showClipboardAlert } = useAlert(\n 'Debug information copied to clipboard',\n { duration: 3000 }\n );\n\n const copyDebugInfo = () => {\n navigator.clipboard.writeText(debugInfo);\n onClose();\n showClipboardAlert();\n };\n\n return (\n <Modal position=\"middle\" dataTest=\"dhis2-ui-headerbar-debuginfomodal\">\n <ModalTitle>{i18n.t('Debug info')}</ModalTitle>\n <ModalContent>\n <DebugInfoTable />\n </ModalContent>\n <ModalActions>\n <ButtonStrip end>\n <Button onClick={() => onClose()}>{i18n.t('Close')}</Button>\n <Button\n primary\n onClick={copyDebugInfo}\n dataTest=\"dhis2-ui-headerbar-debuginfomodal-copybutton\"\n >\n {i18n.t('Copy debug info')}\n </Button>\n </ButtonStrip>\n </ModalActions>\n </Modal>\n );\n}\n\nDebugInfoModal.propTypes = {\n onClose: PropTypes.func.isRequired,\n};\n","import { MenuItem } from '@dhis2-ui/menu';\nimport { colors } from '@dhis2/ui-constants';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport i18n from '@dhis2/d2-i18n';\nimport { useDebugInfo } from './use-debug-info';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nexport const DebugInfoMenuItem = (params: any) => {\n const { hideProfileMenu, showDebugInfoModal } = params;\n const debugInfo = useDebugInfo();\n\n const openDebugModal = () => {\n hideProfileMenu();\n showDebugInfoModal();\n };\n\n const debugInfoLabel = (\n <div className=\"root\">\n <div\n className=\"instance-info version\"\n data-test=\"dhis2-ui-headerbar-instanceinfo\"\n >\n {debugInfo.dhis2_version\n ? i18n.t('DHIS2 {{dhis2Version}}', {\n dhis2Version: debugInfo.dhis2_version,\n })\n : i18n.t('DHIS2 version unknown')}\n </div>\n <div className=\"version\" data-test=\"dhis2-ui-headerbar-appinfo\">\n {debugInfo.app_name\n ? debugInfo.app_version\n ? `${debugInfo.app_name} ${debugInfo.app_version}`\n : i18n.t('{{appName}} version unknown', {\n appName: debugInfo.app_name,\n })\n : debugInfo.app_version\n ? i18n.t('App {{appVersion}}', {\n appVersion: debugInfo.app_version,\n })\n : i18n.t('App version unknown')}\n {}\n </div>\n <style jsx>{`\n .root {\n color: ${colors.grey700};\n font-style: italic;\n font-size: 14px;\n line-height: 17px;\n }\n .instance-info {\n margin-bottom: 4px;\n }\n .version {\n white-space: no-wrap;\n }\n `}</style>\n </div>\n );\n\n return (\n <MenuItem\n dense\n onClick={openDebugModal}\n label={debugInfoLabel}\n dataTest=\"dhis2-ui-headerbar-debuginfo\"\n />\n );\n};\n\nDebugInfoMenuItem.propTypes = {\n hideProfileMenu: PropTypes.func.isRequired,\n showDebugInfoModal: PropTypes.func.isRequired,\n};\n","import { UserAvatar } from '@dhis2-ui/user-avatar';\nimport { useConfig } from '@dhis2/app-runtime';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { joinPath } from '../join-path';\nimport i18n from '@dhis2/d2-i18n';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nconst ProfileName = (params: any) => {\n const { children } = params;\n return (\n <div\n className=\"headerbar-profile-username\"\n data-test=\"headerbar-profile-username\"\n >\n {children}\n\n <style jsx>{`\n .headerbar-profile-username {\n margin-bottom: 3px;\n font-size: 16px;\n line-height: 19px;\n }\n `}</style>\n </div>\n );\n};\nProfileName.propTypes = {\n children: PropTypes.string,\n};\n\nconst ProfileEmail = (params: any) => {\n const { children } = params;\n return (\n <div\n className=\"headerbar-profile-user-email\"\n data-test=\"headerbar-profile-user-email\"\n >\n {children}\n\n <style jsx>{`\n .headerbar-profile-user-email {\n margin-bottom: 6px;\n font-size: 14px;\n line-height: 16px;\n }\n `}</style>\n </div>\n );\n};\nProfileEmail.propTypes = {\n children: PropTypes.string,\n};\n\nconst ProfileEdit = (params: any) => {\n const { children } = params;\n const { baseUrl } = useConfig();\n\n return (\n <a\n className=\"headerbar-profile-edit-profile-link\"\n href={joinPath(baseUrl, 'dhis-web-user-profile/#/profile')}\n data-test=\"headerbar-profile-edit-profile-link\"\n >\n {children}\n\n <style jsx>{`\n .headerbar-profile-edit-profile-link {\n color: rgba(0, 0, 0, 0.87);\n font-size: 12px;\n line-height: 14px;\n text-decoration: underline !important;\n cursor: pointer;\n }\n `}</style>\n </a>\n );\n};\n\nProfileEdit.propTypes = {\n children: PropTypes.string,\n};\n\nconst ProfileDetails = (params: any) => {\n const { name, email } = params;\n return (\n <div className=\"headerbar-profile-details\">\n <ProfileName>{name}</ProfileName>\n <ProfileEmail>{email}</ProfileEmail>\n <ProfileEdit>{i18n.t('Edit profile')}</ProfileEdit>\n\n <style jsx>{`\n .headerbar-profile-details {\n display: flex;\n flex-direction: column;\n margin-left: 20px;\n color: #000;\n font-size: 14px;\n font-weight: 400;\n }\n `}</style>\n </div>\n );\n};\n\nProfileDetails.propTypes = {\n email: PropTypes.string,\n name: PropTypes.string,\n};\n\nexport const ProfileHeader = (params: any) => {\n const { name, email, avatarId } = params;\n return (\n <div className=\"headerbar-profile-header\">\n <UserAvatar\n avatarId={avatarId}\n name={name}\n dataTest=\"headerbar-profile-menu-icon\"\n large\n />\n <ProfileDetails name={name} email={email} />\n\n <style jsx>{`\n .headerbar-profile-header {\n display: flex;\n flex-direction: row;\n margin-left: 24px;\n padding-top: 20px;\n }\n `}</style>\n </div>\n );\n};\n\nProfileHeader.propTypes = {\n avatarId: PropTypes.string,\n email: PropTypes.string,\n name: PropTypes.string,\n};\n","import PropTypes from 'prop-types';\nimport React, { createContext, useContext } from 'react';\n\nconst headerBarContext = createContext({\n updateAvailable: false,\n onApplyAvailableUpdate: () => {},\n});\n\nexport const HeaderBarContextProvider = (params: any) => {\n const { updateAvailable, onApplyAvailableUpdate, children } = params;\n return (\n <headerBarContext.Provider\n value={{ updateAvailable, onApplyAvailableUpdate }}\n >\n {children}\n </headerBarContext.Provider>\n );\n};\nHeaderBarContextProvider.propTypes = {\n children: PropTypes.node,\n updateAvailable: PropTypes.bool,\n onApplyAvailableUpdate: PropTypes.func,\n};\n\nexport const useHeaderBarContext = () => useContext(headerBarContext);\n","import { MenuItem } from '@dhis2-ui/menu';\nimport { useConfig } from '@dhis2/app-runtime';\nimport { colors } from '@dhis2/ui-constants';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useHeaderBarContext } from '../header-bar-context';\nimport i18n from '@dhis2/d2-i18n';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nexport function UpdateNotification(params: any) {\n const { hideProfileMenu } = params;\n const { appName } = useConfig();\n const { updateAvailable, onApplyAvailableUpdate } = useHeaderBarContext();\n const onClick = () => {\n hideProfileMenu();\n onApplyAvailableUpdate?.();\n };\n\n const updateNotificationLabel = (\n <div className=\"root\">\n <div className=\"badge\" />\n <div className=\"spacer\" />\n <div className=\"message\">\n {appName\n ? i18n.t('New {{appName}} version available', { appName })\n : i18n.t('New app version available')}\n <br />\n {i18n.t('Click to reload')}\n </div>\n <style jsx>{`\n .root {\n display: flex;\n flex-direction: row;\n align-items: center;\n font-size: 14px;\n line-height: 17px;\n }\n .badge {\n display: inline-block;\n width: 12px;\n height: 12px;\n margin: 0 8px;\n border-radius: 6px;\n background-color: ${colors.blue600};\n }\n .spacer {\n display: inline-block;\n width: 8px;\n }\n .message {\n display: inline-block;\n }\n `}</style>\n </div>\n );\n\n return updateAvailable ? (\n <MenuItem\n dense\n onClick={onClick}\n label={updateNotificationLabel}\n dataTest=\"dhis2-ui-headerbar-updatenotification\"\n />\n ) : null;\n}\n\nUpdateNotification.propTypes = {\n hideProfileMenu: PropTypes.func.isRequired,\n};\n","import { Card } from '@dhis2-ui/card';\nimport { Center } from '@dhis2-ui/center';\nimport { Divider } from '@dhis2-ui/divider';\nimport { Layer } from '@dhis2-ui/layer';\nimport { CircularLoader } from '@dhis2-ui/loader';\nimport { MenuDivider, MenuItem } from '@dhis2-ui/menu';\nimport { clearSensitiveCaches, useConfig } from '@dhis2/app-runtime';\nimport { colors } from '@dhis2/ui-constants';\nimport {\n IconSettings24,\n IconInfo24,\n IconLogOut24,\n IconUser24,\n IconQuestion24,\n} from '@dhis2/ui-icons';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { DebugInfoMenuItem } from '../debug-info/debug-info-menu-item';\nimport { joinPath } from '../join-path';\nimport i18n from '@dhis2/d2-i18n';\nimport { ProfileHeader } from './profile-header';\nimport { UpdateNotification } from './update-notification';\n\nconst LoadingMask = () => (\n <Layer\n translucent\n disablePortal\n dataTest=\"headerbar-profile-menu-loading-mask\"\n >\n <Center>\n <CircularLoader />\n </Center>\n </Layer>\n);\n\nconst ProfileContents = (params: any) => {\n const {\n name,\n email,\n avatarId,\n helpUrl,\n hideProfileMenu,\n showDebugInfoModal,\n } = params;\n const { baseUrl } = useConfig();\n const [loading, setLoading] = useState(false);\n\n return (\n <Card>\n <div className=\"headerbar-profile-contents\">\n <ProfileHeader name={name} email={email} avatarId={avatarId} />\n <Divider margin=\"13px 0 7px 0\" />\n <ul data-test=\"headerbar-profile-menu\">\n <MenuItem\n href={joinPath(baseUrl, 'dhis-web-user-profile/#/settings')}\n label={i18n.t('Settings')}\n value=\"settings\"\n icon={<IconSettings24 color={colors.grey700} />}\n />\n <MenuItem\n href={joinPath(baseUrl, 'dhis-web-user-profile/#/account')}\n label={i18n.t('Account')}\n value=\"account\"\n icon={<IconUser24 color={colors.grey700} />}\n />\n {helpUrl && (\n <MenuItem\n href={helpUrl}\n label={i18n.t('Help')}\n value=\"help\"\n icon={<IconQuestion24 color={colors.grey700} />}\n />\n )}\n <MenuItem\n href={joinPath(baseUrl, 'dhis-web-user-profile/#/aboutPage')}\n label={i18n.t('About DHIS2')}\n value=\"about\"\n icon={<IconInfo24 color={colors.grey700} />}\n />\n <MenuItem\n href={joinPath(baseUrl, 'dhis-web-commons-security/logout.action')}\n // NB: By MenuItem implementation, this callback\n // overwrites default navigation behavior but maintains\n // the href attribute\n onClick={async () => {\n setLoading(true);\n await clearSensitiveCaches();\n setLoading(false);\n window.location.assign(\n joinPath(baseUrl, 'dhis-web-commons-security/logout.action')\n );\n }}\n label={i18n.t('Logout')}\n value=\"logout\"\n icon={<IconLogOut24 color={colors.grey700} />}\n />\n <MenuDivider dense />\n <DebugInfoMenuItem\n hideProfileMenu={hideProfileMenu}\n showDebugInfoModal={showDebugInfoModal}\n />\n <UpdateNotification hideProfileMenu={hideProfileMenu} />\n </ul>\n </div>\n\n {loading && <LoadingMask />}\n\n <style jsx>{`\n .headerbar-profile-contents {\n width: 100%;\n padding: 0;\n }\n\n .headerbar-profile-contents ul {\n padding: 0;\n margin: 0;\n }\n\n .headerbar-profile-contents a {\n display: inline-flex !important;\n }\n\n .headerbar-profile-contents a,\n .headerbar-profile-contents a:hover,\n .headerbar-profile-contents a:focus,\n .headerbar-profile-contents a:active,\n .headerbar-profile-contents a:visited {\n text-decoration: none;\n display: block;\n }\n `}</style>\n </Card>\n );\n};\n\nProfileContents.propTypes = {\n hideProfileMenu: PropTypes.func.isRequired,\n showDebugInfoModal: PropTypes.func.isRequired,\n avatarId: PropTypes.string,\n email: PropTypes.string,\n helpUrl: PropTypes.string,\n name: PropTypes.string,\n};\n\nexport const ProfileMenu = (params: any) => {\n const { ...props } = params;\n return (\n <div className=\"headerbar-profile-menu\" data-test=\"headerbar-profile-menu\">\n <ProfileContents {...props} />\n <style jsx>{`\n .headerbar-profile-menu {\n z-index: 10000;\n position: absolute;\n right: 4px;\n width: 320px;\n }\n `}</style>\n </div>\n );\n};\n\nProfileMenu.propTypes = {\n hideProfileMenu: PropTypes.func.isRequired,\n showDebugInfoModal: PropTypes.func.isRequired,\n avatarId: PropTypes.string,\n email: PropTypes.string,\n helpUrl: PropTypes.string,\n name: PropTypes.string,\n};\n","import { useEffect, useMemo } from 'react';\n\nexport const useOnDocClick = (containerRef: any, hide: any) => {\n const onDocClick = useMemo(() => {\n return (evt: any) => {\n if (!containerRef.current) {\n return null;\n }\n\n if (!containerRef.current.contains(evt.target)) {\n hide();\n }\n\n return null;\n };\n }, [containerRef, hide]);\n\n useEffect(() => {\n document.addEventListener('click', onDocClick);\n\n return () => {\n document.removeEventListener('click', onDocClick);\n };\n }, [onDocClick]);\n};\n","import { UserAvatar } from '@dhis2-ui/user-avatar';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useRef, useState } from 'react';\nimport { DebugInfoModal } from './debug-info/debug-info-modal';\nimport { ProfileMenu } from './profile-menu';\nimport { useOnDocClick } from './profile/use-on-doc-click';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nconst Profile = (params: any) => {\n const { name, email, avatarId, helpUrl } = params;\n const [showProfileMenu, setShowProfileMenu] = useState(false);\n const [showDebugInfoModal, setShowDebugInfoModal] = useState(false);\n const hideProfileMenu = useCallback(\n () => setShowProfileMenu(false),\n [setShowProfileMenu]\n );\n const toggleProfileMenu = useCallback(\n () => setShowProfileMenu((show) => !show),\n [setShowProfileMenu]\n ) as any;\n const containerRef = useRef(null);\n\n useOnDocClick(containerRef, hideProfileMenu);\n\n return (\n <div\n ref={containerRef}\n data-test=\"headerbar-profile\"\n className=\"headerbar-profile\"\n >\n <button className=\"headerbar-profile-btn\" onClick={toggleProfileMenu}>\n <UserAvatar\n avatarId={avatarId}\n name={name}\n dataTest=\"headerbar-profile-icon\"\n medium\n />\n </button>\n\n {showProfileMenu && (\n <ProfileMenu\n avatarId={avatarId}\n name={name}\n email={email}\n helpUrl={helpUrl}\n hideProfileMenu={hideProfileMenu}\n showDebugInfoModal={() => {\n setShowDebugInfoModal(true);\n }}\n />\n )}\n {showDebugInfoModal && (\n <DebugInfoModal\n onClose={() => {\n setShowDebugInfoModal(false);\n }}\n />\n )}\n\n <style jsx>{`\n .headerbar-profile {\n position: relative;\n height: 100%;\n }\n\n .headerbar-profile-btn {\n background: transparent;\n padding: 6px;\n border: 0;\n cursor: pointer;\n }\n .headerbar-profile-btn:focus {\n outline: 2px solid white;\n outline-offset: -2px;\n }\n .headerbar-profile-btn:focus:not(:focus-visible) {\n outline: none;\n }\n .headerbar-profile-btn:hover {\n background: #1a557f;\n }\n .headerbar-profile-btn:active {\n background: #104067;\n }\n `}</style>\n </div>\n );\n};\n\nProfile.propTypes = {\n name: PropTypes.string.isRequired,\n avatarId: PropTypes.string,\n email: PropTypes.string,\n helpUrl: PropTypes.string,\n};\n\nexport default Profile;\n","import PropTypes from 'prop-types';\nimport React from 'react';\ndeclare module 'react' {\n interface StyleHTMLAttributes<T> extends React.HTMLAttributes<T> {\n jsx?: boolean;\n global?: boolean;\n }\n}\n\nexport const Title = (params: any) => {\n const { app, instance } = params;\n return (\n <div className=\"headerbar-title\" data-test=\"headerbar-title\">\n {app ? `${instance} - ${app}` : `${instance}`}\n\n <style jsx>{`\n .headerbar-title {\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 14px;\n font-weight: 500;\n letter-spacing: 0.01em;\n white-space: nowrap;\n }\n `}</style>\n </div>\n );\n};\nTitle.propTypes = {\n app: PropTypes.string,\n instance: PropTypes.string,\n};\n","import i18n from '@dhis2/d2-i18n';\nimport { colors } from '@dhis2/ui-constants';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { HeaderBarData } from '../models';\nimport Apps from './apps';\nimport { Logo } from './logo';\nimport { Notifications } from './notifications';\nimport Profile from './profile';\nimport { Title } from './title';\n\ninterface HeaderBarProp {\n appName: string;\n data: HeaderBarData;\n className?: string;\n}\n\nexport const HeaderBar = ({ appName, data, className }: HeaderBarProp) => {\n const loading = false;\n const error = null;\n\n // See https://jira.dhis2.org/browse/LIBS-180\n if (!loading && !error) {\n // TODO: This will run every render which is probably wrong!\n // Also, setting the global locale shouldn't be done in the headerbar\n const locale = (data.user['settings'] as any)['keyUiLocale'] || 'en';\n i18n.setDefaultNamespace('default');\n i18n.changeLanguage(locale);\n }\n\n {\n /* TODO: Find better way to attach base URL */\n }\n const baseUrl = '../../../';\n\n return (\n <header className={className}>\n <div className=\"main\">\n {!loading && !error && (\n <>\n <Logo baseUrl={baseUrl} />\n\n <Title\n app={appName}\n instance={(data.title as any)['applicationTitle']}\n />\n\n <div className=\"right-control-spacer\" />\n\n {/*TODO: Find better approach to handle PWA */}\n {/* {'pwaEnabled' && <OnlineStatus />} */}\n\n <Notifications\n interpretations={data.notifications.unreadInterpretations}\n messages={data.notifications.unreadMessageConversations}\n userAuthorities={data.user['authorities'] as any}\n />\n <Apps apps={data.apps} baseUrl={baseUrl} />\n\n <Profile\n name={data.user['name'] as string}\n email={data.user['email'] as string}\n avatarId={((data.user['avatar'] || {}) as any)['id']}\n helpUrl={data.help.helpPageLink}\n />\n </>\n )}\n </div>\n\n {/* {'pwaEnabled' && !loading && !error && <OnlineStatus dense />} */}\n\n <style jsx>{`\n .main {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n background-color: #2c6693;\n color: ${colors.white};\n height: 48px;\n }\n .right-control-spacer {\n margin-left: auto;\n }\n `}</style>\n </header>\n );\n};\n\nHeaderBar.propTypes = {\n appName: PropTypes.string,\n data: HeaderBarData,\n className: PropTypes.string,\n updateAvailable: PropTypes.bool,\n onApplyAvailableUpdate: PropTypes.func,\n};\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n} from '@angular/core';\nimport parse from 'html-react-parser';\nimport * as React from 'react';\nimport { ComponentProps } from 'react';\nimport * as ReactDOM from 'react-dom/client';\n(window as any).React = React;\n\n@Directive({\n selector: 'ng-dhis2-ui-wrapper',\n})\nexport class ReactWrapperComponent\n implements OnChanges, OnDestroy, AfterViewInit\n{\n @Input() props?: ComponentProps<any>;\n @Input() component!: any;\n\n @ContentChild('ngDhis2UiContent') content!: ElementRef<HTMLElement>;\n protected reactDomRoot?: ReactDOM.Root;\n\n constructor(protected elementRef: ElementRef<HTMLElement>) {}\n\n ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n this.render();\n }\n\n ngOnChanges(): void {\n if (this.elementRef) this.render();\n }\n\n ngOnDestroy() {\n this.reactDomRoot?.unmount();\n }\n\n protected render() {\n if (!this.component) {\n console.warn('React component must be supplied');\n return;\n }\n\n if (!this.reactDomRoot) return;\n\n const jsxContent = this.content?.nativeElement?.outerHTML\n ? parse(this.content?.nativeElement?.outerHTML)\n : undefined;\n\n this.reactDomRoot.render(\n <this.component {...this.props}> {jsxContent || ''} </this.component>\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactWrapperComponent } from './react-wrapper.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ReactWrapperComponent],\n exports: [ReactWrapperComponent],\n})\nexport class ReactWrapperModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './react-wrapper.module';\nexport * from './react-wrapper.component';\n","import { Component, ElementRef } from '@angular/core';\nimport { DataProvider } from '@dhis2/app-runtime';\nimport { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';\nimport React from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport { firstValueFrom } from 'rxjs';\nimport { HeaderBarData } from './models';\nimport { HeaderBar } from './utils/header-bar';\nimport { ReactWrapperComponent } from '../react-wrapper';\n\n@Component({\n selector: 'ng-dhis2-ui-header-bar',\n template: `<ng-container></ng-container>`,\n})\nexport class HeaderBarComponent extends ReactWrapperComponent {\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private httpClient: NgxDhis2HttpClientService\n ) {\n super(elementRef);\n }\n\n override async ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n const manifest = await firstValueFrom(this.httpClient.manifest());\n const data = await firstValueFrom(new HeaderBarData(this.httpClient).get());\n\n this.component = data\n ? () => (\n <DataProvider>\n {<HeaderBar appName={manifest?.name} data={data} />}\n </DataProvider>\n )\n : () => <div>Something went wrong</div>;\n this.render();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedDhis2UiModule } from '../../shared/shared.module';\nimport { HeaderBarComponent } from './header-bar.component';\n\n@NgModule({\n imports: [CommonModule, SharedDhis2UiModule],\n declarations: [HeaderBarComponent],\n exports: [HeaderBarComponent],\n})\nexport class HeaderBarModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './header-bar.module';\nexport * from './header-bar.component';\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { Button } from '@dhis2/ui';\nimport { ReactWrapperComponent } from '../react-wrapper';\nimport React from 'react';\nimport * as ReactDOM from 'react-dom/client';\n\n@Component({\n selector: 'ng-dhis2-ui-button',\n template: '<ng-content></ng-content>',\n})\nexport class ButtonComponent extends ReactWrapperComponent {\n @Input() label!: string;\n @Input() primary?: boolean;\n @Input() secondary?: boolean;\n @Input() destructive?: boolean;\n @Input() disabled?: boolean;\n @Input() small?: boolean;\n @Input() large?: boolean;\n\n @Output() buttonClick: EventEmitter<any> = new EventEmitter();\n\n override async ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n\n this.component = () => (\n <Button\n onClick={(e: any) => {\n this.onButtonClick(e);\n }}\n primary={this.primary}\n secondary={this.secondary}\n destructive={this.destructive}\n disabled={this.disabled}\n small={this.small}\n large={this.large}\n {...this.props}\n >\n {this.label}\n </Button>\n );\n this.render();\n }\n\n ngOnInit() {\n this.props = {\n ...this.props,\n primary: this.primary,\n secondary: this.secondary,\n destructive: this.destructive,\n small: this.small,\n large: this.large,\n };\n }\n\n onButtonClick(event: any) {\n this.buttonClick.emit(event);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedDhis2UiModule } from '../../shared/shared.module';\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n imports: [CommonModule, SharedDhis2UiModule],\n})\nexport class ButtonModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './button.module';\nexport * from './button.component';\n","import React from 'react';\n\nexport const AssignedCategoriesIcon = () => {\n return (\n <svg height=\"16\" viewBox=\"0 0 16 16\" width=\"16\">\n <g fill=\"#212934\" fillRule=\"evenodd\">\n <path d=\"m2 7h11v1h-11z\" />\n <path d=\"m2 13h11v1h-11z\" />\n <path d=\"m2 2h11v1h-11z\" />\n <path d=\"m7 8h1v5h-1z\" />\n <path d=\"m12 3h1v10h-1z\" />\n <path d=\"m2 3h1v10h-1z\" />\n </g>\n </svg>\n );\n};\n","import {\n IconClock16,\n IconDimensionData16,\n IconDimensionOrgUnit16,\n} from '@dhis2/ui';\nimport i18n from '@dhis2/d2-i18n';\nimport React from 'react';\nimport { AssignedCategoriesIcon } from '../assets/AssignedCategoriesIcon';\n\nexport const DIMENSION_ID_DATA = 'dx';\nexport const DIMENSION_ID_PERIOD = 'pe';\nexport const DIMENSION_ID_ORGUNIT = 'ou';\nexport const DIMENSION_ID_ORGUNIT_LEVEL = 'ouLevel';\nexport const DIMENSION_ID_ORGUNIT_GROUP = 'ouGroup';\nexport const DIMENSION_ID_ASSIGNED_CATEGORIES = 'co';\nexport const DIMENSION_PROP_NO_ITEMS = 'noItems';\n\nexport const getFixedDimensions = () => ({\n [DIMENSION_ID_DATA]: {\n id: DIMENSION_ID_DATA,\n name: i18n.t('Data'),\n iconName: 'DataIcon',\n icon: IconDimensionData16,\n },\n [DIMENSION_ID_PERIOD]: {\n id: DIMENSION_ID_PERIOD,\n name: i18n.t('Period'),\n iconName: 'PeriodIcon',\n icon: IconClock16,\n },\n [DIMENSION_ID_ORGUNIT]: {\n id: DIMENSION_ID_ORGUNIT,\n name: i18n.t('Organisation unit'),\n iconName: 'OrgUnitIcon',\n icon: IconDimensionOrgUnit16,\n },\n});\n\nexport const getDynamicDimensions = () => ({\n [DIMENSION_ID_ASSIGNED_CATEGORIES]: {\n id: DIMENSION_ID_ASSIGNED_CATEGORIES,\n name: i18n.t('Assigned Categories'),\n iconName: 'AssignedCategoriesIcon',\n icon: AssignedCategoriesIcon,\n [DIMENSION_PROP_NO_ITEMS]: true,\n },\n});\n\nexport const getPredefinedDimensions = () => ({\n ...getFixedDimensions(),\n ...getDynamicDimensions(),\n});\n\nexport const filterOutPredefinedDimensions = (dimensionIds: string[]) =>\n dimensionIds.filter(\n (dimensionId: string) =>\n !Object.keys(getPredefinedDimensions()).includes(dimensionId)\n );\n\nexport const getPredefinedDimensionProp = (\n dimensionId: string,\n propName: string\n) => ((getPredefinedDimensions() as any)[dimensionId] || {})[propName];\n\nexport const getDimensionById = (dimensionId: string) =>\n (getPredefinedDimensions() as any)[dimensionId];\n","export const TRANSFER_OPTIONS_WIDTH = '420px';\n\nexport const TRANSFER_SELECTED_WIDTH = '298px';\n\nexport const TRANSFER_HEIGHT = '512px';\n","import i18n from '@dhis2/d2-i18n';\n\nexport const formatList = (items: any) => {\n // Wrap Intl.ListFormat in try/catch as DHIS2 locales are not always ISO 639 compliant\n try {\n const formatter = new (Intl as any).ListFormat(i18n.language, {\n style: 'long',\n type: 'conjunction',\n });\n return formatter.format(items);\n } catch (error) {\n return items.join(', ');\n }\n};\n","// Axis\n\nexport const AXIS = {\n defaultValue: [],\n isValid: (axis: any) => Array.isArray(axis),\n};\n\n// Axis ids\n\nexport const AXIS_ID_COLUMNS = 'columns';\nexport const AXIS_ID_ROWS = 'rows';\nexport const AXIS_ID_FILTERS = 'filters';\nexport const AXIS_ID_YEAR_OVER_YEAR_SERIES = 'yearOverYearSeries';\nexport const AXIS_ID_YEAR_OVER_YEAR_CATEGORY = 'yearOverYearCategory';\n//export const AXIS_ID_POINTS_CATEGORY = 'pointsCategory'\n\nexport const DEFAULT_AXIS_IDS = [\n AXIS_ID_COLUMNS,\n AXIS_ID_ROWS,\n AXIS_ID_FILTERS,\n];\nexport const ALL_AXIS_IDS = [\n AXIS_ID_COLUMNS,\n AXIS_ID_ROWS,\n AXIS_ID_FILTERS,\n AXIS_ID_YEAR_OVER_YEAR_SERIES,\n AXIS_ID_YEAR_OVER_YEAR_CATEGORY,\n];\n","import { isObject } from 'lodash';\nimport { isString } from 'lodash';\n\n// Dimension\n\nexport const DIMENSION = {\n isValid: (dimension: any) => isObject(dimension),\n};\n\n// Props\n\nexport const DIMENSION_PROP_ID = {\n name: 'dimension',\n defaultValue: '',\n required: true,\n isValid: (prop: any) => isString(prop),\n};\n\nexport const DIMENSION_PROP_ITEMS = {\n name: 'items',\n defaultValue: [],\n required: false,\n isValid: (prop: any) => Array.isArray(prop),\n};\n\nexport const DIMENSION_PROP_FILTER = {\n name: 'filter',\n defaultValue: [],\n required: false,\n isValid: (prop: any) => isString(prop),\n};\n\nexport const DIMENSION_PROP_LEGEND_SET = {\n name: 'legendSet',\n defaultValue: [],\n required: false,\n isValid: (prop: any) => isString(prop),\n};\n\nexport const DIMENSION_PROP_PROGRAM_STAGE = {\n name: 'programStage',\n defaultValue: {},\n required: false,\n isValid: (prop: any) => isObject(prop),\n};\n\nexport const DIMENSION_PROP_REPETITION = {\n name: 'repetition',\n defaultValue: [],\n required: false,\n isValid: (prop: any) => Array.isArray(prop),\n};\n\nexport const DIMENSION_PROPS = [\n DIMENSION_PROP_ID,\n DIMENSION_PROP_ITEMS,\n DIMENSION_PROP_FILTER,\n DIMENSION_PROP_LEGEND_SET,\n DIMENSION_PROP_PROGRAM_STAGE,\n DIMENSION_PROP_REPETITION,\n];\n","import { DIMENSION_PROP_ID } from './dimension';\n\nexport const dimensionIs = (dimension: any, dimensionId: string) =>\n dimension[DIMENSION_PROP_ID.name] === dimensionId;\n","import { AXIS } from './axis';\nimport { dimensionIs } from './dimensionIs';\n\nexport const axisGetDimension = (axis: any, dimensionId: string) =>\n AXIS.isValid(axis) &&\n axis.find((dimension: any) => dimensionIs(dimension, dimensionId));\n","import { axisGetDimension } from './axisGetDimension';\n\nexport const axisHasDimension = (axis: any, dimensionId: string) =>\n Boolean(axisGetDimension(axis, dimensionId));\n","import { DEFAULT_AXIS_IDS } from './axis';\nimport { axisHasDimension } from './axisHasDimension';\nimport { dimensionIs } from './dimensionIs';\n\nexport const layoutReplaceDimension = (\n layout: any,\n dimensionId: any,\n items: any\n) => {\n const axisId = DEFAULT_AXIS_IDS.find((a) =>\n axisHasDimension(layout[a], dimensionId)\n );\n\n if (!axisId) {\n return Object.assign({}, layout);\n }\n\n const newAxisDimensions = layout[axisId].map((dimension: any) => {\n if (dimensionIs(dimension, dimensionId)) {\n return Object.assign({}, dimension, { items });\n }\n return dimension;\n });\n\n return Object.assign({}, layout, { [axisId]: newAxisDimensions });\n};\n","import { AXIS_ID_COLUMNS, AXIS_ID_ROWS, AXIS_ID_FILTERS } from './axis';\n\nexport const layoutGetAllAxes = (layout: any) => [\n layout[AXIS_ID_COLUMNS],\n layout[AXIS_ID_ROWS],\n layout[AXIS_ID_FILTERS],\n];\n","import { layoutGetAllAxes } from './layoutGetAllAxes';\n\nexport const layoutGetAllDimensions = (layout: any) =>\n layoutGetAllAxes(layout).reduce((allDimensions: any, axis: any) => {\n allDimensions.push(...axis);\n return allDimensions;\n }, []);\n","import { dimensionIs } from './dimensionIs';\nimport { layoutGetAllDimensions } from './layoutGetAllDimensions';\n\nexport const layoutGetDimension = (layout: any, dimensionId: string) =>\n layoutGetAllDimensions(layout).find((dimension: any) =>\n dimensionIs(dimension, dimensionId)\n );\n","import { DIMENSION, DIMENSION_PROP_ITEMS } from './dimension';\n\nexport const dimensionIsEmpty = (dimension: any) =>\n !(\n DIMENSION.isValid(dimension) &&\n DIMENSION_PROP_ITEMS.isValid(dimension[DIMENSION_PROP_ITEMS.name]) &&\n dimension[DIMENSION_PROP_ITEMS.name].length\n );\n","import { DIMENSION, DIMENSION_PROPS } from './dimension';\nimport { dimensionIsEmpty } from './dimensionIsEmpty';\n\nexport const dimensionIsValid = (\n dimension: any,\n { requireItems }: any = {}\n) => {\n if (!DIMENSION.isValid(dimension)) {\n return false;\n }\n\n const requiredProps = DIMENSION_PROPS.filter((prop) => prop.required);\n\n if (!requiredProps.every((prop) => prop.isValid(dimension[prop.name]))) {\n return false;\n }\n\n if (requireItems === true && dimensionIsEmpty(dimension)) {\n return false;\n }\n\n return true;\n};\n","import { DIMENSION_PROP_ITEMS } from './dimension';\nimport { dimensionIsValid } from './dimensionIsValid';\n\nexport const dimensionGetItems = (dimension: any) =>\n dimensionIsValid(dimension, { requireItems: true })\n ? dimension[DIMENSION_PROP_ITEMS.name]\n : DIMENSION_PROP_ITEMS.defaultValue;\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './dimensionSelectorHelper';\nexport * from './predefinedDimensions';\nexport * from './list';\nexport * from './axis';\nexport * from './axisHasDimension';\nexport * from './dimension';\nexport * from './dimensionSelectorHelper';\nexport * from './layoutReplaceDimension';\nexport * from './layoutGetDimension';\nexport * from './layoutGetAllDimensions';\nexport * from './dimensionGetItems';\n","import { colors, spacers } from '@dhis2/ui';\n\nexport default `\n .filterContainer {\n display: flex;\n margin-bottom: ${spacers.dp12};\n margin-top: ${spacers.dp8};\n }\n .emptyList {\n text-align: center;\n font-size: 14px;\n line-height: 16px;\n margin: ${spacers.dp24} 0 0;\n color: ${colors.grey700};\n }\n .rightHeader {\n font-size: 14px;\n font-weight: 400;\n }\n .leftHeader {\n padding: ${spacers.dp12} ${spacers.dp4};\n }\n .info-container {\n display: flex;\n margin-bottom: ${spacers.dp8};\n padding: ${spacers.dp8};\n background-color: ${colors.grey200};\n border-radius: 3px;\n }\n .info-text {\n padding-left: ${spacers.dp8};\n color: ${colors.grey900};\n font-size: 12px;\n line-height: 16px;\n }\n .calculation-button {\n margin: ${spacers.dp8} 0;\n }\n`;\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './DimensionSelector.style';\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './utils';\nexport * from './styles';\nexport * from './components';\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport const DAILY = 'DAILY';\nexport const WEEKLY = 'WEEKLY';\nexport const WEEKLYWED = 'WEEKLYWED';\nexport const WEEKLYTHU = 'WEEKLYTHU';\nexport const WEEKLYSAT = 'WEEKLYSAT';\nexport const WEEKLYSUN = 'WEEKLYSUN';\nexport const WEEKS_THIS_YEAR = 'WEEKS_THIS_YEAR';\nexport const BIWEEKLY = 'BIWEEKLY';\nexport const MONTHLY = 'MONTHLY';\nexport const BIMONTHLY = 'BIMONTHLY';\nexport const QUARTERLY = 'QUARTERLY';\nexport const SIXMONTHLY = 'SIXMONTHLY';\nexport const SIXMONTHLYAPR = 'SIXMONTHLYAPR';\nexport const YEARLY = 'YEARLY';\nexport const FINANCIAL = 'FINANCIAL';\nexport const FYNOV = 'FYNOV';\nexport const FYOCT = 'FYOCT';\nexport const FYJUL = 'FYJUL';\nexport const FYAPR = 'FYAPR';\n","import i18n from '@dhis2/d2-i18n';\nimport {\n DAILY,\n WEEKLY,\n BIWEEKLY,\n WEEKS_THIS_YEAR,\n MONTHLY,\n BIMONTHLY,\n QUARTERLY,\n SIXMONTHLY,\n FINANCIAL,\n YEARLY,\n} from './periodTypes';\n\nconst getDaysPeriodType = () => [\n { id: 'TODAY', name: i18n.t('Today') },\n { id: 'YESTERDAY', name: i18n.t('Yesterday') },\n { id: 'LAST_3_DAYS', name: i18n.t('Last 3 days') },\n { id: 'LAST_7_DAYS', name: i18n.t('Last 7 days') },\n { id: 'LAST_14_DAYS', name: i18n.t('Last 14 days') },\n { id: 'LAST_30_DAYS', name: i18n.t('Last 30 days') },\n { id: 'LAST_60_DAYS', name: i18n.t('Last 60 days') },\n { id: 'LAST_90_DAYS', name: i18n.t('Last 90 days') },\n { id: 'LAST_180_DAYS', name: i18n.t('Last 180 days') },\n];\n\nconst getWeeksPeriodType = () => [\n { id: 'THIS_WEEK', name: i18n.t('This week') },\n { id: 'LAST_WEEK', name: i18n.t('Last week') },\n { id: 'LAST_4_WEEKS', name: i18n.t('Last 4 weeks') },\n { id: 'LAST_12_WEEKS', name: i18n.t('Last 12 weeks') },\n { id: 'LAST_52_WEEKS', name: i18n.t('Last 52 weeks') },\n { id: WEEKS_THIS_YEAR, name: i18n.t('Weeks this year') },\n];\n\nconst getBiWeeksPeriodType = () => [\n { id: 'THIS_BIWEEK', name: i18n.t('This bi-week') },\n { id: 'LAST_BIWEEK', name: i18n.t('Last bi-week') },\n { id: 'LAST_4_BIWEEKS', name: i18n.t('Last 4 bi-weeks') },\n];\n\nconst getMonthsPeriodType = () => [\n { id: 'THIS_MONTH', name: i18n.t('This month') },\n { id: 'LAST_MONTH', name: i18n.t('Last month') },\n { id: 'LAST_3_MONTHS', name: i18n.t('Last 3 months') },\n { id: 'LAST_6_MONTHS', name: i18n.t('Last 6 months') },\n { id: 'LAST_12_MONTHS', name: i18n.t('Last 12 months') },\n {\n id: 'MONTHS_THIS_YEAR',\n name: i18n.t('Months this year'),\n },\n];\n\nconst getBiMonthsPeriodType = () => [\n { id: 'THIS_BIMONTH', name: i18n.t('This bi-month') },\n { id: 'LAST_BIMONTH', name: i18n.t('Last bi-month') },\n {\n id: 'LAST_6_BIMONTHS',\n name: i18n.t('Last 6 bi-months'),\n },\n {\n id: 'BIMONTHS_THIS_YEAR',\n name: i18n.t('Bi-months this year'),\n },\n];\n\nconst getQuartersPeriodType = () => [\n { id: 'THIS_QUARTER', name: i18n.t('This quarter') },\n { id: 'LAST_QUARTER', name: i18n.t('Last quarter') },\n { id: 'LAST_4_QUARTERS', name: i18n.t('Last 4 quarters') },\n {\n id: 'QUARTERS_THIS_YEAR',\n name: i18n.t('Quarters this year'),\n },\n];\n\nconst getSixMonthsPeriodType = () => [\n { id: 'THIS_SIX_MONTH', name: i18n.t('This six-month') },\n { id: 'LAST_SIX_MONTH', name: i18n.t('Last six-month') },\n {\n id: 'LAST_2_SIXMONTHS',\n name: i18n.t('Last 2 six-month'),\n },\n];\n\nconst getFinancialYearsPeriodType = () => [\n {\n id: 'THIS_FINANCIAL_YEAR',\n name: i18n.t('This financial year'),\n },\n {\n id: 'LAST_FINANCIAL_YEAR',\n name: i18n.t('Last financial year'),\n },\n {\n id: 'LAST_5_FINANCIAL_YEARS',\n name: i18n.t('Last 5 financial years'),\n },\n];\n\nconst getYearsPeriodType = () => [\n { id: 'THIS_YEAR', name: i18n.t('This year') },\n { id: 'LAST_YEAR', name: i18n.t('Last year') },\n { id: 'LAST_5_YEARS', name: i18n.t('Last 5 years') },\n { id: 'LAST_10_YEARS', name: i18n.t('Last 10 years') },\n];\n\nconst getOptions = () => [\n {\n id: DAILY,\n getPeriods: () => getDaysPeriodType(),\n name: i18n.t('Days'),\n },\n {\n id: WEEKLY,\n getPeriods: () => getWeeksPeriodType(),\n name: i18n.t('Weeks'),\n },\n {\n id: BIWEEKLY,\n getPeriods: () => getBiWeeksPeriodType(),\n name: i18n.t('Bi-weeks'),\n },\n {\n id: MONTHLY,\n getPeriods: () => getMonthsPeriodType(),\n name: i18n.t('Months'),\n },\n {\n id: BIMONTHLY,\n getPeriods: () => getBiMonthsPeriodType(),\n name: i18n.t('Bi-months'),\n },\n {\n id: QUARTERLY,\n getPeriods: () => getQuartersPeriodType(),\n name: i18n.t('Quarters'),\n },\n {\n id: SIXMONTHLY,\n getPeriods: () => getSixMonthsPeriodType(),\n name: i18n.t('Six-months'),\n },\n {\n id: FINANCIAL,\n getPeriods: () => getFinancialYearsPeriodType(),\n name: i18n.t('Financial Years'),\n },\n {\n id: YEARLY,\n getPeriods: () => getYearsPeriodType(),\n name: i18n.t('Years'),\n },\n];\n\nexport const getRelativePeriodsOptionsById = (id: string) =>\n getOptions().find((option) => option.id === id);\n\nexport const getRelativePeriodsOptions = () => getOptions();\n\nexport const getRelativePeriodIds = () =>\n Object.values(getOptions())\n .map((option) => option.getPeriods().map((period) => period.id))\n .flat();\n","import {\n generateFixedPeriods,\n getNowInCalendar,\n} from '@dhis2/multi-calendar-dates';\nimport i18n from '@dhis2/d2-i18n';\nimport {\n DAILY,\n WEEKLY,\n WEEKLYWED,\n WEEKLYTHU,\n WEEKLYSAT,\n WEEKLYSUN,\n BIWEEKLY,\n MONTHLY,\n BIMONTHLY,\n QUARTERLY,\n SIXMONTHLY,\n SIXMONTHLYAPR,\n YEARLY,\n FYNOV,\n FYOCT,\n FYJUL,\n FYAPR,\n} from './periodTypes';\n\nconst PERIOD_TYPE_REGEX = {\n [DAILY]: /^([0-9]{4})([0-9]{2})([0-9]{2})$/, // YYYYMMDD\n [WEEKLY]: /^([0-9]{4})()W([0-9]{1,2})$/, // YYYY\"W\"[1-53]\n [BIWEEKLY]: /^([0-9]{4})BiW([0-9]{1,2})$/, // YYYY\"BiW\"[1-27]\n [WEEKLYWED]: /^([0-9]{4})(Wed)W([0-9]{1,2})$/, // YYYY\"WedW\"[1-53]\n [WEEKLYTHU]: /^([0-9]{4})(Thu)W([0-9]{1,2})$/, // YYYY\"ThuW\"[1-53]\n [WEEKLYSAT]: /^([0-9]{4})(Sat)W([0-9]{1,2})$/, // YYYY\"SatW\"[1-53]\n [WEEKLYSUN]: /^([0-9]{4})(Sun)W([0-9]{1,2})$/, // YYYY\"SunW\"[1-53]\n [MONTHLY]: /^([0-9]{4})([0-9]{2})$/, // YYYYMM\n [BIMONTHLY]: /^([0-9]{4})([0-9]{2})B$/, // YYYY0[1-6]\"B\"\n [QUARTERLY]: /^([0-9]{4})Q([1234])$/, // YYYY\"Q\"[1-4]\n [SIXMONTHLY]: /^([0-9]{4})S([12])$/, // YYYY\"S\"[1/2]\n [SIXMONTHLYAPR]: /^([0-9]{4})AprilS([12])$/, // YYYY\"AprilS\"[1/2]\n // [SIXMONTHLYNOV]: /^([0-9]{4})NovS([12])$/, // YYYY\"NovS\"[1/2] Not supported?\n [YEARLY]: /^([0-9]{4})$/, // YYYY\n [FYNOV]: /^([0-9]{4})Nov$/, // YYYY\"Nov\"\n [FYOCT]: /^([0-9]{4})Oct$/, // YYYY\"Oct\"\n [FYJUL]: /^([0-9]{4})July$/, // YYYY\"July\"\n [FYAPR]: /^([0-9]{4})April$/, // YYYY\"April\"\n};\n\nconst getPeriods = ({\n periodType,\n config,\n fnFilter,\n periodSettings = {},\n}: any) => {\n const offset = parseInt(config.offset, 10);\n const isFilter = config.filterFuturePeriods;\n const isReverse = periodType.match(/^FY|YEARLY/)\n ? true\n : config.reversePeriods;\n\n const { calendar = 'gregory', locale = 'en' } = periodSettings as any;\n const now = getNowInCalendar(calendar);\n const year = (now.eraYear || now.year) + offset;\n\n const params = {\n periodType,\n year,\n calendar,\n locale,\n startingDay: config.startDay,\n };\n\n let periods = generateFixedPeriods(params);\n\n periods = isFilter ? fnFilter(periods) : periods;\n periods = !isReverse ? periods : periods.reverse();\n\n return periods;\n};\n\nconst getDailyPeriodType = (fnFilter: any, periodSettings?: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'DAILY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getWeeklyPeriodType = (\n weekObj: any,\n fnFilter: any,\n periodSettings: any\n) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'WEEKLY',\n config: {\n ...config,\n startDay: weekObj.startDay,\n },\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getBiWeeklyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'BIWEEKLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getMonthlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'MONTHLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getBiMonthlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'BIMONTHLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getQuarterlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'QUARTERLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getSixMonthlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'SIXMONTHLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getSixMonthlyAprilPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'SIXMONTHLYAPR',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getYearlyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'YEARLY',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getFinancialOctoberPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'FYOCT',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getFinancialNovemberPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'FYNOV',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getFinancialJulyPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'FYJUL',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst getFinancialAprilPeriodType = (fnFilter: any, periodSettings: any) => {\n return (config: any) => {\n return getPeriods({\n periodType: 'FYAPR',\n config,\n fnFilter,\n periodSettings,\n });\n };\n};\n\nconst filterFuturePeriods = (periods: any) => {\n const array = [];\n const now = new Date(Date.now());\n\n for (let i = 0; i < periods.length; i++) {\n if (new Date(periods[i].startDate) <= now) {\n array.push(periods[i]);\n }\n }\n\n return array;\n};\n\nconst getOptions = (periodSettings?: any) => {\n return [\n {\n id: DAILY,\n getPeriods: getDailyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Daily'),\n },\n {\n id: WEEKLY,\n getPeriods: getWeeklyPeriodType(\n { startDay: 1 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly'),\n },\n {\n id: WEEKLYWED,\n getPeriods: getWeeklyPeriodType(\n { startDay: 3 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly (Start Wednesday)'),\n },\n {\n id: WEEKLYTHU,\n getPeriods: getWeeklyPeriodType(\n { startDay: 4 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly (Start Thursday)'),\n },\n {\n id: WEEKLYSAT,\n getPeriods: getWeeklyPeriodType(\n { startDay: 6 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly (Start Saturday)'),\n },\n {\n id: WEEKLYSUN,\n getPeriods: getWeeklyPeriodType(\n { startDay: 7 },\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Weekly (Start Sunday)'),\n },\n {\n id: BIWEEKLY,\n getPeriods: getBiWeeklyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Bi-weekly'),\n },\n {\n id: MONTHLY,\n getPeriods: getMonthlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Monthly'),\n },\n {\n id: BIMONTHLY,\n getPeriods: getBiMonthlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Bi-monthly'),\n },\n {\n id: QUARTERLY,\n getPeriods: getQuarterlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Quarterly'),\n },\n {\n id: SIXMONTHLY,\n getPeriods: getSixMonthlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Six-monthly'),\n },\n {\n id: SIXMONTHLYAPR,\n getPeriods: getSixMonthlyAprilPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Six-monthly April'),\n },\n {\n id: YEARLY,\n getPeriods: getYearlyPeriodType(filterFuturePeriods, periodSettings),\n name: i18n.t('Yearly'),\n },\n {\n id: FYNOV,\n getPeriods: getFinancialNovemberPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Financial year (Start November)'),\n },\n {\n id: FYOCT,\n getPeriods: getFinancialOctoberPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Financial year (Start October)'),\n },\n {\n id: FYJUL,\n getPeriods: getFinancialJulyPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Financial year (Start July)'),\n },\n {\n id: FYAPR,\n getPeriods: getFinancialAprilPeriodType(\n filterFuturePeriods,\n periodSettings\n ),\n name: i18n.t('Financial year (Start April)'),\n },\n ];\n};\n\nexport const getFixedPeriodsOptionsById = (\n id: string,\n periodSettings?: any\n) => {\n return getOptions(periodSettings).find((option) => option.id === id);\n};\n\nexport const getFixedPeriodsOptions = () => getOptions();\n\nexport const getYearOffsetFromNow = (yearStr: any) =>\n parseInt(yearStr) - new Date(Date.now()).getFullYear();\n\nexport const parsePeriodCode = (code: any, allowedTypes: any) => {\n const periodTypes = Object.keys(PERIOD_TYPE_REGEX);\n let i = 0;\n let type = '';\n let match = undefined;\n\n while (i < periodTypes.length && !match) {\n type = periodTypes[i];\n match = code.match((PERIOD_TYPE_REGEX as any)[type]);\n i++;\n }\n\n if (\n !match ||\n (Array.isArray(allowedTypes) && !allowedTypes.some((t) => t === type))\n ) {\n return undefined;\n }\n\n const period = getFixedPeriodsOptionsById(type);\n const offset = getYearOffsetFromNow(match[1]);\n const options = period?.getPeriods({ offset });\n\n return period\n ? {\n id: period.id,\n name: period.name,\n year: match[1],\n options,\n }\n : null;\n};\n","export const filterPeriodTypesById = (\n allPeriodTypes = [],\n excludedPeriodTypes = []\n) =>\n allPeriodTypes.filter(\n (period: unknown) => !excludedPeriodTypes.includes((period as never)['id'])\n );\n\nexport * from './relativePeriods';\nexport * from './fixedPeriods';\nexport * from './periodTypes';\n","import i18n from '@dhis2/d2-i18n';\nimport {\n InputField,\n SingleSelectField,\n SingleSelectOption,\n spacers,\n} from '@dhis2/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { filterPeriodTypesById, getFixedPeriodsOptions } from './utils';\n\nconst FixedPeriodFilter = ({\n allowedPeriodTypes,\n excludedPeriodTypes,\n currentPeriodType,\n currentYear,\n onSelectPeriodType,\n onSelectYear,\n dataTest,\n}: any) => {\n const onlyAllowedTypeIsSelected =\n Array.isArray(allowedPeriodTypes) &&\n allowedPeriodTypes.length === 1 &&\n allowedPeriodTypes[0] === currentPeriodType;\n\n return (\n <>\n <div className=\"leftSection\">\n <SingleSelectField\n label={i18n.t('Period type')}\n onChange={({ selected }: any) => onSelectPeriodType(selected)}\n dense\n selected={currentPeriodType}\n disabled={onlyAllowedTypeIsSelected}\n className=\"filterElement\"\n dataTest={`${dataTest}-period-type`}\n >\n {(allowedPeriodTypes\n ? getFixedPeriodsOptions().filter((option: any) =>\n allowedPeriodTypes.some((type: any) => type === option.id)\n )\n : filterPeriodTypesById(\n getFixedPeriodsOptions() as any,\n excludedPeriodTypes\n )\n ).map((option) => (\n <SingleSelectOption\n key={option.id}\n value={option.id}\n label={option.name}\n dataTest={`${dataTest}-period-type-option-${option.id}`}\n />\n ))}\n </SingleSelectField>\n </div>\n <div className=\"rightSection\">\n <InputField\n label={i18n.t('Year')}\n className=\"filterElement\"\n type=\"number\"\n placeholder={i18n.t('Select year')}\n value={currentYear}\n onChange={({ value }: any) => onSelectYear(value)}\n dense\n dataTest={`${dataTest}-year`}\n ></InputField>\n </div>\n <style jsx>{`\n .leftSection {\n flex-grow: 1;\n }\n .leftSection > :global(.filterElement),\n .rightSection > :global(.filterElement) {\n margin: 0;\n }\n .rightSection {\n width: 120px;\n margin-left: ${spacers.dp8};\n }\n `}</style>\n </>\n );\n};\n\nFixedPeriodFilter.defaultProps = {\n excludedPeriodTypes: [],\n};\n\nFixedPeriodFilter.propTypes = {\n currentPeriodType: PropTypes.string.isRequired,\n currentYear: PropTypes.string.isRequired,\n onSelectPeriodType: PropTypes.func.isRequired,\n onSelectYear: PropTypes.func.isRequired,\n allowedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n dataTest: PropTypes.string,\n excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default FixedPeriodFilter;\n","import { SingleSelectField, SingleSelectOption } from '@dhis2/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport i18n from '@dhis2/d2-i18n';\nimport { filterPeriodTypesById, getRelativePeriodsOptions } from './utils';\nimport { spacers } from '@dhis2/ui';\n\nexport const RelativePeriodFilter = ({\n currentFilter,\n onSelectFilter,\n dataTest,\n excludedPeriodTypes,\n}: any) => (\n <div className=\"leftSection\">\n <SingleSelectField\n label={i18n.t('Period type')}\n onChange={({ selected }: any) => onSelectFilter(selected)}\n dense\n selected={currentFilter}\n className=\"filterElement\"\n dataTest={dataTest}\n >\n {filterPeriodTypesById(\n getRelativePeriodsOptions() as any,\n excludedPeriodTypes\n ).map((option: any) => (\n <SingleSelectOption\n key={option.id}\n value={option.id}\n label={option.name}\n dataTest={`${dataTest}-option-${option.id}`}\n />\n ))}\n </SingleSelectField>\n <style jsx>{`\n .leftSection {\n flex-grow: 1;\n }\n .leftSection > :global(.filterElement),\n .rightSection > :global(.filterElement) {\n margin: 0;\n }\n .rightSection {\n width: 120px;\n margin-left: ${spacers.dp8};\n }\n `}</style>\n </div>\n);\n\nRelativePeriodFilter.propTypes = {\n currentFilter: PropTypes.string.isRequired,\n onSelectFilter: PropTypes.func.isRequired,\n dataTest: PropTypes.string,\n excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n};\n","import React from 'react';\n\nexport default (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill=\"#6E7A8A\"\n d=\"M8,4 C10.209139,4 12,5.790861 12,8 C12,10.209139 10.209139,12 8,12 C5.790861,12 4,10.209139 4,8 C4,5.790861 5.790861,4 8,4 Z M8,5 C6.34314575,5 5,6.34314575 5,8 C5,9.65685425 6.34314575,11 8,11 C9.65685425,11 11,9.65685425 11,8 C11,6.34314575 9.65685425,5 8,5 Z M8.5,6 L8.5,7.5 L9.5,7.5 L9.5,8.5 L7.5,8.5 L7.5,6 L8.5,6 Z\"\n />\n </svg>\n);\n","import { getNowInCalendar } from '@dhis2/multi-calendar-dates';\nimport { TabBar, Tab, Transfer } from '@dhis2/ui';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react'; //TODO: Reimplement the icon.js\nimport i18n from '@dhis2/d2-i18n';\nimport {\n TRANSFER_HEIGHT,\n TRANSFER_OPTIONS_WIDTH,\n TRANSFER_SELECTED_WIDTH,\n TransferOption,\n} from '../../../shared';\nimport styles from '../../../shared/styles/DimensionSelector.style';\nimport FixedPeriodFilter from './FixedPeriodFilter';\nimport { RelativePeriodFilter } from './RelativePeriodFilter';\n\nimport {\n MONTHLY,\n QUARTERLY,\n getRelativePeriodsOptionsById,\n getFixedPeriodsOptionsById,\n} from './utils';\nimport PeriodIcon from '../../../shared/assets/DimensionItemIcons/PeriodIcon';\n\nconst PeriodTransfer = ({\n onSelect,\n dataTest,\n initialSelectedPeriods,\n rightFooter,\n excludedPeriodTypes,\n periodsSettings,\n}: any) => {\n const defaultRelativePeriodType = excludedPeriodTypes.includes(MONTHLY)\n ? getRelativePeriodsOptionsById(QUARTERLY)\n : getRelativePeriodsOptionsById(MONTHLY);\n const defaultFixedPeriodType = excludedPeriodTypes.includes(MONTHLY)\n ? getFixedPeriodsOptionsById(QUARTERLY, periodsSettings)\n : getFixedPeriodsOptionsById(MONTHLY, periodsSettings);\n\n const now = getNowInCalendar(periodsSettings.calendar);\n // use \".eraYear\" rather than \".year\" because in Ethiopian calendar, eraYear is what our users expect to see (for other calendars, it doesn't matter)\n // 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\n const defaultFixedPeriodYear = now.eraYear || now.year;\n\n const fixedPeriodConfig = (year: any) => ({\n offset: year - defaultFixedPeriodYear,\n filterFuturePeriods: false,\n reversePeriods: false,\n });\n\n const [allPeriods, setAllPeriods] = useState(\n defaultRelativePeriodType?.getPeriods() || []\n );\n const [selectedPeriods, setSelectedPeriods] = useState(\n initialSelectedPeriods\n );\n const [isRelative, setIsRelative] = useState(true);\n const [relativeFilter, setRelativeFilter] = useState({\n periodType: defaultRelativePeriodType?.id || '',\n });\n const [fixedFilter, setFixedFilter] = useState({\n periodType: defaultFixedPeriodType?.id || '',\n year: defaultFixedPeriodYear.toString(),\n });\n\n const onIsRelativeClick = (state: any) => {\n if (state !== isRelative) {\n setIsRelative(state);\n setAllPeriods(\n state\n ? getRelativePeriodsOptionsById(\n relativeFilter.periodType\n )?.getPeriods() || []\n : getFixedPeriodsOptionsById(\n fixedFilter.periodType,\n periodsSettings\n )?.getPeriods(fixedPeriodConfig(Number(fixedFilter.year))) || []\n );\n }\n };\n\n const renderLeftHeader = () => (\n <>\n <TabBar>\n <Tab\n selected={isRelative}\n onClick={() => onIsRelativeClick(true)}\n dataTest={`${dataTest}-relative-periods-button`}\n >\n {i18n.t('Relative periods')}\n </Tab>\n <Tab\n selected={!isRelative}\n onClick={() => onIsRelativeClick(false)}\n dataTest={`${dataTest}-fixed-periods-button`}\n >\n {i18n.t('Fixed periods')}\n </Tab>\n </TabBar>\n <div className=\"filterContainer\">\n {isRelative ? (\n <RelativePeriodFilter\n currentFilter={relativeFilter.periodType}\n onSelectFilter={(filter: any) => {\n setRelativeFilter({ periodType: filter });\n setAllPeriods(\n getRelativePeriodsOptionsById(filter)?.getPeriods() || []\n );\n }}\n dataTest={`${dataTest}-relative-period-filter`}\n excludedPeriodTypes={excludedPeriodTypes}\n />\n ) : (\n <FixedPeriodFilter\n currentPeriodType={fixedFilter.periodType}\n currentYear={fixedFilter.year}\n onSelectPeriodType={(periodType: string) => {\n onSelectFixedPeriods({\n periodType,\n year: fixedFilter.year,\n });\n }}\n onSelectYear={(year: any) => {\n onSelectFixedPeriods({\n periodType: fixedFilter.periodType,\n year,\n });\n }}\n dataTest={`${dataTest}-fixed-period-filter`}\n excludedPeriodTypes={excludedPeriodTypes}\n />\n )}\n </div>\n <style jsx>{styles}</style>\n </>\n );\n\n const renderRightHeader = () => (\n <>\n <p className=\"rightHeader\">{i18n.t('Selected Periods')}</p>\n <style jsx>{styles}</style>\n </>\n );\n\n const onSelectFixedPeriods = (filter: any) => {\n setFixedFilter(filter);\n setAllPeriods(\n (getFixedPeriodsOptionsById(\n filter.periodType,\n periodsSettings\n )?.getPeriods(fixedPeriodConfig(Number(filter.year))) || []) as any\n );\n };\n\n const renderEmptySelection = () => (\n <>\n <p className=\"emptyList\">{i18n.t('No periods selected')}</p>\n <style jsx>{styles}</style>\n </>\n );\n\n return (\n <Transfer\n onChange={({ selected }: any) => {\n const formattedItems = selected.map((id: string) => ({\n id,\n name: [...allPeriods, ...selectedPeriods].find(\n (item) => item.id === id\n ).name,\n }));\n setSelectedPeriods(formattedItems);\n onSelect(formattedItems);\n }}\n selected={selectedPeriods.map((period: any) => period.id)}\n leftHeader={renderLeftHeader()}\n enableOrderChange\n height={TRANSFER_HEIGHT}\n optionsWidth={TRANSFER_OPTIONS_WIDTH}\n selectedWidth={TRANSFER_SELECTED_WIDTH}\n selectedEmptyComponent={renderEmptySelection()}\n rightHeader={renderRightHeader()}\n rightFooter={rightFooter}\n options={[...allPeriods, ...selectedPeriods].map(({ id, name }) => ({\n label: name,\n value: id,\n }))}\n renderOption={(props: any) => (\n <TransferOption\n {...props}\n icon={PeriodIcon}\n dataTest={`${dataTest}-transfer-option`}\n />\n )}\n dataTest={`${dataTest}-transfer`}\n ></Transfer>\n );\n};\n\nPeriodTransfer.defaultProps = {\n initialSelectedPeriods: [],\n excludedPeriodTypes: [],\n periodsSettings: {\n calendar: 'gregory',\n locale: 'en',\n },\n};\n\nPeriodTransfer.propTypes = {\n onSelect: PropTypes.func.isRequired,\n dataTest: PropTypes.string,\n excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n initialSelectedPeriods: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n })\n ),\n periodsSettings: PropTypes.shape({\n calendar: PropTypes.string,\n locale: PropTypes.string,\n }),\n rightFooter: PropTypes.node,\n};\n\nexport default PeriodTransfer;\n","import { useDataQuery } from '@dhis2/app-runtime';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { DIMENSION_ID_PERIOD } from '../../../shared/utils/predefinedDimensions';\nimport PeriodTransfer from './PeriodTransfer';\n\nconst userSettingsQuery = {\n userSettings: {\n resource: 'userSettings',\n params: {\n key: ['keyUiLocale'],\n },\n },\n};\n\nexport const PeriodDimension = ({\n onSelect,\n selectedPeriods,\n rightFooter,\n excludedPeriodTypes,\n systemInfo,\n}: any) => {\n const result = useDataQuery(userSettingsQuery);\n\n const { calendar = 'gregory' } = systemInfo as any;\n // const { data: { userSettings: { keyUiLocale: locale } = {} } = {} } =\n // result as any;\n\n const locale =\n result.data && result.data['userSettings']\n ? (result.data['userSettings'] as any)['keyUiLocale']\n : '';\n\n const periodsSettings = { calendar, locale };\n\n const selectPeriods = (periods: any[]) => {\n onSelect({\n dimensionId: DIMENSION_ID_PERIOD,\n items: periods,\n });\n };\n return (\n <PeriodTransfer\n onSelect={selectPeriods}\n initialSelectedPeriods={selectedPeriods}\n rightFooter={rightFooter}\n dataTest={'period-dimension'}\n excludedPeriodTypes={excludedPeriodTypes}\n periodsSettings={periodsSettings}\n />\n );\n};\n\nPeriodDimension.propTypes = {\n onSelect: PropTypes.func.isRequired,\n excludedPeriodTypes: PropTypes.arrayOf(PropTypes.string),\n rightFooter: PropTypes.node,\n selectedPeriods: PropTypes.array,\n systemInfo: PropTypes.object,\n};\n\nPeriodDimension.defaultProps = {\n selectedPeriods: [],\n};\n","import {\n Component,\n Input,\n ElementRef,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { DataProvider } from '@dhis2/app-runtime';\nimport {\n Modal,\n ModalContent,\n ModalActions,\n ButtonStrip,\n Button,\n ModalTitle,\n} from '@dhis2/ui';\nimport { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';\nimport React, { useState } from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport { firstValueFrom } from 'rxjs';\nimport { PeriodDimension } from '../../components/PeriodDimension';\nimport {\n BIMONTHLY,\n BIWEEKLY,\n DAILY,\n MONTHLY,\n WEEKLY,\n WEEKLYSAT,\n WEEKLYSUN,\n WEEKLYTHU,\n WEEKLYWED,\n} from '../../components/utils';\nimport { ReactWrapperComponent } from '../../../react-wrapper/react-wrapper.component';\n\ntype PeriodSelectionEvent = {\n dimensionId: string;\n items: Record<string, unknown>[];\n};\n\n@Component({\n selector: 'ng-dhis2-ui-period-selector-modal',\n template: `<ng-container></ng-container>`,\n styles: [\n `\n ::ng-deep .layer {\n z-index: 2 !important;\n }\n `,\n ],\n})\nexport class PeriodSelectorModalComponent extends ReactWrapperComponent {\n @Input() selectedPeriods: any[] = [];\n\n @Output() cancel = new EventEmitter();\n @Output() confirm = new EventEmitter();\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private httpClient: NgxDhis2HttpClientService\n ) {\n super(elementRef);\n }\n\n override async ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n const systemInfo = await firstValueFrom(this.httpClient.systemInfo());\n const excludedPeriodTypes = this.getExcludedPeriodTypes(systemInfo);\n\n this.component = () => {\n const [selected, setSelected] = useState(this.selectedPeriods);\n return (\n <DataProvider>\n {\n <Modal position=\"middle\" large>\n <ModalTitle>Period</ModalTitle>\n <ModalContent>\n <PeriodDimension\n selectedPeriods={selected}\n onSelect={(selectionEvent: PeriodSelectionEvent) =>\n setSelected(selectionEvent.items)\n }\n excludedPeriodTypes={excludedPeriodTypes}\n systemInfo={systemInfo}\n />\n </ModalContent>\n <ModalActions>\n <ButtonStrip end>\n <Button\n onClick={() => {\n this.onCancel();\n }}\n >\n Cancel\n </Button>\n <Button\n primary\n disabled={selected.length === 0}\n onClick={() => {\n this.onConfirm(selected);\n }}\n >\n Confirm\n </Button>\n </ButtonStrip>\n </ModalActions>\n </Modal>\n }\n </DataProvider>\n );\n };\n this.render();\n }\n\n onCancel() {\n this.cancel.emit();\n }\n\n onConfirm(selectedItems: any[]) {\n this.confirm.emit(selectedItems);\n }\n\n getExcludedPeriodTypes = (systemSettings: any = {}) => {\n const types = [];\n if (systemSettings['hideDailyPeriods']) {\n types.push(DAILY);\n }\n if (systemSettings['hideWeeklyPeriods']) {\n types.push(WEEKLY, WEEKLYWED, WEEKLYTHU, WEEKLYSAT, WEEKLYSUN);\n }\n if (systemSettings['hideBiWeeklyPeriods']) {\n types.push(BIWEEKLY);\n }\n if (systemSettings['hideMonthlyPeriods']) {\n types.push(MONTHLY);\n }\n if (systemSettings['hideBiMonthlyPeriods']) {\n types.push(BIMONTHLY);\n }\n return types;\n };\n}\n","import {\n Component,\n Input,\n ElementRef,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { DataProvider } from '@dhis2/app-runtime';\nimport { NgxDhis2HttpClientService } from '@iapps/ngx-dhis2-http-client';\nimport React from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport { firstValueFrom } from 'rxjs';\nimport { PeriodDimension } from '../../components/PeriodDimension';\nimport {\n BIMONTHLY,\n BIWEEKLY,\n DAILY,\n MONTHLY,\n WEEKLY,\n WEEKLYSAT,\n WEEKLYSUN,\n WEEKLYTHU,\n WEEKLYWED,\n} from '../../components/utils';\nimport { ReactWrapperComponent } from '../../../react-wrapper/react-wrapper.component';\n\ntype PeriodSelectionEvent = {\n dimensionId: string;\n items: Record<string, unknown>[];\n};\n\n@Component({\n selector: 'ng-dhis2-ui-period-selector',\n template: `<ng-container></ng-container>`,\n styles: [\n `\n ::ng-deep .content-container {\n z-index: 0 !important;\n }\n `,\n ],\n})\nexport class PeriodSelectorComponent extends ReactWrapperComponent {\n @Input() selectedPeriods: any[] = [];\n\n @Output() selectPeriods = new EventEmitter();\n\n override props: Record<string, unknown> = {\n onSelect: (e: any) => {\n this.onSelectItems(e);\n },\n };\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private httpClient: NgxDhis2HttpClientService\n ) {\n super(elementRef);\n }\n\n override async ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n const systemInfo = await firstValueFrom(this.httpClient.systemInfo());\n const excludedPeriodTypes = this.getExcludedPeriodTypes(systemInfo);\n\n this.component = () => (\n <DataProvider>\n {\n <PeriodDimension\n selectedPeriods={this.selectedPeriods}\n onSelect={(selectionEvent: PeriodSelectionEvent) =>\n this.onSelectItems(selectionEvent)\n }\n excludedPeriodTypes={excludedPeriodTypes}\n systemInfo={systemInfo}\n />\n }\n </DataProvider>\n );\n this.render();\n }\n\n onSelectItems(selectionEvent: PeriodSelectionEvent) {\n this.selectPeriods.emit(selectionEvent.items);\n }\n\n getExcludedPeriodTypes = (systemSettings: any = {}) => {\n const types = [];\n if (systemSettings['hideDailyPeriods']) {\n types.push(DAILY);\n }\n if (systemSettings['hideWeeklyPeriods']) {\n types.push(WEEKLY, WEEKLYWED, WEEKLYTHU, WEEKLYSAT, WEEKLYSUN);\n }\n if (systemSettings['hideBiWeeklyPeriods']) {\n types.push(BIWEEKLY);\n }\n if (systemSettings['hideMonthlyPeriods']) {\n types.push(MONTHLY);\n }\n if (systemSettings['hideBiMonthlyPeriods']) {\n types.push(BIMONTHLY);\n }\n return types;\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedDhis2UiModule } from '../../shared/shared.module';\nimport { PeriodSelectorModalComponent } from './containers/period-selector-modal/period-selector-modal.component';\nimport { PeriodSelectorComponent } from './containers/period-selector/period-selector.component';\n\n@NgModule({\n imports: [CommonModule, SharedDhis2UiModule],\n declarations: [PeriodSelectorComponent, PeriodSelectorModalComponent],\n exports: [PeriodSelectorComponent, PeriodSelectorModalComponent],\n})\nexport class PeriodSelectorModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './period-selector.module';\nexport { PeriodSelectorComponent } from './containers/period-selector/period-selector.component';\nexport { PeriodSelectorModalComponent } from './containers/period-selector-modal/period-selector-modal.component';\n","const LEVEL_ID_PREFIX = 'LEVEL';\nconst GROUP_ID_PREFIX = 'OU_GROUP';\nexport const USER_ORG_UNIT = 'USER_ORGUNIT';\nexport const USER_ORG_UNIT_CHILDREN = 'USER_ORGUNIT_CHILDREN';\nexport const USER_ORG_UNIT_GRANDCHILDREN = 'USER_ORGUNIT_GRANDCHILDREN';\n\nconst hasGroupPrefix = (id: string) =>\n id.substr(0, GROUP_ID_PREFIX.length) === GROUP_ID_PREFIX;\n\nconst hasLevelPrefix = (id: string) => id.includes(LEVEL_ID_PREFIX);\n\nconst stripLevelPrefix = (id: string) =>\n hasLevelPrefix(id) ? id.substr(LEVEL_ID_PREFIX.length + 1) : id;\n\nconst stripGroupPrefix = (id: string) =>\n hasGroupPrefix(id) ? id.substr(GROUP_ID_PREFIX.length + 1) : id;\n\nconst removePrefix = (id: string) => stripGroupPrefix(stripLevelPrefix(id));\n\nexport const ouIdHelper = Object.freeze({\n addLevelPrefix: (id: string) => `${LEVEL_ID_PREFIX}-${removePrefix(id)}`,\n addGroupPrefix: (id: string) => `${GROUP_ID_PREFIX}-${removePrefix(id)}`,\n removePrefix,\n hasGroupPrefix,\n hasLevelPrefix,\n});\n","import {\n DIMENSION_ID_ORGUNIT,\n dimensionGetItems,\n layoutGetDimension,\n layoutReplaceDimension,\n} from '../../../../../shared';\n\nimport { ouIdHelper } from '../ouIdHelper';\n\nconst isOuLevelIntId = (id: string) =>\n ouIdHelper.hasLevelPrefix(id)\n ? Number.isInteger(parseInt(ouIdHelper.removePrefix(id), 10))\n : false;\n\nconst replaceNumericOuLevelWithUid = (ouLevels: any) => (item: any) => {\n if (!isOuLevelIntId(item.id)) {\n return item;\n }\n\n const ouIntId = parseInt(ouIdHelper.removePrefix(item.id), 10);\n const ouUid = ouLevels.find(\n (l: any) => parseInt(l.level, 10) === ouIntId\n )?.id;\n\n return ouUid\n ? Object.assign({}, item, { id: ouIdHelper.addLevelPrefix(ouUid) })\n : item;\n};\n\nexport const convertOuLevelsToUids = (ouLevels: any, layout: any) => {\n const ouDimension = layoutGetDimension(layout, DIMENSION_ID_ORGUNIT);\n\n const hasNumericOuLevels =\n ouDimension &&\n dimensionGetItems(ouDimension).some((item: any) => isOuLevelIntId(item.id));\n\n if (hasNumericOuLevels) {\n const replaceNumericOuLevel = replaceNumericOuLevelWithUid(ouLevels);\n\n const updatedOuItems = dimensionGetItems(ouDimension).map(\n replaceNumericOuLevel\n );\n\n return layoutReplaceDimension(layout, DIMENSION_ID_ORGUNIT, updatedOuItems);\n }\n\n return layout;\n};\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './ouIdHelper';\nexport * from './ouLevelUtils';\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nexport * from './OrgUnitDimension';\nexport * from './utils';\n","import { colors, spacers } from '@dhis2/ui';\n\nexport const styles = `\n .container {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n\n .orgUnitTreeWrapper {\n height: 382px;\n flex-grow: 1;\n overflow: auto;\n }\n\n .orgUnitTreeWrapper > :global(*) {\n flex-grow: 1;\n }\n\n .disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .disabled > :global(*) {\n pointer-events: none;\n }\n\n .userOrgUnitsWrapper {\n display: flex;\n background: ${colors.grey200};\n padding: ${spacers.dp8} ${spacers.dp8} ${spacers.dp8} ${spacers.dp24};\n margin-bottom: ${spacers.dp12};\n }\n\n .userOrgUnitsWrapper > :global(*) {\n margin-right: ${spacers.dp48};\n }\n\n .selectsWrapper {\n display: flex;\n align-items: flex-start;\n gap: ${spacers.dp8};\n margin-top: ${spacers.dp12};\n }\n\n .selectsWrapper.hidden {\n display: none;\n }\n\n .selectsWrapper > :global(*) {\n width: 50%;\n }\n\n .summaryWrapper {\n display: inline-flex;\n align-items: center;\n margin-top: ${spacers.dp8};\n }\n\n .warningWrapper {\n display: inline-flex;\n align-items: center;\n }\n\n .warningText {\n margin-left: ${spacers.dp8};\n font-size: 14px;\n line-height: 18px;\n color: ${colors.red600};\n }\n\n .summaryText {\n font-size: 14px;\n line-height: 18px;\n color: ${colors.grey700};\n }\n\n .deselectButton {\n display: inline-block;\n margin-left: ${spacers.dp8};\n }\n`;\n","import { useDataEngine } from '@dhis2/app-runtime';\nimport i18n from '@dhis2/d2-i18n';\nimport {\n Button,\n Checkbox,\n colors,\n IconWarningFilled16,\n MultiSelect,\n MultiSelectOption,\n OrganisationUnitTree,\n} from '@dhis2/ui';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport {\n DIMENSION_ID_ORGUNIT,\n DIMENSION_ID_ORGUNIT_LEVEL,\n formatList,\n} from '../../../shared';\nimport {\n ouIdHelper,\n USER_ORG_UNIT,\n USER_ORG_UNIT_CHILDREN,\n USER_ORG_UNIT_GRANDCHILDREN,\n} from '../components';\nimport { styles } from './styles/OrgUnitDimension.style';\n\nconst DYNAMIC_ORG_UNITS = [\n USER_ORG_UNIT,\n USER_ORG_UNIT_CHILDREN,\n USER_ORG_UNIT_GRANDCHILDREN,\n];\n\nconst OrgUnitDimension = ({\n roots,\n selected,\n onSelect,\n hideGroupSelect,\n hideLevelSelect,\n hideUserOrgUnits,\n warning,\n orgUnitGroupPromise,\n orgUnitLevelPromise,\n}: any) => {\n const [ouLevels, setOuLevels] = useState([]);\n const [ouGroups, setOuGroups] = useState([]);\n const [selectedItems, setSelectedItems] = useState(selected);\n const dataEngine = useDataEngine();\n\n const onSelectItems = (selectedItem: any) => {\n const { id, checked, displayName, path } = selectedItem;\n let result = [...selectedItems];\n\n if (checked && DYNAMIC_ORG_UNITS.includes(id)) {\n result = [\n ...result.filter((item) => DYNAMIC_ORG_UNITS.includes(item.id)),\n { id, displayName, type: 'USER_ORGUNIT' },\n ];\n } else if (checked) {\n result.push({ id, path, name: displayName, type: 'ORGUNIT' });\n } else {\n result = [...result.filter((item) => item.id !== id)];\n }\n\n setSelectedItems(result as any);\n\n onSelect({\n dimensionId: DIMENSION_ID_ORGUNIT,\n items: result,\n });\n };\n\n const clearSelection = () => {\n setSelectedItems([]);\n onSelect({\n dimensionId: DIMENSION_ID_ORGUNIT,\n items: [],\n });\n };\n\n useEffect(() => {\n const doFetchOuLevels = async () => {\n const result = await orgUnitLevelPromise;\n result.sort((a: any, b: any) => (a.level > b.level ? 1 : -1));\n setOuLevels(result);\n };\n const doFetchOuGroups = async () => {\n const result = await orgUnitGroupPromise;\n setOuGroups(result);\n };\n\n !hideLevelSelect && doFetchOuLevels();\n !hideGroupSelect && doFetchOuGroups();\n }, [dataEngine, hideLevelSelect, hideGroupSelect]);\n\n const onLevelChange = (ids: string[]) => {\n const items = ids.map((id: string) => ({\n id: ouIdHelper.addLevelPrefix(id),\n name: (ouLevels?.find((level: any) => level.id === id) as any)\n ?.displayName,\n type: 'ORGUNIT_LEVEL',\n }));\n\n const updatedSelectedItems = [\n ...selectedItems.filter((ou: any) => !ouIdHelper.hasLevelPrefix(ou.id)),\n ...items,\n ];\n\n setSelectedItems(updatedSelectedItems);\n\n onSelect({\n dimensionId: DIMENSION_ID_ORGUNIT,\n items: updatedSelectedItems,\n });\n };\n\n const onGroupChange = (ids: string[]) => {\n const items = ids.map((id: string) => ({\n id: ouIdHelper.addGroupPrefix(id),\n name: ((ouGroups?.find((group: any) => group.id === id) || {}) as any)\n .displayName,\n type: 'ORGUNIT_GROUP',\n }));\n\n const updatedSelectedItems = [\n ...selectedItems.filter((ou: any) => !ouIdHelper.hasGroupPrefix(ou.id)),\n ...items,\n ];\n\n setSelectedItems(updatedSelectedItems);\n\n onSelect({\n dimensionId: DIMENSION_ID_ORGUNIT,\n items: updatedSelectedItems,\n });\n };\n\n const getSummary = () => {\n let summary;\n if (selectedItems.length) {\n const numberOfOrgUnits = selectedItems.filter(\n (item: any) =>\n !DYNAMIC_ORG_UNITS.includes(item.id) &&\n !ouIdHelper.hasLevelPrefix(item.id) &&\n !ouIdHelper.hasGroupPrefix(item.id)\n ).length;\n\n const numberOfLevels = selectedItems.filter((item: any) =>\n ouIdHelper.hasLevelPrefix(item.id)\n ).length;\n const numberOfGroups = selectedItems.filter((item: any) =>\n ouIdHelper.hasGroupPrefix(item.id)\n ).length;\n const userOrgUnits = selectedItems.filter((item: any) =>\n DYNAMIC_ORG_UNITS.includes(item.id)\n );\n\n const parts = [];\n\n if (numberOfOrgUnits) {\n parts.push(\n i18n.t('{{count}} org units', {\n count: numberOfOrgUnits,\n defaultValue: '{{count}} org unit',\n defaultValue_plural: '{{count}} org units',\n })\n );\n }\n if (numberOfLevels) {\n parts.push(\n i18n.t('{{count}} levels', {\n count: numberOfLevels,\n defaultValue: '{{count}} level',\n defaultValue_plural: '{{count}} levels',\n })\n );\n }\n if (numberOfGroups) {\n parts.push(\n i18n.t('{{count}} groups', {\n count: numberOfGroups,\n defaultValue: '{{count}} group',\n defaultValue_plural: '{{count}} groups',\n })\n );\n }\n userOrgUnits.forEach((orgUnit: any) => {\n parts.push(orgUnit.name || orgUnit.displayName);\n });\n summary = i18n.t('Selected: {{commaSeparatedListOfOrganisationUnits}}', {\n keySeparator: '>',\n nsSeparator: '|',\n commaSeparatedListOfOrganisationUnits: formatList(parts),\n });\n } else {\n summary = i18n.t('Nothing selected');\n }\n\n return summary;\n };\n\n return (\n <div className=\"container\">\n {!hideUserOrgUnits && (\n <div className=\"userOrgUnitsWrapper\">\n <Checkbox\n label={i18n.t('User organisation unit')}\n checked={selectedItems.some(\n (item: any) => item.id === USER_ORG_UNIT\n )}\n onChange={({ checked }: any) =>\n onSelectItems({\n id: USER_ORG_UNIT,\n checked,\n displayName: i18n.t('User organisation unit'),\n })\n }\n dense\n />\n <Checkbox\n label={i18n.t('User sub-units')}\n checked={selectedItems.some(\n (item: any) => item.id === USER_ORG_UNIT_CHILDREN\n )}\n onChange={({ checked }: any) =>\n onSelectItems({\n id: USER_ORG_UNIT_CHILDREN,\n checked,\n displayName: i18n.t('User sub-units'),\n })\n }\n dense\n />\n <Checkbox\n label={i18n.t('User sub-x2-units')}\n checked={selectedItems.some(\n (item: any) => item.id === USER_ORG_UNIT_GRANDCHILDREN\n )}\n onChange={({ checked }: any) =>\n onSelectItems({\n id: USER_ORG_UNIT_GRANDCHILDREN,\n checked,\n displayName: i18n.t('User sub-x2-units'),\n })\n }\n dense\n />\n </div>\n )}\n <div\n className={cx('orgUnitTreeWrapper', {\n disabled: selectedItems.some((item: any) =>\n DYNAMIC_ORG_UNITS.includes(item.id)\n ),\n })}\n >\n <OrganisationUnitTree\n roots={roots}\n initiallyExpanded={[\n ...(roots.length === 1 ? [`/${roots[0]}`] : []),\n ...selectedItems\n .filter(\n (item: any) =>\n !DYNAMIC_ORG_UNITS.includes(item.id) &&\n !ouIdHelper.hasLevelPrefix(item.id) &&\n !ouIdHelper.hasGroupPrefix(item.id)\n )\n .map((item: any) =>\n item.path.substring(0, item.path.lastIndexOf('/'))\n )\n .filter((path: any) => path),\n ]}\n selected={selectedItems\n .filter(\n (item: any) =>\n !DYNAMIC_ORG_UNITS.includes(item.id) &&\n !ouIdHelper.hasLevelPrefix(item.id) &&\n !ouIdHelper.hasGroupPrefix(item.id)\n )\n .map((item: any) => item.path)}\n onChange={onSelectItems}\n dataTest={'org-unit-tree'}\n />\n </div>\n <div\n className={cx('selectsWrapper', {\n disabled: selectedItems.some((item: any) =>\n DYNAMIC_ORG_UNITS.includes(item.id)\n ),\n hidden: hideLevelSelect && hideGroupSelect,\n })}\n >\n {!hideLevelSelect && (\n <MultiSelect\n selected={\n ouLevels.length\n ? selectedItems\n .filter((item: any) => ouIdHelper.hasLevelPrefix(item.id))\n .map((item: any) => ouIdHelper.removePrefix(item.id))\n : []\n }\n onChange={({ selected }: any) => onLevelChange(selected)}\n placeholder={i18n.t('Select a level')}\n loading={!ouLevels.length}\n dense\n dataTest={'org-unit-level-select'}\n >\n {ouLevels.map((level: any) => (\n <MultiSelectOption\n key={level.id}\n value={level.id}\n label={level.displayName}\n dataTest={`org-unit-level-select-option-${level.id}`}\n />\n ))}\n </MultiSelect>\n )}\n {!hideGroupSelect && (\n <MultiSelect\n selected={\n ouGroups.length\n ? selectedItems\n .filter((item: any) => ouIdHelper.hasGroupPrefix(item.id))\n .map((item: any) => ouIdHelper.removePrefix(item.id))\n : []\n }\n onChange={({ selected }: any) => onGroupChange(selected)}\n placeholder={i18n.t('Select a group')}\n loading={!ouGroups.length}\n dense\n dataTest={'org-unit-group-select'}\n >\n {ouGroups.map((group: any) => (\n <MultiSelectOption\n key={group.id}\n value={group.id}\n label={group.displayName}\n dataTest={`org-unit-group-select-option-${group.id}`}\n />\n ))}\n </MultiSelect>\n )}\n </div>\n <div className=\"summaryWrapper\">\n {warning ? (\n <div className=\"warningWrapper\">\n <IconWarningFilled16 color={colors.red500} />\n <span className=\"warningText\">{warning}</span>\n </div>\n ) : (\n <span className=\"summaryText\">{getSummary()}</span>\n )}\n <div className=\"deselectButton\">\n <Button\n secondary\n small\n onClick={clearSelection}\n disabled={!selectedItems.length}\n >\n {i18n.t('Deselect all')}\n </Button>\n </div>\n </div>\n <style jsx>{styles}</style>\n </div>\n );\n};\n\nOrgUnitDimension.defaultProps = {\n hideGroupSelect: false,\n hideLevelSelect: false,\n hideUserOrgUnits: false,\n};\n\nOrgUnitDimension.propTypes = {\n hideGroupSelect: PropTypes.bool,\n hideLevelSelect: PropTypes.bool,\n hideUserOrgUnits: PropTypes.bool,\n roots: PropTypes.arrayOf(PropTypes.string),\n selected: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n path: PropTypes.string,\n })\n ),\n warning: PropTypes.string,\n onSelect: PropTypes.func,\n orgUnitGroupPromise: PropTypes.any,\n orgUnitLevelPromise: PropTypes.any,\n};\n\nexport default OrgUnitDimension;\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nexport type OrganisationUnitSelectionUsageType = 'DATA_ENTRY' | 'DATA_VIEW';\nexport class OrganisationUnitSelectionConfig {\n hideGroupSelect!: boolean;\n hideLevelSelect!: boolean;\n hideUserOrgUnits!: boolean;\n usageType!: OrganisationUnitSelectionUsageType;\n minLevel?: number;\n allowSingleSelection?: boolean;\n batchSize?: number;\n additionalQueryFields?: string[];\n\n constructor(params?: Partial<OrganisationUnitSelectionConfig>) {\n this.hideGroupSelect = params?.hideGroupSelect || false;\n this.hideLevelSelect = params?.hideLevelSelect || false;\n this.hideUserOrgUnits = params?.hideUserOrgUnits || false;\n this.usageType = params?.usageType || 'DATA_ENTRY';\n this.minLevel = params?.minLevel;\n this.allowSingleSelection = params?.allowSingleSelection || false;\n this.batchSize = params?.batchSize;\n this.additionalQueryFields = params?.additionalQueryFields;\n }\n}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './organisation-unit-config.model';\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { Provider } from '@dhis2/app-runtime';\nimport { NgxDhis2HttpClientService, User } from '@iapps/ngx-dhis2-http-client';\nimport React from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport { firstValueFrom, map } from 'rxjs';\nimport { ReactWrapperComponent } from '../../../react-wrapper';\nimport OrgUnitDimension from '../../components/OrgUnitDimension';\nimport {\n OrganisationUnitSelectionConfig,\n OrganisationUnitSelectionUsageType,\n} from '../../models';\n\ntype OrganisationUnitSelectionEvent = {\n dimensionId: string;\n items: Record<string, unknown>[];\n};\n\n@Component({\n selector: 'ng-dhis2-ui-org-unit-selector',\n template: '<ng-container><ng-container>',\n})\nexport class OrganisationUnitSelectorComponent extends ReactWrapperComponent {\n @Input() selectedOrgUnits: any[] = [];\n @Input() orgUnitSelectionConfig: OrganisationUnitSelectionConfig =\n new OrganisationUnitSelectionConfig();\n\n @Output() selectOrgUnits = new EventEmitter();\n\n override props: Record<string, unknown> = {\n onSelect: (e: any) => {\n this.onSelectItems(e);\n },\n };\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private httpClient: NgxDhis2HttpClientService\n ) {\n super(elementRef);\n }\n\n override async ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n const rootOrgUnits = await this.getRootOrgUnits();\n\n const config = await this.getAppConfig();\n\n this.component = () => (\n <Provider config={config}>\n {\n <OrgUnitDimension\n selected={this.selectedOrgUnits}\n hideGroupSelect={this.orgUnitSelectionConfig.hideGroupSelect}\n hideLevelSelect={this.orgUnitSelectionConfig.hideLevelSelect}\n hideUserOrgUnits={this.orgUnitSelectionConfig.hideUserOrgUnits}\n onSelect={(selectionEvent: OrganisationUnitSelectionEvent) =>\n this.onSelectItems(selectionEvent)\n }\n orgUnitGroupPromise={this.getOrgUnitGroups()}\n orgUnitLevelPromise={this.getOrgUnitLevels()}\n roots={rootOrgUnits}\n />\n }\n </Provider>\n );\n\n this.render();\n }\n\n private async getAppConfig() {\n const systemInfo = (await firstValueFrom(\n this.httpClient.systemInfo()\n )) as unknown as Record<string, unknown>;\n\n return {\n baseUrl: (document?.location?.host?.includes('localhost')\n ? `${document.location.protocol}//${document.location.host}`\n : systemInfo['contextPath']) as string,\n apiVersion: Number(\n (((systemInfo['version'] as string) || '')?.split('.') || [])[1]\n ),\n };\n }\n\n getOrgUnitAttributeByUsage(usageType: OrganisationUnitSelectionUsageType) {\n switch (usageType) {\n case 'DATA_ENTRY':\n return 'organisationUnits';\n\n case 'DATA_VIEW':\n return 'dataViewOrganisationUnits';\n\n default:\n return 'organisationUnits';\n }\n }\n\n getRootOrgUnits(): Promise<string[]> {\n const orgUnitAttribute = this.getOrgUnitAttributeByUsage(\n this.orgUnitSelectionConfig.usageType\n );\n return firstValueFrom(\n this.httpClient\n .me()\n .pipe(\n map((user: User) =>\n (user ? user[orgUnitAttribute] : []).map((orgUnit) => orgUnit.id)\n )\n )\n );\n }\n\n getOrgUnitGroups(): Promise<any> {\n return firstValueFrom(\n this.httpClient\n .get(\n 'organisationUnitGroups.json?fields=id,displayName,name&paging=false'\n )\n .pipe(\n map((res: Record<string, unknown>) => res?.['organisationUnitGroups'])\n )\n );\n }\n\n getOrgUnitLevels(): Promise<any> {\n return firstValueFrom(\n this.httpClient\n .get(\n 'organisationUnitLevels.json?fields=id,level,displayName,name&paging=false'\n )\n .pipe(\n map((res: Record<string, unknown>) => res?.['organisationUnitLevels'])\n )\n );\n }\n\n onSelectItems(selectionEvent: OrganisationUnitSelectionEvent) {\n this.selectOrgUnits.emit(selectionEvent.items);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { Provider } from '@dhis2/app-runtime';\nimport {\n Button,\n ButtonStrip,\n Modal,\n ModalActions,\n ModalContent,\n ModalTitle,\n} from '@dhis2/ui';\nimport { NgxDhis2HttpClientService, User } from '@iapps/ngx-dhis2-http-client';\nimport React, { useState } from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport { firstValueFrom, map } from 'rxjs';\nimport { ReactWrapperComponent } from '../../../react-wrapper';\nimport OrgUnitDimension from '../../components/OrgUnitDimension';\nimport {\n OrganisationUnitSelectionConfig,\n OrganisationUnitSelectionUsageType,\n} from '../../models';\n\ntype OrganisationUnitSelectionEvent = {\n dimensionId: string;\n items: Record<string, unknown>[];\n};\n\n@Component({\n selector: 'ng-dhis2-ui-org-unit-selector-modal',\n template: '<ng-container><ng-container>',\n styles: [\n `\n ::ng-deep .layer {\n z-index: 2 !important;\n }\n `,\n ],\n})\nexport class OrganisationUnitSelectorModalComponent extends ReactWrapperComponent {\n @Input() selectedOrgUnits: any[] = [];\n @Input() orgUnitSelectionConfig: OrganisationUnitSelectionConfig =\n new OrganisationUnitSelectionConfig();\n\n @Output() selectOrgUnits = new EventEmitter();\n @Output() cancel = new EventEmitter();\n @Output() confirm = new EventEmitter();\n\n override props: Record<string, unknown> = {\n onSelect: (e: any) => {\n this.onSelectItems(e);\n },\n };\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private httpClient: NgxDhis2HttpClientService\n ) {\n super(elementRef);\n }\n\n override async ngAfterViewInit() {\n if (!this.elementRef) throw new Error('No element ref');\n this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);\n const rootOrgUnits = await this.getRootOrgUnits();\n\n const config = await this.getAppConfig();\n\n this.component = () => {\n const [selected, setSelected] = useState(this.selectedOrgUnits);\n return (\n <Provider config={config}>\n {\n <Modal position=\"middle\" large>\n <ModalTitle>Organisation unit</ModalTitle>\n <ModalContent>\n <OrgUnitDimension\n selected={selected}\n hideGroupSelect={this.orgUnitSelectionConfig.hideGroupSelect}\n hideLevelSelect={this.orgUnitSelectionConfig.hideLevelSelect}\n hideUserOrgUnits={\n this.orgUnitSelectionConfig.hideUserOrgUnits\n }\n onSelect={(\n selectionEvent: OrganisationUnitSelectionEvent\n ) => {\n setSelected(selectionEvent.items);\n }}\n orgUnitGroupPromise={this.getOrgUnitGroups()}\n orgUnitLevelPromise={this.getOrgUnitLevels()}\n roots={rootOrgUnits}\n />\n </ModalContent>\n <ModalActions>\n <ButtonStrip end>\n <Button\n onClick={() => {\n this.onCancel();\n }}\n >\n Cancel\n </Button>\n <Button\n primary\n disabled={selected.length === 0}\n onClick={() => {\n this.onConfirm(selected);\n }}\n >\n Confirm\n </Button>\n </ButtonStrip>\n </ModalActions>\n </Modal>\n }\n </Provider>\n );\n };\n\n this.render();\n }\n\n onCancel() {\n this.cancel.emit();\n }\n\n onConfirm(selectedItems: any[]) {\n this.confirm.emit(selectedItems);\n }\n\n private async getAppConfig() {\n const systemInfo = (await firstValueFrom(\n this.httpClient.systemInfo()\n )) as unknown as Record<string, unknown>;\n\n return {\n baseUrl: (document?.location?.host?.includes('localhost')\n ? `${document.location.protocol}//${document.location.host}`\n : systemInfo['contextPath']) as string,\n apiVersion: Number(\n (((systemInfo['version'] as string) || '')?.split('.') || [])[1]\n ),\n };\n }\n\n getOrgUnitAttributeByUsage(usageType: OrganisationUnitSelectionUsageType) {\n switch (usageType) {\n case 'DATA_ENTRY':\n return 'organisationUnits';\n\n case 'DATA_VIEW':\n return 'dataViewOrganisationUnits';\n\n default:\n return 'organisationUnits';\n }\n }\n\n getRootOrgUnits(): Promise<string[]> {\n const orgUnitAttribute = this.getOrgUnitAttributeByUsage(\n this.orgUnitSelectionConfig.usageType\n );\n return firstValueFrom(\n this.httpClient\n .me()\n .pipe(\n map((user: User) =>\n (user ? user[orgUnitAttribute] : []).map((orgUnit) => orgUnit.id)\n )\n )\n );\n }\n\n getOrgUnitGroups(): Promise<any> {\n return firstValueFrom(\n this.httpClient\n .get(\n 'organisationUnitGroups.json?fields=id,displayName,name&paging=false'\n )\n .pipe(\n map((res: Record<string, unknown>) => res?.['organisationUnitGroups'])\n )\n );\n }\n\n getOrgUnitLevels(): Promise<any> {\n return firstValueFrom(\n this.httpClient\n .get(\n 'organisationUnitLevels.json?fields=id,level,displayName,name&paging=false'\n )\n .pipe(\n map((res: Record<string, unknown>) => res?.['organisationUnitLevels'])\n )\n );\n }\n\n onSelectItems(selectionEvent: OrganisationUnitSelectionEvent) {\n this.selectOrgUnits.emit(selectionEvent.items);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedDhis2UiModule } from '../../shared/shared.module';\nimport { OrganisationUnitSelectorComponent } from './containers/organisation-unit-selector/organisation-unit-selector.component';\nimport { OrganisationUnitSelectorModalComponent } from './containers/organisation-unit-selector-modal/organisation-unit-selector-modal.component-modal';\n\n@NgModule({\n imports: [CommonModule, SharedDhis2UiModule],\n declarations: [\n OrganisationUnitSelectorComponent,\n OrganisationUnitSelectorModalComponent,\n ],\n exports: [\n OrganisationUnitSelectorComponent,\n OrganisationUnitSelectorModalComponent,\n ],\n})\nexport class OrganisationUnitSelectorModule {}\n","// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nexport * from './organisation-unit-selector.module';\nexport { OrganisationUnitSelectorComponent } from './containers/organisation-unit-selector/organisation-unit-selector.component';\nexport { OrganisationUnitSelectorModalComponent } from './containers/organisation-unit-selector-modal/organisation-unit-selector-modal.component-modal';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["React","colors","theme","spacers","Button","getOptions","InputField","styles","Modal","ModalTitle","ModalContent","ModalActions","ButtonStrip"],"mappings":"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"}
|