@adyen/adyen-platform-experience-web 1.0.0-beta.3 → 1.0.1
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/dist/cjs/index.js +11 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/components/external/BaseElement.js +24 -37
- package/dist/es/components/external/PayoutDetails/PayoutDetails.js +19 -0
- package/dist/es/components/external/PayoutDetails/components/PayoutData.js +90 -0
- package/dist/es/components/external/PayoutDetails/components/constants.js +13 -0
- package/dist/es/components/external/PayoutsOverview/PayoutsOverviewElement.js +29 -0
- package/dist/es/components/external/PayoutsOverview/components/PayoutsOverview/PayoutsOverview.js +127 -0
- package/dist/es/components/external/PayoutsOverview/components/PayoutsOverview/constants.js +6 -0
- package/dist/es/components/external/PayoutsOverview/components/PayoutsOverviewContainer/PayoutsOverviewContainer.js +22 -0
- package/dist/es/components/external/PayoutsOverview/components/PayoutsOverviewContainer/constants.js +4 -0
- package/dist/es/components/external/PayoutsOverview/components/PayoutsTable/PayoutsTable.js +80 -0
- package/dist/es/components/external/PayoutsOverview/components/PayoutsTable/constants.js +5 -0
- package/dist/es/components/external/TransactionDetails/TransactionDetails.js +3 -3
- package/dist/es/components/external/TransactionDetails/components/TransactionData.js +13 -21
- package/dist/es/components/external/TransactionDetails/components/TransactionDataSkeleton.js +6 -6
- package/dist/es/components/external/TransactionsOverview/TransactionsOverviewElement.js +4 -4
- package/dist/es/components/external/TransactionsOverview/components/AmountSkeleton/AmountSkeleton.js +4 -4
- package/dist/es/components/external/TransactionsOverview/components/Balances/Balances.js +40 -32
- package/dist/es/components/external/TransactionsOverview/components/MultiSelectionFilter/MultiSelectionFilter.js +4 -4
- package/dist/es/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/constants.js +7 -11
- package/dist/es/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/useMultiSelectionFilter.js +12 -11
- package/dist/es/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/utils.js +2 -7
- package/dist/es/components/external/TransactionsOverview/components/SummaryItem/SummaryItem.js +19 -19
- package/dist/es/components/external/TransactionsOverview/components/SummaryItem/SummaryItemLabel.js +8 -8
- package/dist/es/components/external/TransactionsOverview/components/TransactionTotals/TotalsCard.js +30 -30
- package/dist/es/components/external/TransactionsOverview/components/TransactionTotals/TransactionTotals.js +38 -38
- package/dist/es/components/external/TransactionsOverview/components/TransactionsOverview/TransactionsOverview.js +155 -116
- package/dist/es/components/external/TransactionsOverview/components/TransactionsOverview/constants.js +4 -2
- package/dist/es/components/external/TransactionsOverview/components/TransactionsOverviewContainer/TransactionsOverviewContainer.js +16 -38
- package/dist/es/components/external/TransactionsOverview/components/TransactionsOverviewContainer/constants.js +2 -3
- package/dist/es/components/external/TransactionsOverview/components/TransactionsTable/PaymentMethodCell.js +29 -0
- package/dist/es/components/external/TransactionsOverview/components/TransactionsTable/TransactionsTable.js +76 -71
- package/dist/es/components/external/TransactionsOverview/components/TransactionsTable/constants.js +3 -2
- package/dist/es/components/external/TransactionsOverview/components/utils.js +4 -23
- package/dist/es/components/external/TransactionsOverview/hooks/{useMediaQuery.js → useResponsiveViewport.js} +5 -13
- package/dist/es/components/external/TransactionsOverview/hooks/useTransactionsOverviewMultiSelectionFilters.js +7 -7
- package/dist/es/components/external/UIElement/UIElement.js +68 -0
- package/dist/es/{core/Localization/translations/de-DE.json.js → components/external/UIElement/UIElement.scss.js} +1 -1
- package/dist/es/components/hooks/useBalanceAccountSelection.js +18 -0
- package/dist/es/components/hooks/useBalanceAccounts.js +25 -0
- package/dist/es/components/hooks/useDefaultOverviewFilterParams.js +24 -0
- package/dist/es/components/internal/BaseButton/BaseButton.js +13 -13
- package/dist/es/components/internal/Button/Button.js +13 -13
- package/dist/es/components/internal/Button/hooks/useButton.js +5 -5
- package/dist/es/components/internal/Calendar/calendar/facade/Calendar.js +180 -180
- package/dist/es/components/internal/Calendar/calendar/facade/index.js +28 -25
- package/dist/es/components/internal/Calendar/calendar/timeframe/common/flags.js +14 -16
- package/dist/es/components/internal/Calendar/calendar/timeframe/common/utils.js +1 -1
- package/dist/es/components/internal/Calendar/calendar/timeframe/frames/MonthFrame.js +34 -31
- package/dist/es/components/internal/Calendar/calendar/timeframe/frames/TimeFrame.js +170 -168
- package/dist/es/components/internal/Calendar/calendar/timerange/factory.js +16 -15
- package/dist/es/components/internal/Calendar/calendar/timerange/presets/shared/offsetMonth.js +7 -7
- package/dist/es/components/internal/Calendar/calendar/timerange/presets/shared/offsetWeek.js +9 -9
- package/dist/es/components/internal/Calendar/calendar/timerange/utils.js +31 -34
- package/dist/es/components/internal/Calendar/calendar/timeslice/index.js +1 -1
- package/dist/es/components/internal/Calendar/calendar/utils.js +9 -8
- package/dist/es/components/internal/Calendar/components/CalendarControls/CalendarControls.js +4 -4
- package/dist/es/components/internal/Calendar/components/CalendarGrid/CalendarGridDate.js +33 -30
- package/dist/es/components/internal/Calendar/components/CalendarGrid/CalendarGridDayOfWeek.js +6 -6
- package/dist/es/components/internal/Calendar/components/CalendarGrid/utils.js +37 -38
- package/dist/es/components/internal/Calendar/hooks/useCalendar.js +2 -2
- package/dist/es/components/internal/Calendar/hooks/useCalendarControlsRendering.js +12 -12
- package/dist/es/components/internal/Calendar/hooks/useTimezone.js +19 -17
- package/dist/es/components/internal/Card/Card.js +37 -0
- package/dist/es/{core/Localization/translations/ar.json.js → components/internal/Card/Card.scss.js} +1 -1
- package/dist/es/components/internal/Card/constants.js +13 -0
- package/dist/es/components/internal/DataGrid/DataGrid.js +61 -56
- package/dist/es/components/internal/DataGrid/DataGridCell.js +36 -4
- package/dist/es/components/internal/DataGrid/components/InteractiveBody.js +26 -24
- package/dist/es/components/internal/DataGrid/components/SkeletonBody.js +7 -7
- package/dist/es/components/internal/DataGrid/components/TableBody.js +17 -15
- package/dist/es/components/internal/DataGrid/components/TableCells.js +10 -10
- package/dist/es/components/internal/DataGrid/components/TableHeaderCell.js +29 -0
- package/dist/es/components/internal/DataGrid/hooks/useDataGridContext.js +8 -0
- package/dist/es/components/internal/DataGrid/hooks/useInteractiveDataGrid.js +1 -1
- package/dist/es/components/internal/DataGrid/utils/DataGridProvider.js +23 -0
- package/dist/es/components/internal/DataOverviewContainer/DataOverviewContainer.js +45 -0
- package/dist/es/components/internal/DataOverviewContainer/constants.js +4 -0
- package/dist/es/components/internal/DataOverviewDetails/DataOverviewDetails.js +47 -0
- package/dist/es/components/internal/DataOverviewDetails/DataOverviewDetails.scss.js +4 -0
- package/dist/es/components/internal/DataOverviewDisplay/DataDetailsModal.js +35 -0
- package/dist/es/components/internal/DataOverviewDisplay/constants.js +11 -0
- package/dist/es/components/internal/DataOverviewError/DataOverviewError.js +31 -0
- package/dist/es/components/internal/DatePicker/DatePicker.js +16 -15
- package/dist/es/components/internal/DatePicker/components/TimeRangeSelector/useTimeRangeSelection.js +31 -30
- package/dist/es/components/internal/ErrorMessageDisplay/ErrorMessageDisplay.js +25 -26
- package/dist/es/components/internal/ExpandableCard/ExpandableCard.js +10 -10
- package/dist/es/components/internal/FilterBar/FilterBar.js +17 -17
- package/dist/es/components/internal/FilterBar/components/FilterButton/FilterButton.js +9 -9
- package/dist/es/components/internal/FilterBar/filters/AmountFilter/AmountFilter.js +33 -32
- package/dist/es/components/internal/FilterBar/filters/AmountFilter/RangeSelection.js +44 -43
- package/dist/es/components/internal/FilterBar/filters/BaseFilter/BaseFilter.js +70 -69
- package/dist/es/components/internal/FilterBar/filters/DateFilter/DateFilter.js +56 -112
- package/dist/es/components/internal/FilterBar/filters/DateFilter/DateFilterCore.js +126 -0
- package/dist/es/{core/Localization/translations/el-GR.json.js → components/internal/FilterBar/filters/DateFilter/DateFilterCore.scss.js} +1 -1
- package/dist/es/components/internal/FormFields/InputBase.js +35 -35
- package/dist/es/components/internal/FormFields/Select/BalanceAccountSelector/BalanceAccountSelector.js +43 -0
- package/dist/es/components/internal/FormFields/Select/Select.js +34 -33
- package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +20 -19
- package/dist/es/components/internal/FormFields/Select/components/SelectList.js +33 -32
- package/dist/es/components/internal/FormFields/Select/components/SelectListItem.js +38 -34
- package/dist/es/components/internal/FormFields/Select/constants.js +1 -1
- package/dist/es/components/internal/FormFields/Select/hooks/useSelect.js +1 -1
- package/dist/es/components/internal/Image/Image.js +4 -4
- package/dist/es/components/internal/Img/Img.js +3 -3
- package/dist/es/components/internal/Modal/Modal.js +30 -28
- package/dist/es/components/internal/Modal/ModalContent/ModalContent.js +16 -0
- package/dist/es/components/internal/Pagination/Pagination.js +24 -23
- package/dist/es/components/internal/Pagination/hooks/useCursorPagination.js +11 -11
- package/dist/es/components/internal/Pagination/hooks/usePageLimit.js +12 -11
- package/dist/es/components/internal/Pagination/hooks/usePaginatedRecords.js +47 -46
- package/dist/es/components/internal/Pagination/hooks/usePaginatedRecordsFilters.js +1 -1
- package/dist/es/components/internal/Pagination/hooks/usePagination.js +6 -6
- package/dist/es/components/internal/Popover/Popover.js +47 -46
- package/dist/es/components/internal/Popover/utils/utils.js +8 -6
- package/dist/es/components/internal/SVGIcons/CheckedBox.js +1 -1
- package/dist/es/components/internal/SVGIcons/Checkmark.js +1 -1
- package/dist/es/components/internal/SVGIcons/ChevronDown.js +1 -1
- package/dist/es/components/internal/SVGIcons/ChevronLeft.js +1 -1
- package/dist/es/components/internal/SVGIcons/ChevronRight.js +1 -1
- package/dist/es/components/internal/SVGIcons/ChevronUp.js +1 -1
- package/dist/es/components/internal/SVGIcons/Close.js +5 -5
- package/dist/es/components/internal/SVGIcons/UncheckedBox.js +1 -1
- package/dist/es/components/internal/StructuredList/StructuredList.js +44 -0
- package/dist/es/{core/Localization/translations/fi-FI.json.js → components/internal/StructuredList/StructuredList.scss.js} +1 -1
- package/dist/es/components/internal/StructuredList/constants.js +9 -0
- package/dist/es/components/internal/StructuredList/useStructuredListItem.js +18 -0
- package/dist/es/components/internal/Tag/Tag.js +7 -7
- package/dist/es/components/internal/Tooltip/Tooltip.js +22 -22
- package/dist/es/components/internal/Typography/Typography.js +8 -8
- package/dist/es/components/types.js +2 -1
- package/dist/es/components/utils/getCommonErrorCode.js +26 -0
- package/dist/es/components/utils/getErrorMessage.js +34 -0
- package/dist/es/components/utils/getLabel.js +20 -0
- package/dist/es/core/Auth/context.js +24 -0
- package/dist/es/core/Auth/session/AuthSession.js +99 -0
- package/dist/es/core/Auth/session/AuthSessionSpecification.js +63 -0
- package/dist/es/core/Auth/session/AuthSetupContext.js +64 -0
- package/dist/es/core/Auth/session/constants.js +14 -0
- package/dist/es/core/Context/CoreContext.js +5 -3
- package/dist/es/core/Context/CoreProvider.js +16 -15
- package/dist/es/core/Http/http.js +42 -0
- package/dist/es/core/{Services/requests → Http}/utils.js +26 -25
- package/dist/es/core/Localization/Localization.js +80 -76
- package/dist/es/core/Localization/constants/locale.js +1 -1
- package/dist/es/core/Localization/constants/localization.js +3 -30
- package/dist/es/core/Localization/datetime/restamper/restamper.js +15 -14
- package/dist/es/core/Localization/datetime/restamper/utils.js +5 -5
- package/dist/es/core/Localization/localization-utils.js +11 -10
- package/dist/es/core/Localization/utils.js +43 -41
- package/dist/es/core/core.js +31 -59
- package/dist/es/core/utils.js +12 -9
- package/dist/es/external/preact/compat/dist/compat.module.js +52 -68
- package/dist/es/external/preact/dist/preact.module.js +62 -59
- package/dist/es/hooks/element/useClickOutside.js +2 -2
- package/dist/es/hooks/element/useDetachedRender.js +1 -1
- package/dist/es/hooks/element/useFocusCursor.js +14 -13
- package/dist/es/hooks/element/useFocusTrap.js +7 -6
- package/dist/es/hooks/element/usePopoverPositioner.js +1 -1
- package/dist/es/hooks/element/useUniqueIdentifier.js +6 -6
- package/dist/es/hooks/useCommitAction/useCommitAction.js +16 -15
- package/dist/es/hooks/useFetch/useFetch.js +24 -23
- package/dist/es/hooks/useImageUrl/useImageUrl.js +1 -1
- package/dist/es/hooks/useMediaQuery/useMediaQuery.js +14 -0
- package/dist/es/hooks/useReactiveState/useReactiveState.js +1 -1
- package/dist/es/hooks/useReflex/{hooks/useReflex.js → useReflex.js} +2 -2
- package/dist/es/index.js +24 -38
- package/dist/es/primitives/async/abortable/main.js +26 -0
- package/dist/es/primitives/async/deferred/main.js +22 -0
- package/dist/es/primitives/async/promisor/main.js +31 -0
- package/dist/es/primitives/auxiliary/abortSink/main.js +42 -0
- package/dist/es/primitives/auxiliary/errorContainer/main.js +26 -0
- package/dist/es/primitives/auxiliary/indexed/helpers.js +17 -0
- package/dist/es/primitives/auxiliary/indexed/main.js +35 -0
- package/dist/es/primitives/context/session/SessionContext.js +141 -0
- package/dist/es/primitives/context/session/constants.js +10 -0
- package/dist/es/primitives/dom/tabbableRoot/tabbable.js +102 -0
- package/dist/es/primitives/reactive/effectStack/main.js +22 -0
- package/dist/es/primitives/reactive/eventEmitter/main.js +42 -0
- package/dist/es/primitives/reactive/reflex/helpers.js +25 -0
- package/dist/es/primitives/reactive/reflex/main.js +68 -0
- package/dist/es/primitives/reactive/reflex/register.js +69 -0
- package/dist/es/primitives/reactive/watchlist/constants.js +4 -0
- package/dist/es/primitives/reactive/watchlist/helpers.js +31 -0
- package/dist/es/primitives/reactive/watchlist/main.js +59 -0
- package/dist/es/primitives/time/clock/main.js +24 -0
- package/dist/es/primitives/time/interval/constants.js +5 -0
- package/dist/es/primitives/time/interval/main.js +31 -0
- package/dist/es/primitives/time/today/main.js +53 -0
- package/dist/es/translations/da-DK.json.js +214 -0
- package/dist/es/translations/de-DE.json.js +214 -0
- package/dist/es/translations/en-US.json.js +220 -0
- package/dist/es/translations/es-ES.json.js +214 -0
- package/dist/es/translations/fr-FR.json.js +214 -0
- package/dist/es/translations/index.js +34 -0
- package/dist/es/translations/it-IT.json.js +214 -0
- package/dist/es/translations/nl-NL.json.js +214 -0
- package/dist/es/translations/no-NO.json.js +214 -0
- package/dist/es/translations/pt-BR.json.js +214 -0
- package/dist/es/translations/sv-SE.json.js +214 -0
- package/dist/es/utils/async/constants.js +6 -0
- package/dist/es/utils/async/main.js +6 -0
- package/dist/es/utils/collection/main.js +22 -0
- package/dist/es/utils/common.js +11 -0
- package/dist/es/utils/datetime/main.js +8 -0
- package/dist/es/utils/preact/className.js +7 -0
- package/dist/es/utils/preact/fixedForwardRef.js +6 -0
- package/dist/es/utils/preact/memoComparator/main.js +26 -0
- package/dist/es/utils/preact/props.js +5 -0
- package/dist/es/utils/random/uniqueId.js +8 -0
- package/dist/es/utils/random/uuid.js +11 -0
- package/dist/es/utils/struct/main.js +11 -0
- package/dist/es/utils/struct/property.js +15 -0
- package/dist/es/utils/value/bool.js +9 -0
- package/dist/es/utils/value/compare.js +4 -0
- package/dist/es/utils/value/constants.js +5 -0
- package/dist/es/utils/value/is.js +13 -0
- package/dist/es/utils/value/number.js +13 -0
- package/dist/es/utils/value/string.js +6 -0
- package/dist/style.css +1 -1
- package/dist/types/components/external/BaseElement.d.ts +3 -14
- package/dist/types/components/external/BaseElement.d.ts.map +1 -1
- package/dist/types/components/external/PayoutDetails/PayoutDetails.d.ts +10 -0
- package/dist/types/components/external/PayoutDetails/PayoutDetails.d.ts.map +1 -0
- package/dist/types/components/external/PayoutDetails/components/PayoutData.d.ts +8 -0
- package/dist/types/components/external/PayoutDetails/components/PayoutData.d.ts.map +1 -0
- package/dist/types/components/external/PayoutDetails/components/constants.d.ts +11 -0
- package/dist/types/components/external/PayoutDetails/components/constants.d.ts.map +1 -0
- package/dist/types/components/external/PayoutDetails/index.d.ts +2 -0
- package/dist/types/components/external/PayoutDetails/index.d.ts.map +1 -0
- package/dist/types/components/external/PayoutsOverview/PayoutsOverviewElement.d.ts +9 -0
- package/dist/types/components/external/PayoutsOverview/PayoutsOverviewElement.d.ts.map +1 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsOverview/PayoutsOverview.d.ts +8 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsOverview/PayoutsOverview.d.ts.map +1 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsOverview/constants.d.ts +4 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsOverview/constants.d.ts.map +1 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsOverviewContainer/PayoutsOverviewContainer.d.ts +4 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsOverviewContainer/PayoutsOverviewContainer.d.ts.map +1 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsOverviewContainer/constants.d.ts +2 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsOverviewContainer/constants.d.ts.map +1 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsTable/PayoutsTable.d.ts +17 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsTable/PayoutsTable.d.ts.map +1 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsTable/constants.d.ts +3 -0
- package/dist/types/components/external/PayoutsOverview/components/PayoutsTable/constants.d.ts.map +1 -0
- package/dist/types/components/external/PayoutsOverview/index.d.ts +2 -0
- package/dist/types/components/external/PayoutsOverview/index.d.ts.map +1 -0
- package/dist/types/components/external/TransactionDetails/TransactionDetails.d.ts +4 -4
- package/dist/types/components/external/TransactionDetails/TransactionDetails.d.ts.map +1 -1
- package/dist/types/components/external/TransactionDetails/components/TransactionData.d.ts +2 -1
- package/dist/types/components/external/TransactionDetails/components/TransactionData.d.ts.map +1 -1
- package/dist/types/components/external/TransactionDetails/types.d.ts +8 -6
- package/dist/types/components/external/TransactionDetails/types.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/TransactionsOverviewElement.d.ts +4 -5
- package/dist/types/components/external/TransactionsOverview/TransactionsOverviewElement.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/BalanceItem/types.d.ts +2 -2
- package/dist/types/components/external/TransactionsOverview/components/BalanceItem/types.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/Balances/Balances.d.ts +2 -10
- package/dist/types/components/external/TransactionsOverview/components/Balances/Balances.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/Balances/types.d.ts +14 -0
- package/dist/types/components/external/TransactionsOverview/components/Balances/types.d.ts.map +1 -0
- package/dist/types/components/external/TransactionsOverview/components/Category/types.d.ts +2 -3
- package/dist/types/components/external/TransactionsOverview/components/Category/types.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/constants.d.ts +3 -3
- package/dist/types/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/constants.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/useMultiSelectionFilter.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/utils.d.ts +0 -1
- package/dist/types/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/utils.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionTotalItem/types.d.ts +2 -2
- package/dist/types/components/external/TransactionsOverview/components/TransactionTotalItem/types.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionTotals/TotalsCard.d.ts +1 -8
- package/dist/types/components/external/TransactionsOverview/components/TransactionTotals/TotalsCard.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionTotals/TransactionTotals.d.ts +3 -3
- package/dist/types/components/external/TransactionsOverview/components/TransactionTotals/TransactionTotals.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionTotals/types.d.ts +11 -0
- package/dist/types/components/external/TransactionsOverview/components/TransactionTotals/types.d.ts.map +1 -0
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverview/TransactionsOverview.d.ts +2 -3
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverview/TransactionsOverview.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverview/constants.d.ts +4 -2
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverview/constants.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverviewContainer/TransactionsOverviewContainer.d.ts +2 -4
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverviewContainer/TransactionsOverviewContainer.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverviewContainer/constants.d.ts +0 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverviewContainer/constants.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsTable/PaymentMethodCell.d.ts +7 -0
- package/dist/types/components/external/TransactionsOverview/components/TransactionsTable/PaymentMethodCell.d.ts.map +1 -0
- package/dist/types/components/external/TransactionsOverview/components/TransactionsTable/TransactionsTable.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsTable/constants.d.ts +1 -0
- package/dist/types/components/external/TransactionsOverview/components/TransactionsTable/constants.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsTable/types.d.ts +2 -4
- package/dist/types/components/external/TransactionsOverview/components/TransactionsTable/types.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/components/utils.d.ts +0 -21
- package/dist/types/components/external/TransactionsOverview/components/utils.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/hooks/{useMediaQuery.d.ts → useResponsiveViewport.d.ts} +8 -6
- package/dist/types/components/external/TransactionsOverview/hooks/useResponsiveViewport.d.ts.map +1 -0
- package/dist/types/components/external/TransactionsOverview/hooks/useTransactionsOverviewMultiSelectionFilters.d.ts.map +1 -1
- package/dist/types/components/external/TransactionsOverview/index.d.ts +0 -1
- package/dist/types/components/external/TransactionsOverview/index.d.ts.map +1 -1
- package/dist/types/components/external/{UIElement.d.ts → UIElement/UIElement.d.ts} +5 -10
- package/dist/types/components/external/UIElement/UIElement.d.ts.map +1 -0
- package/dist/types/components/external/index.d.ts +2 -0
- package/dist/types/components/external/index.d.ts.map +1 -1
- package/dist/types/components/{external/TransactionsOverview/components/BalanceAccountSelector → hooks}/useBalanceAccountSelection.d.ts +2 -2
- package/dist/types/components/hooks/useBalanceAccountSelection.d.ts.map +1 -0
- package/dist/types/components/hooks/useBalanceAccounts.d.ts +13 -0
- package/dist/types/components/hooks/useBalanceAccounts.d.ts.map +1 -0
- package/dist/types/components/hooks/useDefaultOverviewFilterParams.d.ts +38 -0
- package/dist/types/components/hooks/useDefaultOverviewFilterParams.d.ts.map +1 -0
- package/dist/types/components/internal/BaseButton/BaseButton.d.ts +2 -2
- package/dist/types/components/internal/BaseButton/BaseButton.d.ts.map +1 -1
- package/dist/types/components/internal/Button/Button.d.ts +2 -2
- package/dist/types/components/internal/Button/Button.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/facade/Calendar.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timeframe/common/flags.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timeframe/common/utils.d.ts +1 -1
- package/dist/types/components/internal/Calendar/calendar/timeframe/frames/MonthFrame.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timeframe/frames/TimeFrame.d.ts +4 -5
- package/dist/types/components/internal/Calendar/calendar/timeframe/frames/TimeFrame.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timeframe/frames/YearFrame.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/factory.d.ts +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/factory.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/lastMonth.d.ts +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/lastMonth.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/lastNDays.d.ts +2 -2
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/lastNDays.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/lastWeek.d.ts +2 -2
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/lastWeek.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/shared/offsetMonth.d.ts +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/shared/offsetMonth.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/shared/offsetWeek.d.ts +2 -2
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/shared/offsetWeek.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/thisMonth.d.ts +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/thisMonth.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/thisWeek.d.ts +2 -2
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/thisWeek.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/yearToDate.d.ts +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/presets/yearToDate.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/types.d.ts +4 -5
- package/dist/types/components/internal/Calendar/calendar/timerange/types.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/timerange/utils.d.ts +9 -4
- package/dist/types/components/internal/Calendar/calendar/timerange/utils.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/types.d.ts +4 -4
- package/dist/types/components/internal/Calendar/calendar/types.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/calendar/utils.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/components/CalendarGrid/CalendarGridDate.d.ts +29 -3
- package/dist/types/components/internal/Calendar/components/CalendarGrid/CalendarGridDate.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/components/CalendarGrid/CalendarGridDayOfWeek.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/components/CalendarGrid/utils.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/hooks/useCalendar.d.ts +1 -1
- package/dist/types/components/internal/Calendar/hooks/useCalendarControlsRendering.d.ts +1 -1
- package/dist/types/components/internal/Calendar/hooks/useCalendarControlsRendering.d.ts.map +1 -1
- package/dist/types/components/internal/Calendar/hooks/useTimezone.d.ts.map +1 -1
- package/dist/types/components/internal/Card/Card.d.ts +6 -0
- package/dist/types/components/internal/Card/Card.d.ts.map +1 -0
- package/dist/types/components/internal/Card/constants.d.ts +11 -0
- package/dist/types/components/internal/Card/constants.d.ts.map +1 -0
- package/dist/types/components/internal/Card/types.d.ts +15 -0
- package/dist/types/components/internal/Card/types.d.ts.map +1 -0
- package/dist/types/components/internal/DataGrid/DataGrid.d.ts.map +1 -1
- package/dist/types/components/internal/DataGrid/DataGridCell.d.ts +4 -1
- package/dist/types/components/internal/DataGrid/DataGridCell.d.ts.map +1 -1
- package/dist/types/components/internal/DataGrid/components/InteractiveBody.d.ts.map +1 -1
- package/dist/types/components/internal/DataGrid/components/TableBody.d.ts.map +1 -1
- package/dist/types/components/internal/DataGrid/components/TableCells.d.ts.map +1 -1
- package/dist/types/components/internal/DataGrid/components/TableHeaderCell.d.ts +5 -0
- package/dist/types/components/internal/DataGrid/components/TableHeaderCell.d.ts.map +1 -0
- package/dist/types/components/internal/DataGrid/hooks/useDataGridContext.d.ts +4 -0
- package/dist/types/components/internal/DataGrid/hooks/useDataGridContext.d.ts.map +1 -0
- package/dist/types/components/internal/DataGrid/hooks/useInteractiveDataGrid.d.ts +1 -1
- package/dist/types/components/internal/DataGrid/types.d.ts +13 -3
- package/dist/types/components/internal/DataGrid/types.d.ts.map +1 -1
- package/dist/types/components/internal/DataGrid/utils/DataGridProvider.d.ts +5 -0
- package/dist/types/components/internal/DataGrid/utils/DataGridProvider.d.ts.map +1 -0
- package/dist/types/components/internal/DataOverviewContainer/DataOverviewContainer.d.ts +12 -0
- package/dist/types/components/internal/DataOverviewContainer/DataOverviewContainer.d.ts.map +1 -0
- package/dist/types/components/internal/DataOverviewContainer/constants.d.ts +2 -0
- package/dist/types/components/internal/DataOverviewContainer/constants.d.ts.map +1 -0
- package/dist/types/components/internal/DataOverviewDetails/DataOverviewDetails.d.ts +5 -0
- package/dist/types/components/internal/DataOverviewDetails/DataOverviewDetails.d.ts.map +1 -0
- package/dist/types/components/internal/DataOverviewDetails/types.d.ts +32 -0
- package/dist/types/components/internal/DataOverviewDetails/types.d.ts.map +1 -0
- package/dist/types/components/internal/DataOverviewDisplay/DataDetailsModal.d.ts +11 -0
- package/dist/types/components/internal/DataOverviewDisplay/DataDetailsModal.d.ts.map +1 -0
- package/dist/types/components/internal/DataOverviewDisplay/constants.d.ts +2 -0
- package/dist/types/components/internal/DataOverviewDisplay/constants.d.ts.map +1 -0
- package/dist/types/components/internal/DataOverviewError/DataOverviewError.d.ts +9 -0
- package/dist/types/components/internal/DataOverviewError/DataOverviewError.d.ts.map +1 -0
- package/dist/types/components/internal/DatePicker/components/TimeRangeSelector/useTimeRangeSelection.d.ts +12 -9
- package/dist/types/components/internal/DatePicker/components/TimeRangeSelector/useTimeRangeSelection.d.ts.map +1 -1
- package/dist/types/components/internal/ErrorMessageDisplay/ErrorMessageDisplay.d.ts.map +1 -1
- package/dist/types/components/internal/FilterBar/components/FilterButton/FilterButton.d.ts +4 -3
- package/dist/types/components/internal/FilterBar/components/FilterButton/FilterButton.d.ts.map +1 -1
- package/dist/types/components/internal/FilterBar/filters/AmountFilter/AmountFilter.d.ts.map +1 -1
- package/dist/types/components/internal/FilterBar/filters/AmountFilter/RangeSelection.d.ts.map +1 -1
- package/dist/types/components/internal/FilterBar/filters/AmountFilter/types.d.ts +2 -2
- package/dist/types/components/internal/FilterBar/filters/AmountFilter/types.d.ts.map +1 -1
- package/dist/types/components/internal/FilterBar/filters/DateFilter/DateFilter.d.ts +9 -3
- package/dist/types/components/internal/FilterBar/filters/DateFilter/DateFilter.d.ts.map +1 -1
- package/dist/types/components/internal/FilterBar/filters/DateFilter/DateFilterCore.d.ts +5 -0
- package/dist/types/components/internal/FilterBar/filters/DateFilter/DateFilterCore.d.ts.map +1 -0
- package/dist/types/components/{external/TransactionsOverview/components → internal/FormFields/Select}/BalanceAccountSelector/BalanceAccountSelector.d.ts +1 -1
- package/dist/types/components/internal/FormFields/Select/BalanceAccountSelector/BalanceAccountSelector.d.ts.map +1 -0
- package/dist/types/components/internal/FormFields/Select/BalanceAccountSelector/index.d.ts +2 -0
- package/dist/types/components/internal/FormFields/Select/BalanceAccountSelector/index.d.ts.map +1 -0
- package/dist/types/components/internal/FormFields/Select/Select.d.ts.map +1 -1
- package/dist/types/components/internal/FormFields/Select/components/SelectButton.d.ts.map +1 -1
- package/dist/types/components/internal/FormFields/Select/components/SelectListItem.d.ts +3 -1
- package/dist/types/components/internal/FormFields/Select/components/SelectListItem.d.ts.map +1 -1
- package/dist/types/components/internal/FormFields/Select/types.d.ts +1 -0
- package/dist/types/components/internal/FormFields/Select/types.d.ts.map +1 -1
- package/dist/types/components/internal/Modal/Modal.d.ts.map +1 -1
- package/dist/types/components/internal/Modal/ModalContent/ModalContent.d.ts +5 -0
- package/dist/types/components/internal/Modal/ModalContent/ModalContent.d.ts.map +1 -0
- package/dist/types/components/internal/Pagination/hooks/types.d.ts +3 -3
- package/dist/types/components/internal/Pagination/hooks/types.d.ts.map +1 -1
- package/dist/types/components/internal/StructuredList/StructuredList.d.ts +5 -0
- package/dist/types/components/internal/StructuredList/StructuredList.d.ts.map +1 -0
- package/dist/types/components/internal/StructuredList/constants.d.ts +7 -0
- package/dist/types/components/internal/StructuredList/constants.d.ts.map +1 -0
- package/dist/types/components/internal/StructuredList/index.d.ts +2 -0
- package/dist/types/components/internal/StructuredList/index.d.ts.map +1 -0
- package/dist/types/components/internal/StructuredList/types.d.ts +21 -0
- package/dist/types/components/internal/StructuredList/types.d.ts.map +1 -0
- package/dist/types/components/internal/StructuredList/useStructuredListItem.d.ts +136 -0
- package/dist/types/components/internal/StructuredList/useStructuredListItem.d.ts.map +1 -0
- package/dist/types/components/internal/Tooltip/types.d.ts +2 -2
- package/dist/types/components/internal/Tooltip/types.d.ts.map +1 -1
- package/dist/types/components/types.d.ts +52 -16
- package/dist/types/components/types.d.ts.map +1 -1
- package/dist/types/components/utils/{transactionResourceErrorCodes.d.ts → getCommonErrorCode.d.ts} +7 -4
- package/dist/types/components/utils/getCommonErrorCode.d.ts.map +1 -0
- package/dist/types/components/utils/getErrorMessage.d.ts +5 -0
- package/dist/types/components/utils/getErrorMessage.d.ts.map +1 -0
- package/dist/types/components/utils/getLabel.d.ts +20 -0
- package/dist/types/components/utils/getLabel.d.ts.map +1 -0
- package/dist/types/core/Auth/context.d.ts +296 -0
- package/dist/types/core/Auth/context.d.ts.map +1 -0
- package/dist/types/core/Auth/index.d.ts +3 -0
- package/dist/types/core/Auth/index.d.ts.map +1 -0
- package/dist/types/core/Auth/session/AuthSession.d.ts +318 -0
- package/dist/types/core/Auth/session/AuthSession.d.ts.map +1 -0
- package/dist/types/core/Auth/session/AuthSessionSpecification.d.ts +15 -0
- package/dist/types/core/Auth/session/AuthSessionSpecification.d.ts.map +1 -0
- package/dist/types/core/Auth/session/AuthSetupContext.d.ts +303 -0
- package/dist/types/core/Auth/session/AuthSetupContext.d.ts.map +1 -0
- package/dist/types/core/Auth/session/constants.d.ts +7 -0
- package/dist/types/core/Auth/session/constants.d.ts.map +1 -0
- package/dist/types/core/Auth/types.d.ts +26 -11
- package/dist/types/core/Auth/types.d.ts.map +1 -1
- package/dist/types/core/Context/CoreContext.d.ts.map +1 -1
- package/dist/types/core/Context/CoreProvider.d.ts +1 -1
- package/dist/types/core/Context/CoreProvider.d.ts.map +1 -1
- package/dist/types/core/Context/types.d.ts +1 -0
- package/dist/types/core/Context/types.d.ts.map +1 -1
- package/dist/types/core/Errors/AdyenPlatformExperienceError.d.ts +1 -1
- package/dist/types/core/Errors/AdyenPlatformExperienceError.d.ts.map +1 -1
- package/dist/types/core/Http/constants.d.ts.map +1 -0
- package/dist/types/core/Http/http.d.ts.map +1 -0
- package/dist/types/core/{Services/requests → Http}/types.d.ts +2 -4
- package/dist/types/core/Http/types.d.ts.map +1 -0
- package/dist/types/core/Http/utils.d.ts.map +1 -0
- package/dist/types/core/Localization/Localization.d.ts +3 -3
- package/dist/types/core/Localization/Localization.d.ts.map +1 -1
- package/dist/types/core/Localization/constants/locale.d.ts +107 -203
- package/dist/types/core/Localization/constants/locale.d.ts.map +1 -1
- package/dist/types/core/Localization/constants/localization.d.ts +2 -2
- package/dist/types/core/Localization/constants/localization.d.ts.map +1 -1
- package/dist/types/core/Localization/index.d.ts +1 -1
- package/dist/types/core/Localization/index.d.ts.map +1 -1
- package/dist/types/core/Localization/localization-utils.d.ts +5 -5
- package/dist/types/core/Localization/types.d.ts +6 -10
- package/dist/types/core/Localization/types.d.ts.map +1 -1
- package/dist/types/core/Localization/utils.d.ts +206 -652
- package/dist/types/core/Localization/utils.d.ts.map +1 -1
- package/dist/types/core/core.d.ts +10 -21
- package/dist/types/core/core.d.ts.map +1 -1
- package/dist/types/core/types.d.ts +21 -29
- package/dist/types/core/types.d.ts.map +1 -1
- package/dist/types/core/utils.d.ts +2 -6
- package/dist/types/core/utils.d.ts.map +1 -1
- package/dist/types/hooks/element/useClickOutside.d.ts +3 -2
- package/dist/types/hooks/element/useClickOutside.d.ts.map +1 -1
- package/dist/types/hooks/element/useDetachedRender.d.ts +3 -2
- package/dist/types/hooks/element/useDetachedRender.d.ts.map +1 -1
- package/dist/types/hooks/element/useFocusCursor.d.ts +2 -2
- package/dist/types/hooks/element/useFocusCursor.d.ts.map +1 -1
- package/dist/types/hooks/element/useFocusTrap.d.ts +3 -2
- package/dist/types/hooks/element/useFocusTrap.d.ts.map +1 -1
- package/dist/types/hooks/element/usePopoverPositioner.d.ts +3 -2
- package/dist/types/hooks/element/usePopoverPositioner.d.ts.map +1 -1
- package/dist/types/hooks/element/useUniqueIdentifier.d.ts +3 -2
- package/dist/types/hooks/element/useUniqueIdentifier.d.ts.map +1 -1
- package/dist/types/hooks/useFetch/useFetch.d.ts +1 -1
- package/dist/types/hooks/useFetch/useFetch.d.ts.map +1 -1
- package/dist/types/hooks/useMediaQuery/index.d.ts +2 -0
- package/dist/types/hooks/useMediaQuery/index.d.ts.map +1 -0
- package/dist/types/hooks/useMediaQuery/useMediaQuery.d.ts +3 -0
- package/dist/types/hooks/useMediaQuery/useMediaQuery.d.ts.map +1 -0
- package/dist/types/hooks/useModalDetails/types.d.ts +4 -4
- package/dist/types/hooks/useModalDetails/types.d.ts.map +1 -1
- package/dist/types/hooks/useModalDetails/useModalDetails.d.ts +2 -2
- package/dist/types/hooks/useModalDetails/useModalDetails.d.ts.map +1 -1
- package/dist/types/hooks/useReflex/index.d.ts +1 -3
- package/dist/types/hooks/useReflex/index.d.ts.map +1 -1
- package/dist/types/hooks/useReflex/useReflex.d.ts +5 -0
- package/dist/types/hooks/useReflex/useReflex.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/primitives/async/abortable/index.d.ts +3 -0
- package/dist/types/primitives/async/abortable/index.d.ts.map +1 -0
- package/dist/types/primitives/async/abortable/main.d.ts +4 -0
- package/dist/types/primitives/async/abortable/main.d.ts.map +1 -0
- package/dist/types/primitives/async/abortable/types.d.ts +8 -0
- package/dist/types/primitives/async/abortable/types.d.ts.map +1 -0
- package/dist/types/primitives/async/deferred/index.d.ts +3 -0
- package/dist/types/primitives/async/deferred/index.d.ts.map +1 -0
- package/dist/types/primitives/async/deferred/main.d.ts +4 -0
- package/dist/types/primitives/async/deferred/main.d.ts.map +1 -0
- package/dist/types/primitives/async/deferred/types.d.ts +8 -0
- package/dist/types/primitives/async/deferred/types.d.ts.map +1 -0
- package/dist/types/primitives/async/promisor/index.d.ts +3 -0
- package/dist/types/primitives/async/promisor/index.d.ts.map +1 -0
- package/dist/types/primitives/async/promisor/main.d.ts +5 -0
- package/dist/types/primitives/async/promisor/main.d.ts.map +1 -0
- package/dist/types/primitives/async/promisor/types.d.ts +7 -0
- package/dist/types/primitives/async/promisor/types.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/abortSink/index.d.ts +3 -0
- package/dist/types/primitives/auxiliary/abortSink/index.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/abortSink/main.d.ts +5 -0
- package/dist/types/primitives/auxiliary/abortSink/main.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/abortSink/types.d.ts +7 -0
- package/dist/types/primitives/auxiliary/abortSink/types.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/errorContainer/index.d.ts +3 -0
- package/dist/types/primitives/auxiliary/errorContainer/index.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/errorContainer/main.d.ts +4 -0
- package/dist/types/primitives/auxiliary/errorContainer/main.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/errorContainer/types.d.ts +7 -0
- package/dist/types/primitives/auxiliary/errorContainer/types.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/indexed/helpers.d.ts +4 -0
- package/dist/types/primitives/auxiliary/indexed/helpers.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/indexed/index.d.ts +3 -0
- package/dist/types/primitives/auxiliary/indexed/index.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/indexed/main.d.ts +4 -0
- package/dist/types/primitives/auxiliary/indexed/main.d.ts.map +1 -0
- package/dist/types/primitives/auxiliary/indexed/types.d.ts.map +1 -0
- package/dist/types/primitives/context/session/SessionContext.d.ts +40 -0
- package/dist/types/primitives/context/session/SessionContext.d.ts.map +1 -0
- package/dist/types/primitives/context/session/constants.d.ts +8 -0
- package/dist/types/primitives/context/session/constants.d.ts.map +1 -0
- package/dist/types/primitives/context/session/index.d.ts +4 -0
- package/dist/types/primitives/context/session/index.d.ts.map +1 -0
- package/dist/types/primitives/context/session/types.d.ts +11 -0
- package/dist/types/primitives/context/session/types.d.ts.map +1 -0
- package/dist/types/primitives/dom/tabbableRoot/tabbable.d.ts.map +1 -0
- package/dist/types/primitives/reactive/effectStack/index.d.ts +3 -0
- package/dist/types/primitives/reactive/effectStack/index.d.ts.map +1 -0
- package/dist/types/primitives/reactive/effectStack/main.d.ts +4 -0
- package/dist/types/primitives/reactive/effectStack/main.d.ts.map +1 -0
- package/dist/types/primitives/reactive/effectStack/types.d.ts +5 -0
- package/dist/types/primitives/reactive/effectStack/types.d.ts.map +1 -0
- package/dist/types/primitives/reactive/eventEmitter/index.d.ts +3 -0
- package/dist/types/primitives/reactive/eventEmitter/index.d.ts.map +1 -0
- package/dist/types/primitives/reactive/eventEmitter/main.d.ts +4 -0
- package/dist/types/primitives/reactive/eventEmitter/main.d.ts.map +1 -0
- package/dist/types/primitives/reactive/eventEmitter/types.d.ts +20 -0
- package/dist/types/primitives/reactive/eventEmitter/types.d.ts.map +1 -0
- package/dist/types/primitives/reactive/reflex/constants.d.ts.map +1 -0
- package/dist/types/primitives/reactive/reflex/errors.d.ts.map +1 -0
- package/dist/types/{hooks/useReflex/core/utils.d.ts → primitives/reactive/reflex/helpers.d.ts} +2 -2
- package/dist/types/primitives/reactive/reflex/helpers.d.ts.map +1 -0
- package/dist/types/primitives/reactive/reflex/index.d.ts +6 -0
- package/dist/types/primitives/reactive/reflex/index.d.ts.map +1 -0
- package/dist/types/primitives/reactive/reflex/main.d.ts +5 -0
- package/dist/types/primitives/reactive/reflex/main.d.ts.map +1 -0
- package/dist/types/primitives/reactive/reflex/register.d.ts +5 -0
- package/dist/types/primitives/reactive/reflex/register.d.ts.map +1 -0
- package/dist/types/{hooks/useReflex → primitives/reactive/reflex}/types.d.ts +7 -9
- package/dist/types/primitives/reactive/reflex/types.d.ts.map +1 -0
- package/dist/types/primitives/reactive/watchlist/constants.d.ts +2 -0
- package/dist/types/primitives/reactive/watchlist/constants.d.ts.map +1 -0
- package/dist/types/primitives/reactive/watchlist/helpers.d.ts +4 -0
- package/dist/types/primitives/reactive/watchlist/helpers.d.ts.map +1 -0
- package/dist/types/primitives/reactive/watchlist/index.d.ts +4 -0
- package/dist/types/primitives/reactive/watchlist/index.d.ts.map +1 -0
- package/dist/types/primitives/reactive/watchlist/main.d.ts +6 -0
- package/dist/types/primitives/reactive/watchlist/main.d.ts.map +1 -0
- package/dist/types/primitives/reactive/watchlist/types.d.ts +23 -0
- package/dist/types/primitives/reactive/watchlist/types.d.ts.map +1 -0
- package/dist/types/primitives/time/clock/index.d.ts +3 -0
- package/dist/types/primitives/time/clock/index.d.ts.map +1 -0
- package/dist/types/primitives/time/clock/main.d.ts +4 -0
- package/dist/types/primitives/time/clock/main.d.ts.map +1 -0
- package/dist/types/primitives/time/clock/types.d.ts +7 -0
- package/dist/types/primitives/time/clock/types.d.ts.map +1 -0
- package/dist/types/primitives/time/interval/constants.d.ts +3 -0
- package/dist/types/primitives/time/interval/constants.d.ts.map +1 -0
- package/dist/types/primitives/time/interval/index.d.ts +4 -0
- package/dist/types/primitives/time/interval/index.d.ts.map +1 -0
- package/dist/types/primitives/time/interval/main.d.ts +25 -0
- package/dist/types/primitives/time/interval/main.d.ts.map +1 -0
- package/dist/types/primitives/time/interval/types.d.ts +6 -0
- package/dist/types/primitives/time/interval/types.d.ts.map +1 -0
- package/dist/types/primitives/time/today/index.d.ts +3 -0
- package/dist/types/primitives/time/today/index.d.ts.map +1 -0
- package/dist/types/primitives/time/today/main.d.ts +5 -0
- package/dist/types/primitives/time/today/main.d.ts.map +1 -0
- package/dist/types/primitives/time/today/types.d.ts +9 -0
- package/dist/types/primitives/time/today/types.d.ts.map +1 -0
- package/dist/types/translations/index.d.ts +2442 -0
- package/dist/types/translations/index.d.ts.map +1 -0
- package/dist/types/types/api/endpoints.d.ts +13 -0
- package/dist/types/types/api/endpoints.d.ts.map +1 -0
- package/dist/types/types/api/index.d.ts +2 -0
- package/dist/types/types/api/index.d.ts.map +1 -0
- package/dist/types/types/api/models/balanceAccounts.d.ts +5 -0
- package/dist/types/types/api/models/balanceAccounts.d.ts.map +1 -0
- package/dist/types/types/api/models/index.d.ts +4 -0
- package/dist/types/types/api/models/index.d.ts.map +1 -0
- package/dist/types/types/api/models/payouts.d.ts +5 -0
- package/dist/types/types/api/models/payouts.d.ts.map +1 -0
- package/dist/types/types/api/models/transactions.d.ts +6 -0
- package/dist/types/types/api/models/transactions.d.ts.map +1 -0
- package/dist/types/types/api/resources/BalanceAccountsResource.d.ts.map +1 -0
- package/dist/types/types/api/resources/PaymentInstrumentsResource.d.ts +70 -0
- package/dist/types/types/api/resources/PaymentInstrumentsResource.d.ts.map +1 -0
- package/dist/types/types/api/resources/PayoutsResource.d.ts +127 -0
- package/dist/types/types/api/resources/PayoutsResource.d.ts.map +1 -0
- package/dist/types/types/api/resources/SetupResource.d.ts.map +1 -0
- package/dist/types/types/api/resources/TransactionsResource.d.ts.map +1 -0
- package/dist/types/types/api/utils.d.ts +2 -0
- package/dist/types/types/api/utils.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +1 -2
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/async/constants.d.ts +3 -0
- package/dist/types/utils/async/constants.d.ts.map +1 -0
- package/dist/types/utils/async/main.d.ts +4 -0
- package/dist/types/utils/async/main.d.ts.map +1 -0
- package/dist/types/utils/collection/main.d.ts +11 -0
- package/dist/types/utils/collection/main.d.ts.map +1 -0
- package/dist/types/utils/collection/types.d.ts +3 -0
- package/dist/types/utils/collection/types.d.ts.map +1 -0
- package/dist/types/utils/common.d.ts +11 -0
- package/dist/types/utils/common.d.ts.map +1 -0
- package/dist/types/utils/datetime/main.d.ts +3 -0
- package/dist/types/utils/datetime/main.d.ts.map +1 -0
- package/dist/types/utils/datetime/types.d.ts +15 -0
- package/dist/types/utils/datetime/types.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +16 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/{class-name-utils.d.ts → preact/className.d.ts} +1 -1
- package/dist/types/utils/preact/className.d.ts.map +1 -0
- package/dist/types/utils/{fixedForwardRef.d.ts → preact/fixedForwardRef.d.ts} +1 -1
- package/dist/types/utils/preact/fixedForwardRef.d.ts.map +1 -0
- package/dist/types/utils/preact/index.d.ts +5 -0
- package/dist/types/utils/preact/index.d.ts.map +1 -0
- package/dist/types/utils/preact/memoComparator/main.d.ts +4 -0
- package/dist/types/utils/preact/memoComparator/main.d.ts.map +1 -0
- package/dist/types/utils/preact/memoComparator/types.d.ts.map +1 -0
- package/dist/types/utils/preact/props.d.ts +3 -0
- package/dist/types/utils/preact/props.d.ts.map +1 -0
- package/dist/types/utils/random/uniqueId.d.ts +3 -0
- package/dist/types/utils/random/uniqueId.d.ts.map +1 -0
- package/dist/types/utils/random/uuid.d.ts +4 -0
- package/dist/types/utils/random/uuid.d.ts.map +1 -0
- package/dist/types/utils/struct/main.d.ts +23 -0
- package/dist/types/utils/struct/main.d.ts.map +1 -0
- package/dist/types/utils/struct/property.d.ts +5 -0
- package/dist/types/utils/struct/property.d.ts.map +1 -0
- package/dist/types/utils/struct/types.d.ts +9 -0
- package/dist/types/utils/struct/types.d.ts.map +1 -0
- package/dist/types/utils/types.d.ts +26 -6
- package/dist/types/utils/types.d.ts.map +1 -1
- package/dist/types/utils/value/bool.d.ts +6 -0
- package/dist/types/utils/value/bool.d.ts.map +1 -0
- package/dist/types/utils/value/compare.d.ts +6 -0
- package/dist/types/utils/value/compare.d.ts.map +1 -0
- package/dist/types/utils/value/constants.d.ts +3 -0
- package/dist/types/utils/value/constants.d.ts.map +1 -0
- package/dist/types/utils/value/is.d.ts +11 -0
- package/dist/types/utils/value/is.d.ts.map +1 -0
- package/dist/types/utils/value/number.d.ts +6 -0
- package/dist/types/utils/value/number.d.ts.map +1 -0
- package/dist/types/utils/value/string.d.ts +3 -0
- package/dist/types/utils/value/string.d.ts.map +1 -0
- package/package.json +3 -1
- package/LICENSE +0 -21
- package/dist/ModalContent-387502da.js +0 -2
- package/dist/ModalContent-387502da.js.map +0 -1
- package/dist/es/components/external/EventEmitter.js +0 -25
- package/dist/es/components/external/TransactionDetails/components/TransactionDetails.js +0 -33
- package/dist/es/components/external/TransactionsOverview/components/BalanceAccountSelector/BalanceAccountSelector.js +0 -30
- package/dist/es/components/external/TransactionsOverview/components/BalanceAccountSelector/useBalanceAccountSelection.js +0 -17
- package/dist/es/components/external/TransactionsOverview/components/ModalContent.js +0 -12
- package/dist/es/components/external/TransactionsOverview/components/TransactionListError/TransactionListError.js +0 -21
- package/dist/es/components/external/TransactionsOverview/components/TransactionsDisplay/TransactionsDisplay.js +0 -80
- package/dist/es/components/external/TransactionsOverview/components/TransactionsDisplay/constants.js +0 -5
- package/dist/es/components/external/TransactionsOverview/components/TransactionsOverviewDateFilter.js +0 -67
- package/dist/es/components/external/TransactionsOverview/hooks/useDefaultTransactionsOverviewFilterParams.js +0 -23
- package/dist/es/components/external/TransactionsOverview/types.js +0 -4
- package/dist/es/components/external/UIElement.js +0 -85
- package/dist/es/components/internal/Calendar/calendar/shared/indexed/index.js +0 -46
- package/dist/es/components/internal/Calendar/clock/clock.js +0 -27
- package/dist/es/components/internal/Calendar/clock/today.js +0 -46
- package/dist/es/components/internal/Spinner/Spinner.js +0 -6
- package/dist/es/components/utils/transactionResourceErrorCodes.js +0 -39
- package/dist/es/core/Auth/AuthContext.js +0 -11
- package/dist/es/core/Auth/AuthProvider.js +0 -18
- package/dist/es/core/Auth/useAuthContext.js +0 -6
- package/dist/es/core/Localization/translations/cs-CZ.json.js +0 -4
- package/dist/es/core/Localization/translations/da-DK.json.js +0 -4
- package/dist/es/core/Localization/translations/en-US.json.js +0 -371
- package/dist/es/core/Localization/translations/es-ES.json.js +0 -255
- package/dist/es/core/Localization/translations/fr-FR.json.js +0 -4
- package/dist/es/core/Localization/translations/hr-HR.json.js +0 -4
- package/dist/es/core/Localization/translations/hu-HU.json.js +0 -4
- package/dist/es/core/Localization/translations/index.js +0 -82
- package/dist/es/core/Localization/translations/it-IT.json.js +0 -4
- package/dist/es/core/Localization/translations/ja-JP.json.js +0 -4
- package/dist/es/core/Localization/translations/ko-KR.json.js +0 -4
- package/dist/es/core/Localization/translations/nl-NL.json.js +0 -4
- package/dist/es/core/Localization/translations/no-NO.json.js +0 -4
- package/dist/es/core/Localization/translations/pl-PL.json.js +0 -4
- package/dist/es/core/Localization/translations/pt-BR.json.js +0 -4
- package/dist/es/core/Localization/translations/pt-PT.json.js +0 -4
- package/dist/es/core/Localization/translations/ro-RO.json.js +0 -4
- package/dist/es/core/Localization/translations/ru-RU.json.js +0 -4
- package/dist/es/core/Localization/translations/sk-SK.json.js +0 -4
- package/dist/es/core/Localization/translations/sl-SI.json.js +0 -4
- package/dist/es/core/Localization/translations/sv-SE.json.js +0 -4
- package/dist/es/core/Localization/translations/zh-CN.json.js +0 -4
- package/dist/es/core/Localization/translations/zh-TW.json.js +0 -4
- package/dist/es/core/Services/requests/http.js +0 -41
- package/dist/es/core/Services/sessions/setup-session.js +0 -20
- package/dist/es/core/Session/Session.js +0 -59
- package/dist/es/core/Session/utils.js +0 -11
- package/dist/es/core/config.js +0 -4
- package/dist/es/hooks/useReflex/core/reflex.js +0 -66
- package/dist/es/hooks/useReflex/core/registry.js +0 -65
- package/dist/es/hooks/useReflex/core/utils.js +0 -23
- package/dist/es/hooks/useSessionAwareRequest/useSessionAwareRequest.js +0 -30
- package/dist/es/hooks/useSetupEndpoint/useSetupEndpoint.js +0 -27
- package/dist/es/utils/SessionStorage.js +0 -31
- package/dist/es/utils/class-name-utils.js +0 -7
- package/dist/es/utils/common/constants.js +0 -8
- package/dist/es/utils/common/index.js +0 -34
- package/dist/es/utils/fixedForwardRef.js +0 -5
- package/dist/es/utils/get-image.js +0 -16
- package/dist/es/utils/idGenerator.js +0 -5
- package/dist/es/utils/memoComparator/memoComparator.js +0 -23
- package/dist/es/utils/tabbable.js +0 -100
- package/dist/es/utils/uuid.js +0 -9
- package/dist/es/utils/validator-utils.js +0 -5
- package/dist/es/utils/watchable/constants.js +0 -4
- package/dist/es/utils/watchable/core/Watchable.js +0 -62
- package/dist/es/utils/watchable/core/helpers.js +0 -26
- package/dist/es/utils/watchable/core/syncEffect.js +0 -22
- package/dist/es/utils/watchable/index.js +0 -20
- package/dist/index-8daceaea.js +0 -12
- package/dist/index-8daceaea.js.map +0 -1
- package/dist/types/components/external/EventEmitter.d.ts +0 -10
- package/dist/types/components/external/EventEmitter.d.ts.map +0 -1
- package/dist/types/components/external/TransactionDetails/components/TransactionDetails.d.ts +0 -5
- package/dist/types/components/external/TransactionDetails/components/TransactionDetails.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/components/BalanceAccountSelector/BalanceAccountSelector.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/components/BalanceAccountSelector/index.d.ts +0 -3
- package/dist/types/components/external/TransactionsOverview/components/BalanceAccountSelector/index.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/components/BalanceAccountSelector/useBalanceAccountSelection.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/components/ModalContent.d.ts +0 -4
- package/dist/types/components/external/TransactionsOverview/components/ModalContent.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionListError/TransactionListError.d.ts +0 -7
- package/dist/types/components/external/TransactionsOverview/components/TransactionListError/TransactionListError.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsDisplay/TransactionsDisplay.d.ts +0 -5
- package/dist/types/components/external/TransactionsOverview/components/TransactionsDisplay/TransactionsDisplay.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsDisplay/constants.d.ts +0 -3
- package/dist/types/components/external/TransactionsOverview/components/TransactionsDisplay/constants.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsDisplay/types.d.ts +0 -5
- package/dist/types/components/external/TransactionsOverview/components/TransactionsDisplay/types.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverviewDateFilter.d.ts +0 -10
- package/dist/types/components/external/TransactionsOverview/components/TransactionsOverviewDateFilter.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/hooks/useDefaultTransactionsOverviewFilterParams.d.ts +0 -34
- package/dist/types/components/external/TransactionsOverview/hooks/useDefaultTransactionsOverviewFilterParams.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/hooks/useMediaQuery.d.ts.map +0 -1
- package/dist/types/components/external/TransactionsOverview/types.d.ts +0 -41
- package/dist/types/components/external/TransactionsOverview/types.d.ts.map +0 -1
- package/dist/types/components/external/UIElement.d.ts.map +0 -1
- package/dist/types/components/internal/Calendar/calendar/shared/indexed/index.d.ts +0 -4
- package/dist/types/components/internal/Calendar/calendar/shared/indexed/index.d.ts.map +0 -1
- package/dist/types/components/internal/Calendar/calendar/shared/indexed/types.d.ts.map +0 -1
- package/dist/types/components/internal/Calendar/clock/clock.d.ts +0 -8
- package/dist/types/components/internal/Calendar/clock/clock.d.ts.map +0 -1
- package/dist/types/components/internal/Calendar/clock/index.d.ts +0 -4
- package/dist/types/components/internal/Calendar/clock/index.d.ts.map +0 -1
- package/dist/types/components/internal/Calendar/clock/today.d.ts +0 -5
- package/dist/types/components/internal/Calendar/clock/today.d.ts.map +0 -1
- package/dist/types/components/internal/Calendar/clock/types.d.ts +0 -12
- package/dist/types/components/internal/Calendar/clock/types.d.ts.map +0 -1
- package/dist/types/components/internal/FilterBar/filters/DateFilter/index.d.ts +0 -2
- package/dist/types/components/internal/FilterBar/filters/DateFilter/index.d.ts.map +0 -1
- package/dist/types/components/internal/Spinner/Spinner.d.ts +0 -18
- package/dist/types/components/internal/Spinner/Spinner.d.ts.map +0 -1
- package/dist/types/components/internal/Spinner/index.d.ts +0 -2
- package/dist/types/components/internal/Spinner/index.d.ts.map +0 -1
- package/dist/types/components/utils/transactionResourceErrorCodes.d.ts.map +0 -1
- package/dist/types/core/Analytics/Analytics.d.ts +0 -22
- package/dist/types/core/Analytics/Analytics.d.ts.map +0 -1
- package/dist/types/core/Analytics/EventsQueue.d.ts +0 -8
- package/dist/types/core/Analytics/EventsQueue.d.ts.map +0 -1
- package/dist/types/core/Analytics/index.d.ts +0 -2
- package/dist/types/core/Analytics/index.d.ts.map +0 -1
- package/dist/types/core/Auth/AuthContext.d.ts +0 -3
- package/dist/types/core/Auth/AuthContext.d.ts.map +0 -1
- package/dist/types/core/Auth/AuthProvider.d.ts +0 -4
- package/dist/types/core/Auth/AuthProvider.d.ts.map +0 -1
- package/dist/types/core/Auth/useAuthContext.d.ts +0 -3
- package/dist/types/core/Auth/useAuthContext.d.ts.map +0 -1
- package/dist/types/core/Localization/translations/index.d.ts +0 -632
- package/dist/types/core/Localization/translations/index.d.ts.map +0 -1
- package/dist/types/core/Services/analytics/collect-id.d.ts +0 -9
- package/dist/types/core/Services/analytics/collect-id.d.ts.map +0 -1
- package/dist/types/core/Services/analytics/log-event.d.ts +0 -9
- package/dist/types/core/Services/analytics/log-event.d.ts.map +0 -1
- package/dist/types/core/Services/analytics/post-telemetry.d.ts +0 -8
- package/dist/types/core/Services/analytics/post-telemetry.d.ts.map +0 -1
- package/dist/types/core/Services/analytics/types.d.ts +0 -15
- package/dist/types/core/Services/analytics/types.d.ts.map +0 -1
- package/dist/types/core/Services/requests/endpoints.d.ts +0 -7
- package/dist/types/core/Services/requests/endpoints.d.ts.map +0 -1
- package/dist/types/core/Services/requests/http.d.ts.map +0 -1
- package/dist/types/core/Services/requests/types.d.ts.map +0 -1
- package/dist/types/core/Services/requests/utils.d.ts.map +0 -1
- package/dist/types/core/Services/sessions/constants.d.ts.map +0 -1
- package/dist/types/core/Services/sessions/setup-session.d.ts +0 -5
- package/dist/types/core/Services/sessions/setup-session.d.ts.map +0 -1
- package/dist/types/core/Session/Session.d.ts +0 -32
- package/dist/types/core/Session/Session.d.ts.map +0 -1
- package/dist/types/core/Session/index.d.ts +0 -2
- package/dist/types/core/Session/index.d.ts.map +0 -1
- package/dist/types/core/Session/types.d.ts +0 -9
- package/dist/types/core/Session/types.d.ts.map +0 -1
- package/dist/types/core/Session/utils.d.ts +0 -3
- package/dist/types/core/Session/utils.d.ts.map +0 -1
- package/dist/types/core/config.d.ts +0 -9
- package/dist/types/core/config.d.ts.map +0 -1
- package/dist/types/hooks/useReflex/constants.d.ts.map +0 -1
- package/dist/types/hooks/useReflex/core/reflex.d.ts +0 -5
- package/dist/types/hooks/useReflex/core/reflex.d.ts.map +0 -1
- package/dist/types/hooks/useReflex/core/registry.d.ts +0 -5
- package/dist/types/hooks/useReflex/core/registry.d.ts.map +0 -1
- package/dist/types/hooks/useReflex/core/utils.d.ts.map +0 -1
- package/dist/types/hooks/useReflex/errors.d.ts.map +0 -1
- package/dist/types/hooks/useReflex/hooks/useReflex.d.ts +0 -4
- package/dist/types/hooks/useReflex/hooks/useReflex.d.ts.map +0 -1
- package/dist/types/hooks/useReflex/types.d.ts.map +0 -1
- package/dist/types/hooks/useSessionAwareRequest/useSessionAwareRequest.d.ts +0 -6
- package/dist/types/hooks/useSessionAwareRequest/useSessionAwareRequest.d.ts.map +0 -1
- package/dist/types/hooks/useSetupEndpoint/useSetupEndpoint.d.ts +0 -12
- package/dist/types/hooks/useSetupEndpoint/useSetupEndpoint.d.ts.map +0 -1
- package/dist/types/types/models/api/index.d.ts +0 -3
- package/dist/types/types/models/api/index.d.ts.map +0 -1
- package/dist/types/types/models/api/utils.d.ts +0 -15
- package/dist/types/types/models/api/utils.d.ts.map +0 -1
- package/dist/types/types/models/balanceAccount.d.ts +0 -5
- package/dist/types/types/models/balanceAccount.d.ts.map +0 -1
- package/dist/types/types/models/openapi/BalanceAccountsResource.d.ts.map +0 -1
- package/dist/types/types/models/openapi/SetupResource.d.ts.map +0 -1
- package/dist/types/types/models/openapi/TransactionsResource.d.ts.map +0 -1
- package/dist/types/types/models/openapi/endpoints.d.ts +0 -11
- package/dist/types/types/models/openapi/endpoints.d.ts.map +0 -1
- package/dist/types/types/models/transactions.d.ts +0 -5
- package/dist/types/types/models/transactions.d.ts.map +0 -1
- package/dist/types/types/shared.d.ts +0 -33
- package/dist/types/types/shared.d.ts.map +0 -1
- package/dist/types/utils/SessionStorage.d.ts +0 -11
- package/dist/types/utils/SessionStorage.d.ts.map +0 -1
- package/dist/types/utils/Validator/ValidationRuleResult.d.ts +0 -19
- package/dist/types/utils/Validator/ValidationRuleResult.d.ts.map +0 -1
- package/dist/types/utils/Validator/types.d.ts +0 -58
- package/dist/types/utils/Validator/types.d.ts.map +0 -1
- package/dist/types/utils/class-name-utils.d.ts.map +0 -1
- package/dist/types/utils/common/constants.d.ts +0 -12
- package/dist/types/utils/common/constants.d.ts.map +0 -1
- package/dist/types/utils/common/index.d.ts +0 -27
- package/dist/types/utils/common/index.d.ts.map +0 -1
- package/dist/types/utils/fixedForwardRef.d.ts.map +0 -1
- package/dist/types/utils/get-image.d.ts +0 -14
- package/dist/types/utils/get-image.d.ts.map +0 -1
- package/dist/types/utils/idGenerator.d.ts +0 -2
- package/dist/types/utils/idGenerator.d.ts.map +0 -1
- package/dist/types/utils/memoComparator/index.d.ts +0 -2
- package/dist/types/utils/memoComparator/index.d.ts.map +0 -1
- package/dist/types/utils/memoComparator/memoComparator.d.ts +0 -4
- package/dist/types/utils/memoComparator/memoComparator.d.ts.map +0 -1
- package/dist/types/utils/memoComparator/types.d.ts.map +0 -1
- package/dist/types/utils/tabbable.d.ts.map +0 -1
- package/dist/types/utils/useForm/types.d.ts +0 -81
- package/dist/types/utils/useForm/types.d.ts.map +0 -1
- package/dist/types/utils/uuid.d.ts +0 -2
- package/dist/types/utils/uuid.d.ts.map +0 -1
- package/dist/types/utils/validator-utils.d.ts +0 -15
- package/dist/types/utils/validator-utils.d.ts.map +0 -1
- package/dist/types/utils/watchable/constants.d.ts +0 -2
- package/dist/types/utils/watchable/constants.d.ts.map +0 -1
- package/dist/types/utils/watchable/core/Watchable.d.ts +0 -17
- package/dist/types/utils/watchable/core/Watchable.d.ts.map +0 -1
- package/dist/types/utils/watchable/core/helpers.d.ts +0 -9
- package/dist/types/utils/watchable/core/helpers.d.ts.map +0 -1
- package/dist/types/utils/watchable/core/syncEffect.d.ts +0 -4
- package/dist/types/utils/watchable/core/syncEffect.d.ts.map +0 -1
- package/dist/types/utils/watchable/index.d.ts +0 -4
- package/dist/types/utils/watchable/index.d.ts.map +0 -1
- package/dist/types/utils/watchable/types.d.ts +0 -27
- package/dist/types/utils/watchable/types.d.ts.map +0 -1
- /package/dist/es/components/external/{TransactionDetails/components/TransactionDetails.scss.js → PayoutDetails/components/PayoutData.scss.js} +0 -0
- /package/dist/es/components/{internal/Spinner/Spinner.scss.js → external/PayoutsOverview/components/PayoutsOverview/PayoutsOverview.scss.js} +0 -0
- /package/dist/es/components/external/{TransactionsOverview/components/TransactionsDisplay/TransactionsDisplay.scss.js → PayoutsOverview/components/PayoutsTable/PayoutsTable.scss.js} +0 -0
- /package/dist/es/components/external/{TransactionsOverview/components/TransactionsOverviewContainer/TransactionsOverviewContainer.scss.js → TransactionDetails/components/TransactionData.scss.js} +0 -0
- /package/dist/es/components/{external/TransactionsOverview/components → internal/FormFields/Select}/BalanceAccountSelector/BalanceAccountSelector.scss.js +0 -0
- /package/dist/es/components/internal/{FilterBar/filters/DateFilter/DateFilter.scss.js → Modal/ModalContent/ModalContent.scss.js} +0 -0
- /package/dist/es/core/{Services/sessions → Http}/constants.js +0 -0
- /package/dist/es/{hooks/useReflex → primitives/reactive/reflex}/constants.js +0 -0
- /package/dist/es/{hooks/useReflex → primitives/reactive/reflex}/errors.js +0 -0
- /package/dist/types/core/{Services/sessions → Http}/constants.d.ts +0 -0
- /package/dist/types/core/{Services/requests → Http}/http.d.ts +0 -0
- /package/dist/types/core/{Services/requests → Http}/utils.d.ts +0 -0
- /package/dist/types/{components/internal/Calendar/calendar/shared → primitives/auxiliary}/indexed/types.d.ts +0 -0
- /package/dist/types/{utils → primitives/dom/tabbableRoot}/tabbable.d.ts +0 -0
- /package/dist/types/{hooks/useReflex → primitives/reactive/reflex}/constants.d.ts +0 -0
- /package/dist/types/{hooks/useReflex → primitives/reactive/reflex}/errors.d.ts +0 -0
- /package/dist/types/types/{models/openapi → api/resources}/BalanceAccountsResource.d.ts +0 -0
- /package/dist/types/types/{models/openapi → api/resources}/SetupResource.d.ts +0 -0
- /package/dist/types/types/{models/openapi → api/resources}/TransactionsResource.d.ts +0 -0
- /package/dist/types/utils/{memoComparator → preact/memoComparator}/types.d.ts +0 -0
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/core/utils.ts","../../src/utils/value/constants.ts","../../src/utils/async/constants.ts","../../src/utils/async/main.ts","../../src/utils/common.ts","../../src/utils/value/is.ts","../../src/utils/collection/main.ts","../../src/utils/datetime/main.ts","../../src/utils/random/uniqueId.ts","../../src/utils/random/uuid.ts","../../src/utils/value/bool.ts","../../src/utils/struct/main.ts","../../src/utils/struct/property.ts","../../src/utils/value/compare.ts","../../src/utils/value/number.ts","../../src/utils/value/string.ts","../../src/core/Auth/session/constants.ts","../../src/core/Errors/AdyenPlatformExperienceError.ts","../../src/core/Http/utils.ts","../../src/core/Auth/session/AuthSetupContext.ts","../../src/primitives/time/interval/constants.ts","../../src/primitives/time/interval/main.ts","../../src/primitives/reactive/watchlist/helpers.ts","../../src/primitives/reactive/watchlist/constants.ts","../../src/primitives/reactive/watchlist/main.ts","../../src/primitives/time/clock/main.ts","../../src/primitives/async/abortable/main.ts","../../src/primitives/async/deferred/main.ts","../../src/primitives/async/promisor/main.ts","../../src/primitives/reactive/eventEmitter/main.ts","../../src/primitives/context/session/constants.ts","../../src/primitives/context/session/SessionContext.ts","../../src/primitives/auxiliary/abortSink/main.ts","../../src/core/Http/constants.ts","../../src/core/Http/http.ts","../../src/core/Auth/session/AuthSessionSpecification.ts","../../src/primitives/auxiliary/errorContainer/main.ts","../../src/core/Auth/session/AuthSession.ts","../../src/core/Localization/constants/currency-codes.ts","../../src/core/Localization/constants/currency-decimals.ts","../../src/core/Localization/amount/amount-util.ts","../../src/core/Localization/constants/locale.ts","../../src/core/Localization/constants/localization.ts","../../src/core/Localization/datetime/restamper/constants.ts","../../src/core/Localization/datetime/restamper/utils.ts","../../src/core/Localization/datetime/restamper/restamper.ts","../../src/translations/index.ts","../../src/core/Localization/utils.ts","../../src/core/Localization/localization-utils.ts","../../src/core/Localization/Localization.ts","../../src/core/core.ts","../../../../node_modules/preact/dist/preact.module.js","../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../../../node_modules/preact/hooks/dist/hooks.module.js","../../src/core/Auth/context.tsx","../../src/hooks/useFetch/useFetch.ts","../../src/components/hooks/useBalanceAccounts.ts","../../src/components/internal/DataOverviewContainer/constants.ts","../../src/components/internal/Typography/constants.ts","../../src/components/internal/Typography/types.ts","../../../../node_modules/preact/compat/dist/compat.module.js","../../src/components/internal/Typography/Typography.tsx","../../src/core/Context/CoreContext.ts","../../src/core/Context/useCoreContext.ts","../../src/images/no-results.svg","../../src/utils/preact/fixedForwardRef.ts","../../src/utils/preact/memoComparator/main.ts","../../src/utils/preact/className.ts","../../src/utils/preact/props.ts","../../src/components/internal/Button/hooks/useButton.ts","../../src/components/internal/Button/constants.ts","../../src/components/internal/Button/types.ts","../../src/components/internal/Button/Button.tsx","../../src/components/internal/ErrorMessageDisplay/ErrorMessageDisplay.tsx","../../src/components/utils/getCommonErrorCode.ts","../../src/constants.ts","../../src/hooks/useMediaQuery/useMediaQuery.ts","../../src/components/external/TransactionsOverview/hooks/useResponsiveViewport.ts","../../src/components/internal/Button/ButtonActions/types.ts","../../src/components/internal/Button/ButtonActions/ButtonActions.tsx","../../src/components/internal/Popover/constants.ts","../../src/components/internal/Popover/PopoverDismissButton/PopoverDismissButton.tsx","../../src/components/internal/Popover/PopoverTitle/PopoverTitle.tsx","../../src/components/internal/Popover/types.ts","../../src/components/types.ts","../../src/components/internal/Popover/utils/popoverUtil.ts","../../src/primitives/reactive/reflex/constants.ts","../../src/primitives/reactive/reflex/errors.ts","../../src/primitives/reactive/reflex/helpers.ts","../../src/primitives/reactive/reflex/register.ts","../../src/primitives/reactive/reflex/main.ts","../../src/hooks/useReflex/useReflex.ts","../../src/hooks/element/useClickOutside.ts","../../src/primitives/dom/tabbableRoot/tabbable.ts","../../src/hooks/element/useFocusTrap.ts","../../src/components/internal/Popover/utils/utils.ts","../../src/hooks/element/usePopoverPositioner.ts","../../src/hooks/element/useUniqueIdentifier.ts","../../src/components/internal/Popover/Popover.tsx","../../src/hooks/useBooleanState/useBooleanState.ts","../../src/components/internal/Tooltip/useTooltipListeners.ts","../../src/components/internal/Tooltip/Tooltip.tsx","../../src/components/internal/SVGIcons/Copy.tsx","../../src/components/internal/CopyText/CopyText.tsx","../../src/components/utils/getErrorMessage.tsx","../../src/components/internal/DataOverviewContainer/DataOverviewContainer.tsx","../../src/components/internal/SVGIcons/Close.tsx","../../src/components/internal/Modal/Modal.tsx","../../src/components/internal/Card/constants.ts","../../src/components/internal/Card/Card.tsx","../../src/components/internal/DataOverviewDisplay/constants.ts","../../src/components/internal/StructuredList/constants.ts","../../src/components/internal/StructuredList/useStructuredListItem.ts","../../src/components/internal/StructuredList/StructuredList.tsx","../../src/components/external/TransactionDetails/components/TransactionDataSkeleton.tsx","../../src/components/external/PayoutDetails/components/constants.ts","../../src/components/external/PayoutDetails/components/PayoutData.tsx","../../src/hooks/useImageUrl/useImageUrl.ts","../../src/components/internal/Image/Image.tsx","../../src/components/external/TransactionsOverview/components/utils.ts","../../src/components/internal/Tag/types.ts","../../src/components/internal/Tag/Tag.tsx","../../src/components/external/TransactionDetails/components/TransactionData.tsx","../../src/components/internal/DataOverviewDetails/DataOverviewDetails.tsx","../../src/components/internal/Modal/ModalContent/ModalContent.tsx","../../src/components/internal/DataOverviewDisplay/DataDetailsModal.tsx","../../src/components/external/TransactionsOverview/components/Category/Category.tsx","../../src/components/internal/DataOverviewError/DataOverviewError.tsx","../../src/components/utils/getLabel.ts","../../src/components/internal/DataGrid/hooks/useDataGridContext.ts","../../src/components/internal/DataGrid/types.ts","../../src/components/internal/DataGrid/DataGridCell.tsx","../../src/components/internal/DataGrid/components/TableCells.tsx","../../src/components/internal/DataGrid/components/TableBody.tsx","../../src/components/internal/DataGrid/hooks/useInteractiveDataGrid.ts","../../src/components/internal/DataGrid/components/InteractiveBody.tsx","../../src/components/internal/DataGrid/components/SkeletonBody.tsx","../../src/images/no-data-female.svg","../../src/components/internal/DataGrid/utils/DataGridProvider.tsx","../../src/components/internal/DataGrid/components/TableHeaderCell.tsx","../../src/components/internal/DataGrid/DataGrid.tsx","../../src/core/Errors/constants.ts","../../src/hooks/useCommitAction/types.ts","../../src/hooks/useCommitAction/useCommitAction.ts","../../src/components/internal/Img/Img.tsx","../../src/components/internal/SVGIcons/ChevronDown.tsx","../../src/components/internal/FormFields/Select/constants.ts","../../src/components/internal/FormFields/Select/components/SelectButton.tsx","../../src/components/internal/SVGIcons/CheckedBox.tsx","../../src/components/internal/SVGIcons/UncheckedBox.tsx","../../src/components/internal/SVGIcons/Checkmark.tsx","../../src/components/internal/FormFields/Select/components/SelectListItem.tsx","../../src/components/internal/FormFields/Select/components/SelectList.tsx","../../src/components/internal/FormFields/Select/hooks/useSelect.ts","../../src/components/internal/FormFields/Select/Select.tsx","../../src/components/internal/SVGIcons/ChevronLeft.tsx","../../src/components/internal/SVGIcons/ChevronRight.tsx","../../src/components/internal/Pagination/Pagination.tsx","../../src/components/external/TransactionsOverview/components/TransactionsTable/constants.ts","../../src/components/external/TransactionsOverview/components/TransactionsTable/PaymentMethodCell.tsx","../../src/components/external/TransactionsOverview/components/TransactionsTable/TransactionsTable.tsx","../../src/components/hooks/useBalanceAccountSelection.ts","../../src/components/internal/FormFields/Select/BalanceAccountSelector/BalanceAccountSelector.tsx","../../src/components/internal/Calendar/hooks/useTimezone.ts","../../src/components/internal/Calendar/calendar/timerange/utils.ts","../../src/components/internal/Calendar/calendar/timerange/factory.ts","../../src/components/internal/Calendar/calendar/timerange/presets/shared/offsetWeek.ts","../../src/components/internal/Calendar/calendar/timerange/presets/shared/offsetMonth.ts","../../src/components/internal/Calendar/calendar/timerange/presets/lastMonth.ts","../../src/components/internal/Calendar/calendar/timerange/presets/lastNDays.ts","../../src/components/internal/Calendar/calendar/timerange/presets/lastWeek.ts","../../src/components/internal/Calendar/calendar/timerange/presets/thisMonth.ts","../../src/components/internal/Calendar/calendar/timerange/presets/thisWeek.ts","../../src/components/internal/Calendar/calendar/timerange/presets/yearToDate.ts","../../src/components/internal/DatePicker/components/TimeRangeSelector/useTimeRangeSelection.ts","../../src/components/internal/DatePicker/components/TimeRangeSelector/TimeRangeSelector.tsx","../../src/components/internal/Calendar/components/CalendarGrid/utils.ts","../../src/components/internal/Calendar/types.ts","../../src/components/internal/Calendar/components/CalendarGrid/CalendarGridDate.tsx","../../src/components/internal/Calendar/components/CalendarGrid/CalendarGridDayOfWeek.tsx","../../src/components/internal/Calendar/components/CalendarGrid/CalendarGrid.tsx","../../src/components/internal/Calendar/calendar/constants.ts","../../src/primitives/auxiliary/indexed/helpers.ts","../../src/primitives/auxiliary/indexed/main.ts","../../src/primitives/reactive/effectStack/main.ts","../../src/primitives/time/today/main.ts","../../src/components/internal/Calendar/calendar/timeframe/common/utils.ts","../../src/components/internal/Calendar/calendar/utils.ts","../../src/components/internal/Calendar/calendar/timeslice/TimeSlice.ts","../../src/components/internal/Calendar/calendar/timeslice/index.ts","../../src/components/internal/Calendar/calendar/types.ts","../../src/components/internal/Calendar/calendar/timeframe/common/flags.ts","../../src/components/internal/Calendar/calendar/timeframe/frames/TimeFrame.ts","../../src/components/internal/Calendar/calendar/timeframe/frames/MonthFrame.ts","../../src/components/internal/Calendar/calendar/facade/Calendar.ts","../../src/components/internal/Calendar/calendar/facade/index.ts","../../src/components/internal/Calendar/components/CalendarControls/CalendarControls.tsx","../../src/hooks/element/useFocusCursor.ts","../../src/components/internal/Calendar/hooks/useCalendar.ts","../../src/components/internal/Calendar/Calendar.tsx","../../src/components/internal/SVGIcons/ChevronUp.tsx","../../src/hooks/element/useDetachedRender.ts","../../src/components/internal/Calendar/hooks/useCalendarControlsRendering.tsx","../../src/components/internal/DatePicker/DatePicker.tsx","../../src/components/internal/FilterBar/components/FilterButton/FilterButton.tsx","../../src/components/internal/FormFields/InputBase.tsx","../../src/components/internal/FormFields/InputText.tsx","../../src/components/internal/FilterBar/filters/BaseFilter/BaseFilter.tsx","../../src/components/internal/FilterBar/filters/DateFilter/types.ts","../../src/components/internal/FilterBar/filters/DateFilter/DateFilterCore.tsx","../../src/components/internal/FilterBar/filters/DateFilter/DateFilter.tsx","../../src/components/internal/SVGIcons/Filter.tsx","../../src/components/internal/FilterBar/FilterBar.tsx","../../src/hooks/useModalDetails/types.ts","../../src/hooks/useModalDetails/useModalDetails.ts","../../src/components/internal/Pagination/constants.ts","../../src/components/internal/Pagination/utils.ts","../../src/components/internal/Pagination/hooks/usePageLimit.ts","../../src/hooks/useMounted/useMounted.ts","../../src/components/internal/Pagination/hooks/usePagination.ts","../../src/components/internal/Pagination/hooks/useCursorPagination.ts","../../src/components/internal/Pagination/hooks/useOffsetPagination.ts","../../src/hooks/useReactiveState/useReactiveState.ts","../../src/components/internal/Pagination/hooks/usePaginatedRecordsFilters.ts","../../src/components/internal/Pagination/types.ts","../../src/components/internal/Pagination/hooks/usePaginatedRecords.ts","../../src/components/internal/Pagination/hooks/useCursorPaginatedRecords.ts","../../src/components/external/TransactionsOverview/components/TransactionTotals/constants.ts","../../src/components/internal/ExpandableCard/constants.ts","../../src/components/internal/BaseButton/constants.ts","../../src/components/internal/BaseButton/BaseButton.tsx","../../src/components/internal/ExpandableCard/ExpandableCard.tsx","../../src/components/external/TransactionsOverview/components/AmountSkeleton/constants.ts","../../src/components/external/TransactionsOverview/components/AmountSkeleton/AmountSkeleton.tsx","../../src/components/external/TransactionsOverview/components/SummaryItem/constants.ts","../../src/components/external/TransactionsOverview/components/SummaryItem/SummaryItemLabel.tsx","../../src/components/external/TransactionsOverview/components/SummaryItem/SummaryItem.tsx","../../src/components/external/TransactionsOverview/components/TransactionTotalItem/TransactionTotalItem.tsx","../../src/components/internal/BaseList/constants.ts","../../src/components/internal/BaseList/BaseList.tsx","../../src/components/external/TransactionsOverview/hooks/useMaxWidths.ts","../../src/components/external/TransactionsOverview/components/TransactionTotals/TotalsCard.tsx","../../src/components/external/TransactionsOverview/components/TransactionTotals/TransactionTotals.tsx","../../src/components/external/TransactionsOverview/components/Balances/constants.ts","../../src/components/external/TransactionsOverview/components/BalanceItem/BalanceItem.tsx","../../src/components/external/TransactionsOverview/components/Balances/Balances.tsx","../../src/components/external/TransactionsOverview/components/MultiSelectionFilter/MultiSelectionFilter.tsx","../../src/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/utils.ts","../../src/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/useMultiSelectionFilter.ts","../../src/components/external/TransactionsOverview/components/MultiSelectionFilter/useMultiSelectionFilter/constants.ts","../../src/components/hooks/useDefaultOverviewFilterParams.ts","../../src/components/external/TransactionsOverview/hooks/useTransactionsOverviewMultiSelectionFilters.ts","../../src/components/internal/FilterBar/filters/AmountFilter/constants.ts","../../src/components/internal/FilterBar/filters/AmountFilter/RangeSelection.tsx","../../src/components/internal/FilterBar/filters/AmountFilter/AmountFilter.tsx","../../src/components/external/TransactionsOverview/components/TransactionsOverview/constants.ts","../../src/components/external/TransactionsOverview/components/TransactionsOverview/TransactionsOverview.tsx","../../src/components/external/TransactionsOverview/components/TransactionsOverviewContainer/constants.ts","../../src/components/external/TransactionsOverview/components/TransactionsOverviewContainer/TransactionsOverviewContainer.tsx","../../src/core/Context/CoreProvider.tsx","../../src/components/external/BaseElement.ts","../../src/components/external/UIElement/UIElement.tsx","../../src/components/external/TransactionsOverview/TransactionsOverviewElement.tsx","../../src/components/external/TransactionDetails/TransactionDetails.tsx","../../src/components/external/PayoutsOverview/components/PayoutsOverview/constants.ts","../../src/components/external/PayoutsOverview/components/PayoutsTable/constants.ts","../../src/components/external/PayoutsOverview/components/PayoutsTable/PayoutsTable.tsx","../../src/components/external/PayoutsOverview/components/PayoutsOverview/PayoutsOverview.tsx","../../src/components/external/PayoutsOverview/components/PayoutsOverviewContainer/constants.ts","../../src/components/external/PayoutsOverview/components/PayoutsOverviewContainer/PayoutsOverviewContainer.tsx","../../src/components/external/PayoutsOverview/PayoutsOverviewElement.tsx","../../src/components/external/PayoutDetails/PayoutDetails.tsx","../../src/index.ts"],"sourcesContent":["import { DevEnvironment } from './types';\n\nexport const FALLBACK_ENV = 'test' satisfies DevEnvironment;\nexport const normalizeLoadingContext = (loadingContext: string) => loadingContext?.replace?.(/([^\\/])$/, '$1/')!;\nexport const normalizeUrl = (url: string) => url?.replace(/^([^\\/])/, '/$1')!;\n\nexport const resolveEnvironment = (() => {\n const envs: Partial<Record<DevEnvironment, string>> = {\n test: 'https://platform-components-external-test.adyen.com/platform-components-external/api/',\n live: 'https://platform-components-external-live.adyen.com/platform-components-external/api/',\n };\n\n return (env?: DevEnvironment) => envs[env ?? FALLBACK_ENV] || envs[FALLBACK_ENV]!;\n})();\n","export const EMPTY_ARRAY = Object.freeze([]);\nexport const EMPTY_OBJECT = Object.freeze(Object.create(null));\n","import { EMPTY_ARRAY } from '../value/constants';\n\nexport const ALREADY_RESOLVED_PROMISE = Promise.resolve();\nexport const FOREVER_PENDING_PROMISE = Promise.race(EMPTY_ARRAY);\n","import { ALREADY_RESOLVED_PROMISE } from './constants';\nimport { Promised, PromiseState } from '../types';\n\nconst _pending = () => _PENDING;\nconst _PENDING: unique symbol = Symbol('<<PENDING>>');\n\nexport const getPromiseState = async (promise: Promise<any>): Promise<PromiseState> => {\n try {\n const value = await Promise.race([promise, ALREADY_RESOLVED_PROMISE.then(_pending)]);\n return value === _PENDING ? PromiseState.PENDING : PromiseState.FULFILLED;\n } catch {\n return PromiseState.REJECTED;\n }\n};\n\nexport const tryResolve = function <T extends any, Params extends any[] = []>(\n this: any,\n fn: (this: any, ...args: Params) => Promised<T>,\n ...args: Params\n) {\n return new Promise<T>(resolve => resolve(fn.call(this, ...args)));\n};\n","import type { ListWithoutFirst } from './types';\n\ntype _BoundFn<T, Args extends any[]> = Args extends []\n ? T extends (this: infer ThisType, ...args: [...infer RestArgs]) => infer ReturnType\n ? (thisValue: ThisType, ...args: RestArgs) => ReturnType\n : never\n : T extends (this: Args[0], ...args: [...ListWithoutFirst<Args>, ...infer RestArgs]) => infer ReturnType\n ? (...args: RestArgs) => ReturnType\n : never;\n\nexport const fn: <T, Args extends any[]>(func: T, ...args: Args) => _BoundFn<T, Args> = Function.prototype.bind.bind(Function.prototype.call);\n\n// prettier-ignore\nexport const constant = <T>(value?: T) => () => value;\n\nexport const asyncNoop = async () => {};\nexport const identity = <T>(value?: T) => value;\nexport const noop = () => {};\n\nexport const panic = (reason?: any) => {\n throw reason;\n};\n\nconst _toString = fn(Object.prototype.toString);\nexport const toStringTag = (value?: any) => _toString(value).slice(8, -1);\n","import { toStringTag } from '../common';\nimport type { GetPredicateType } from '../types';\n\nexport const isBoolean = (value?: any): value is boolean => value === !!value;\nexport const isFunction = <T>(value?: T): value is GetPredicateType<(...args: any[]) => any, T> => typeof value === 'function';\nexport const isNull = (value?: any): value is null => value === null;\nexport const isNullish = (value?: any): value is undefined | null => value == undefined;\nexport const isNumber = (value?: any): value is number => typeof value === 'number';\nexport const isPlainObject = <T>(value?: T): value is GetPredicateType<Record<any, any>, T> => toStringTag(value) === 'Object';\nexport const isString = (value?: any): value is string => typeof value === 'string';\nexport const isSymbol = (value?: any): value is symbol => typeof value === 'symbol';\nexport const isUndefined = (value?: any): value is undefined => value === undefined;\n","import { fn, identity } from '../common';\nimport { EMPTY_ARRAY } from '../value/constants';\nimport { isFunction, isNullish, isUndefined } from '../value/is';\nimport type { MapGetter } from './types';\nimport type { List } from '../types';\n\nexport const getMappedValue: MapGetter = (key, map, factory) => {\n let value = map.get(key);\n\n if (isUndefined(value) && isFunction(factory)) {\n if (!isUndefined((value = factory(key, map)))) {\n map.set(key, value);\n }\n }\n\n return value;\n};\n\nexport const listFrom = <T extends string = string>(value?: string | any[], fallbackList = EMPTY_ARRAY as unknown as T[]) => {\n const stringedValue = `${value || ''}`.trim();\n const stringedList = (stringedValue ? stringedValue.split(/(?:\\s*,\\s*)+/).filter(identity) : EMPTY_ARRAY) as T[];\n return stringedList.length ? stringedList : fallbackList;\n};\n\nexport const pickFrom = <C extends readonly any[] | any[]>(list: C, option?: C[number], defaultOption?: C[number]) => {\n if (list.includes(option)) return option;\n if (isNullish(option)) return list[0];\n return list.includes(defaultOption) ? defaultOption : list[0];\n};\n\nexport const some = fn(Array.prototype.some);\n\nconst _uniqueFlatten = function _uniqueFlatten<T>(reversed: boolean, items: List<T>, uniqueItems: Set<T> = new Set<T>()) {\n for (const item of items) {\n if (!Array.isArray(item)) {\n reversed && uniqueItems.delete(item);\n uniqueItems.add(item);\n } else _uniqueFlatten(reversed, item, uniqueItems);\n }\n return uniqueItems;\n};\n\ntype _UniqueFlatten = <T>(items: List<T>, uniqueItems?: Set<T>) => Set<T>;\n\nexport const uniqueFlatten = fn(_uniqueFlatten, void 0, false) as _UniqueFlatten;\nexport const uniqueFlattenReversed = fn(_uniqueFlatten, void 0, true) as _UniqueFlatten;\n","import { isString } from '../value/is';\nimport type { DateFunction, DateTimeComponents } from './types';\n\nexport const parseDate = ((...args) => {\n const [value] = args;\n\n const date =\n args.length >= 2\n ? new Date(...(args as DateTimeComponents))\n : value instanceof Date\n ? value\n : new Date((isString(value) || Number.isFinite(value) ? value : undefined)!);\n\n const timestamp = date.getTime();\n return Number.isFinite(timestamp) ? timestamp : undefined;\n}) as DateFunction<number | undefined>;\n","export const uniqueId = (() => {\n let counter = Date.now();\n return (prefix = 'adyen-pe') => `${prefix}-${++counter}`;\n})();\n\nexport default uniqueId;\n","export const UUID_V4_REGEXP = /^[a-f\\d]{8}-[a-f\\d]{4}-4[a-f\\d]{3}-[89ab][a-f\\d]{3}-[a-f\\d]{12}$/i;\n\nexport const uuid = (() => {\n const _UUID_V4_FILLER_STRING = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';\n\n return () =>\n _UUID_V4_FILLER_STRING.replace(/[xy]/g, xy => {\n const randomNibble = (Math.random() * 16) | 0;\n const nibble = xy == 'x' ? randomNibble : (randomNibble & 0x3) | 0x8;\n return nibble.toString(16);\n });\n})();\n\nexport default uuid;\n","import { isBoolean } from './is';\n\nexport const boolify = (value?: any, fallbackBoolean = value) => (isBoolean(value) ? value : !!fallbackBoolean);\n\nexport const boolOrFalse = (value?: any) => value === true;\nexport const boolOrTrue = (value?: any) => value !== false;\n\nexport const falsify = (_?: any): false => false;\nexport const truthify = (_?: any): true => true;\n","import { fn } from '../common';\nimport { EMPTY_OBJECT } from '../value/constants';\nimport { truthify } from '../value/bool';\nimport { isPlainObject } from '../value/is';\nimport type { PredicateType } from '../types';\n\ntype _PlainObject<T> = PredicateType<typeof isPlainObject<T>>;\n\nexport const asPlainObject = <T>(value?: T, fallback: _PlainObject<T> = EMPTY_OBJECT): _PlainObject<T> =>\n isPlainObject(value) ? value : asPlainObject(fallback, EMPTY_OBJECT);\n\ninterface _StructFrom {\n <T extends Record<any, any>, P extends object | null>(o: P, properties: { [K in keyof T]: TypedPropertyDescriptor<T[K]> }): P extends object\n ? Omit<P, keyof T> & T\n : T;\n <P extends object | null>(o: P): P extends object ? { [K in keyof P]: P[K] } : Record<any, any>;\n}\n\ninterface _Struct {\n <T extends Record<any, any>>(properties: { [K in keyof T]: TypedPropertyDescriptor<T[K]> }): T;\n (): Record<any, any>;\n}\n\nexport const structFrom = fn(Object.create, void 0) as _StructFrom;\nexport const struct: _Struct = fn(structFrom, void 0, null);\n\nexport const withFreezeProxyHandlers = <T extends object>(handler: ProxyHandler<T> = EMPTY_OBJECT): Readonly<ProxyHandler<T>> => {\n return Object.freeze({ ...handler, defineProperty: truthify, set: truthify } as const);\n};\n","import { fn } from '../common';\nimport { boolOrFalse, boolOrTrue } from '../value/bool';\nimport type { GetterPropertyDescriptor, ValuePropertyDescriptor } from './types';\n\nexport const enumerable = <T>(value: T, writable = false): ValuePropertyDescriptor<T> => ({\n writable: boolOrFalse(writable),\n enumerable: true,\n value,\n});\n\nexport const getter = <T>(get: () => T, enumerable = true): GetterPropertyDescriptor<T> => ({\n enumerable: boolOrTrue(enumerable),\n get,\n});\n\nexport const hasOwnProperty = fn(Object.prototype.hasOwnProperty);\n","/**\n * Compares two values using [`SameValueZero`](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero) comparison and returns `true` if they are the same, or `false` otherwise.\n * The comparison is very similar to strict equality comparison but also returns `true` if both values are `NaN`.\n */\nexport const sameValue = (a: any, b: any) => a === b || !(a === a || b === b);\n","import { isNumber, isSymbol } from './is';\n\nexport const clamp = <T extends number = number>(min: T, value: T, max: T) => {\n if (Math.min(min, max) !== min) [min, max] = [max, min];\n return Math.max(min, Math.min(value, max));\n};\n\nexport const isBitSafeInteger = (value?: any): value is number => !isSymbol(value) && value === ~~value;\nexport const isInfinity = (value?: any): value is number => isNumber(value) && 1 / value === 0;\n\nexport const mid = (low: number, high: number) => {\n if (Number.isInteger(low) && Number.isInteger(high)) {\n return low + Math.floor((high - low) / 2);\n }\n throw TypeError(`Expects 2 integer values: [${low}, ${high}]`);\n};\n\nexport const mod = (value: number, modulo: number) => ((value % modulo) + modulo) % modulo;\n","import { isNullish, isString } from './is';\n\nexport const capitalize = (str?: string) => (str && str?.length > 0 ? `${str[0]!.toUpperCase()}${str.slice(1)}` : str);\nexport const isEmptyString = (str?: string) => isNullish(str) || (isString(str) && /^\\s*$/.test(str));\n","import { boolOrFalse } from '../../../utils';\n\nexport const ERR_AUTH_REFRESH_ABORTED: unique symbol = Symbol('Error<AUTH_REFRESH_ABORTED>');\nexport const ERR_AUTH_REFRESH_FAILED: unique symbol = Symbol('Error<AUTH_REFRESH_FAILED>');\nexport const EVT_AUTH_STATE_CHANGE = '_authStateChange';\nexport const SETUP_ENDPOINT_PATH = '/setup';\n\nexport const AUTO_REFRESH = boolOrFalse(process.env.SESSION_AUTO_REFRESH);\n\nexport const MAX_AGE_MS = (() => {\n // Value provisioned in `SESSION_MAX_AGE_MS` env variable\n let maxAgeMs = ~~process.env.SESSION_MAX_AGE_MS!;\n\n if (Number.isFinite(maxAgeMs) && (maxAgeMs = Math.max(0, ~~maxAgeMs))) {\n return maxAgeMs;\n }\n})();\n","import { ErrorTypes } from '../Http/utils';\n\nclass AdyenPlatformExperienceError extends Error {\n public type: string;\n public errorCode?: string;\n public requestId?: string;\n constructor(type: ErrorTypes, requestId?: string, message?: string, errorCode?: string) {\n super(message);\n this.type = type;\n this.name = type;\n this.errorCode = errorCode;\n this.requestId = requestId;\n }\n}\n\nexport default AdyenPlatformExperienceError;\n","import { isNullish } from '../../utils';\nimport { AdyenErrorResponse, ErrorLevel, HttpOptions } from './types';\nimport AdyenPlatformExperienceError from '../Errors/AdyenPlatformExperienceError';\n\nexport const enum ErrorTypes {\n /** Network error. */\n NETWORK_ERROR = 'NETWORK_ERROR',\n\n /** Shopper canceled the current transaction. */\n CANCEL = 'CANCEL',\n\n /** Implementation error. The method or parameter are incorrect or are not supported. */\n IMPLEMENTATION_ERROR = 'IMPLEMENTATION_ERROR',\n\n /** Generic error. */\n ERROR = 'ERROR',\n\n /** Token expired */\n EXPIRED_TOKEN = 'EXPIRED_TOKEN',\n}\n\nexport const getErrorType = (errorCode: number): ErrorTypes => {\n switch (errorCode) {\n case 401:\n return ErrorTypes.EXPIRED_TOKEN;\n default:\n return ErrorTypes.NETWORK_ERROR;\n }\n};\n\nexport const getRequestObject = (options: HttpOptions, data?: any): RequestInit => {\n const { headers = [], method = 'GET' } = options;\n\n return {\n method,\n mode: 'cors',\n cache: 'default',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n ...headers,\n },\n redirect: 'follow',\n signal: options.signal,\n referrerPolicy: 'no-referrer-when-downgrade',\n ...(method === 'POST' && data && { body: JSON.stringify(data) }),\n };\n};\n\nexport function handleFetchError({\n message,\n level,\n errorCode,\n type = ErrorTypes.NETWORK_ERROR,\n requestId,\n}: {\n message: string;\n level: ErrorLevel | undefined;\n errorCode?: string;\n type?: ErrorTypes;\n requestId?: string;\n}) {\n switch (level) {\n case 'silent': {\n break;\n }\n case 'info':\n case 'warn':\n console[level](message);\n break;\n case 'error':\n default:\n throw new AdyenPlatformExperienceError(type, requestId, message, errorCode);\n }\n}\n\nexport function isAdyenErrorResponse(data: any): data is AdyenErrorResponse {\n return data && data.errorCode && data.type && (data.detail || data.invalidFields) && data.status;\n}\n\nexport function parseSearchParams<T extends Record<string, any>>(parameters: T) {\n const params = new URLSearchParams();\n\n for (const param of Object.keys(parameters)) {\n const value = parameters[param];\n if (!isNullish(value)) {\n if (Array.isArray(value)) {\n value.forEach(item => params.append(param, item));\n } else {\n // For non-array values, just set the key and value normally\n params.set(param, String(value));\n }\n }\n }\n\n return params;\n}\n","import Core from '../../core';\nimport { SETUP_ENDPOINT_PATH } from './constants';\nimport { parseSearchParams } from '../../Http/utils';\nimport { SessionContext } from '../../../primitives/context/session';\nimport { asPlainObject, EMPTY_OBJECT, isPlainObject, isUndefined, noop, struct, withFreezeProxyHandlers } from '../../../utils';\nimport type { EndpointHttpCallables, EndpointSuccessResponse, SessionObject, SetupContext, SetupResponse } from '../types';\nimport type { EndpointName, SetupEndpoint } from '../../../types/api/endpoints';\nimport type { HttpMethod } from '../../Http/types';\nimport type { Promised } from '../../../utils/types';\n\nexport class AuthSetupContext {\n private _endpoints: SetupContext['endpoints'] = EMPTY_OBJECT;\n private _revokeEndpointsProxy = noop;\n\n declare loadingContext?: Core<any>['loadingContext'];\n\n constructor(private readonly _session: SessionContext<SessionObject, any[]>) {\n this._fetchSetupEndpoint = this._fetchSetupEndpoint.bind(this);\n this.refresh = this.refresh.bind(this);\n }\n\n get endpoints() {\n return this._endpoints;\n }\n\n async refresh(refreshAbortablePromise: <T>(getPromise: Promised<T> | ((signal: AbortSignal) => Promised<T>)) => Promise<T>) {\n this._resetEndpoints();\n const { endpoints } = await refreshAbortablePromise(this._fetchSetupEndpoint);\n ({ proxy: this._endpoints, revoke: this._revokeEndpointsProxy } = this._getEndpointsProxy(endpoints));\n }\n\n private _fetchSetupEndpoint(signal: AbortSignal) {\n return this._session.http({\n method: 'POST',\n path: SETUP_ENDPOINT_PATH,\n errorLevel: 'fatal',\n loadingContext: this.loadingContext,\n signal,\n }) as Promise<SetupResponse>;\n }\n\n private _getEndpointsProxy(endpoints: SetupEndpoint) {\n const availableEndpoints: Set<EndpointName> = new Set(Object.keys(endpoints) as (keyof typeof endpoints)[]);\n const sessionAwareEndpoints: SetupContext['endpoints'] = struct();\n\n return Proxy.revocable(\n EMPTY_OBJECT as typeof sessionAwareEndpoints,\n withFreezeProxyHandlers({\n get: <Endpoint extends EndpointName>(target: typeof sessionAwareEndpoints, endpoint: Endpoint, receiver: any) => {\n if (!availableEndpoints.has(endpoint)) {\n return Reflect.get(target, endpoint, receiver);\n }\n\n sessionAwareEndpoints[endpoint] ??= (() => {\n const { method = 'GET', url } = endpoints[endpoint];\n if (isUndefined(url || undefined)) return;\n\n return ((...args: Parameters<EndpointHttpCallables>) => {\n const httpOptions = this._getHttpOptions(method as HttpMethod, url!, ...args);\n return this._session.http(httpOptions) as Promise<EndpointSuccessResponse<Endpoint>>;\n }) as EndpointHttpCallables<Endpoint>;\n })()!;\n\n return sessionAwareEndpoints[endpoint];\n },\n })\n );\n }\n\n private _getHttpOptions(method: HttpMethod, path: string, ...args: Parameters<EndpointHttpCallables>) {\n const { loadingContext } = this;\n const [request, requestParams] = args;\n const { path: pathParams, query: searchParams } = asPlainObject(requestParams as any);\n const params = searchParams && parseSearchParams(searchParams);\n\n if (isPlainObject(pathParams)) {\n for (const pathParamKey of Object.keys(pathParams)) {\n path = path.replace(`{${pathParamKey}}`, pathParams[pathParamKey]);\n }\n }\n\n return { loadingContext, ...request, method, params, path } as const;\n }\n\n private _resetEndpoints() {\n this._revokeEndpointsProxy();\n this._revokeEndpointsProxy = noop;\n this._endpoints = EMPTY_OBJECT;\n }\n}\n\nexport default AuthSetupContext;\n","export const DEFAULT_INTERVAL_MS = 1000;\nexport const MAX_INTERVAL_MS = 0x7fffffff;\n","import { boolOrFalse, clamp, enumerable, struct } from '../../../utils';\nimport { DEFAULT_INTERVAL_MS, MAX_INTERVAL_MS } from './constants';\nimport type { Interval } from './types';\n\n/**\n * Starts an abortable interval with autocorrection for time drifts.\n *\n * @example\n * // Schedule a callback every second:\n * let interval = createInterval(time => {\n * console.log('clock!', time);\n * }, 1000, true);\n *\n * // And to stop it:\n * interval.cancel();\n *\n * // Don't forget to clean up:\n * interval = null;\n *\n * @param callback Callback to be executed at interval\n * @param ms Interval (in milliseconds)\n * @param runCallbackAsap Whether to execute callback as soon as possible\n *\n * @see [Gist by Jake Archibald](https://gist.github.com/jakearchibald/cb03f15670817001b1157e62a076fe95)\n */\nexport const createInterval = (callback: (time: DOMHighResTimeStamp) => any, ms = DEFAULT_INTERVAL_MS, runCallbackAsap = false) => {\n let _abortController: AbortController | undefined = new AbortController();\n let _intervalDelay = clamp(0, ~~ms, MAX_INTERVAL_MS);\n let _shouldRunCallbackAsap = boolOrFalse(runCallbackAsap);\n\n if (!Number.isFinite(_intervalDelay)) {\n _intervalDelay = DEFAULT_INTERVAL_MS;\n }\n\n // Prefer `currentTime`, as it'll better sync animations queued in the same frame,\n // but if it isn't supported, `performance.now()` is fine.\n const _startTime = (document.timeline?.currentTime as number) ?? performance.now();\n\n const _cancel = () => {\n // Release the abort controller resource once aborted\n _abortController?.abort();\n _abortController = undefined;\n };\n\n const _frame = (time: number) => {\n if (!_abortController || _abortController.signal.aborted) return;\n _scheduleFrame(time);\n callback(time);\n };\n\n const _scheduleFrame = (time: number) => {\n // Just in case the interval callback needs to be executed as soon as possible,\n // start with a zero delay (instead of the adjusted `ms` delay)\n let delay = 0;\n\n if (!_shouldRunCallbackAsap) {\n const elapsed = time - _startTime;\n const roundedElapsed = Math.round(elapsed / _intervalDelay) * _intervalDelay;\n const targetNext = _startTime + roundedElapsed + _intervalDelay;\n\n // Callback should be executed after adjusted `ms` delay\n delay = targetNext - performance.now();\n }\n\n setTimeout(() => requestAnimationFrame(_frame), delay);\n };\n\n _scheduleFrame(_startTime);\n\n // A frame must have already been scheduled for immediate run\n _shouldRunCallbackAsap = false;\n\n return struct<Interval>({\n cancel: enumerable(_cancel),\n delay: enumerable(ms),\n signal: enumerable(_abortController.signal),\n });\n};\n\nexport default createInterval;\n","import { getter, isFunction, isNullish, noop, struct } from '../../../utils';\nimport type { WatchListEntries, WatchListSubscriptionEventCallbacks } from './types';\n\nexport const createWatchListCurrentStateRecord = <T extends Record<string, any>>(entries: WatchListEntries<T>) => {\n const statePropertyDescriptors = {} as { [K in keyof T]: TypedPropertyDescriptor<T[K]> };\n const entriesPropertyDescriptors = Object.getOwnPropertyDescriptors(entries) as typeof statePropertyDescriptors;\n\n for (const key of Object.keys(entries) as (keyof T)[]) {\n const { get, value } = entriesPropertyDescriptors[key];\n\n statePropertyDescriptors[key] = getter(\n get ||\n ((isFunction(value)\n ? // ensure that the `this` binding of the getter function is preserved\n value.bind(entries)\n : () => value) as NonNullable<typeof get>)\n );\n }\n\n return struct<Readonly<T>>(statePropertyDescriptors);\n};\n\nexport const createWatchListSubscriptionEventCallbacks = () => {\n const callbacks = { idle: null, resume: null } as {\n [K in keyof WatchListSubscriptionEventCallbacks]: NonNullable<WatchListSubscriptionEventCallbacks[K]> | null;\n };\n\n const descriptors = {} as {\n [K in keyof typeof callbacks]: {\n get: () => (typeof callbacks)[K];\n set: (callback?: (typeof callbacks)[K]) => void;\n };\n };\n\n for (const key of Object.keys(callbacks) as (keyof typeof callbacks)[]) {\n descriptors[key] = {\n get: () => callbacks[key] ?? noop,\n set: (callback?: (typeof callbacks)[typeof key]) => {\n if (isNullish(callback)) {\n callbacks[key] = null;\n } else if (isFunction(callback) && callback !== callbacks[key]) {\n callbacks[key] = callback;\n }\n },\n };\n }\n\n return struct(descriptors) as WatchListSubscriptionEventCallbacks;\n};\n","export const UNSUBSCRIBE_TOKEN: unique symbol = Symbol('<<UNSUBSCRIBE>>');\n","import { enumerable, getMappedValue, getter, isFunction, noop, sameValue, struct } from '../../../utils';\nimport { createWatchListCurrentStateRecord, createWatchListSubscriptionEventCallbacks } from './helpers';\nimport type { WatchList, WatchListEntries, WatchListSubscriptionCallback } from './types';\nimport { UNSUBSCRIBE_TOKEN } from './constants';\n\nexport const isWatchlistUnsubscribeToken = <T extends Record<string, any>>(\n currentStateSnapshotOrUnsubscribeToken?: Parameters<WatchListSubscriptionCallback<T>>[0]\n): currentStateSnapshotOrUnsubscribeToken is typeof UNSUBSCRIBE_TOKEN => currentStateSnapshotOrUnsubscribeToken === UNSUBSCRIBE_TOKEN;\n\nexport const createWatchlist = <T extends Record<string, any>>(entries: WatchListEntries<T>) => {\n let lastStateSnapshot: Readonly<T> | undefined;\n\n const currentState = createWatchListCurrentStateRecord(entries);\n const subscriptionEventCallbacks = createWatchListSubscriptionEventCallbacks();\n const subscriptionCallbacksWithReferenceCounting = new Map<WatchListSubscriptionCallback<T>, number>();\n const unsubscribeCallbacks = new WeakMap<WatchListSubscriptionCallback<T>, (...args: any[]) => void>();\n\n const _getCurrentStateSnapshot = () => Object.freeze({ ...currentState });\n const _isWithoutSubscriptionCallbacks = () => subscriptionCallbacksWithReferenceCounting.size === 0;\n\n const _notifySubscriptions = (unsubscribeToken?: typeof UNSUBSCRIBE_TOKEN) => {\n if (_isWithoutSubscriptionCallbacks()) return;\n\n if (isWatchlistUnsubscribeToken(unsubscribeToken)) {\n const subscriptionCallbacks: WatchListSubscriptionCallback<T>[] = [];\n\n subscriptionCallbacksWithReferenceCounting.forEach((referenceCount, callback) => {\n subscriptionCallbacks.push(callback);\n const unsubscribeCallback = unsubscribeCallbacks.get(callback)!;\n while (referenceCount--) unsubscribeCallback?.();\n });\n\n subscriptionCallbacks.forEach(callback => callback(unsubscribeToken));\n return true;\n }\n\n const currentStateSnapshot = lastStateSnapshot as Readonly<T>;\n\n lastStateSnapshot = _getCurrentStateSnapshot();\n\n for (const key of Object.keys(lastStateSnapshot) as (keyof T)[]) {\n if (sameValue(lastStateSnapshot[key], currentStateSnapshot[key])) continue;\n subscriptionCallbacksWithReferenceCounting.forEach((_, callback) => callback(lastStateSnapshot!));\n return true;\n }\n\n return false;\n };\n\n const subscribe: WatchList<T>['subscribe'] = (subscriptionCallback?: WatchListSubscriptionCallback<T>) => {\n if (!isFunction(subscriptionCallback)) return noop;\n\n const unsubscribeCallback = getMappedValue(subscriptionCallback, unsubscribeCallbacks, () => {\n let unsubscribe: (() => void) | undefined = () => {\n const subscriptionCallbackReferenceCount = subscriptionCallbacksWithReferenceCounting.get(subscriptionCallback) || 0;\n\n if (subscriptionCallbackReferenceCount === 1) {\n unsubscribe = undefined;\n subscriptionCallbacksWithReferenceCounting.delete(subscriptionCallback);\n unsubscribeCallbacks.delete(subscriptionCallback);\n\n if (_isWithoutSubscriptionCallbacks()) {\n lastStateSnapshot = undefined;\n subscriptionEventCallbacks.idle();\n }\n } else if (subscriptionCallbackReferenceCount > 1) {\n subscriptionCallbacksWithReferenceCounting.set(subscriptionCallback, subscriptionCallbackReferenceCount - 1);\n }\n };\n\n return () => {\n unsubscribe?.();\n };\n })!;\n\n const willResumeSubscriptions = _isWithoutSubscriptionCallbacks();\n\n subscriptionCallbacksWithReferenceCounting.set(\n subscriptionCallback,\n (subscriptionCallbacksWithReferenceCounting.get(subscriptionCallback) || 0) + 1\n );\n\n if (willResumeSubscriptions) {\n lastStateSnapshot = _getCurrentStateSnapshot();\n subscriptionEventCallbacks.resume();\n }\n\n subscriptionCallback(lastStateSnapshot!);\n\n return unsubscribeCallback;\n };\n\n return struct<WatchList<T>>({\n idle: getter(_isWithoutSubscriptionCallbacks),\n on: enumerable(subscriptionEventCallbacks),\n cancelSubscriptions: enumerable(() => _notifySubscriptions(UNSUBSCRIBE_TOKEN) as true),\n requestNotification: enumerable(() => _notifySubscriptions()),\n snapshot: getter(() => lastStateSnapshot ?? _getCurrentStateSnapshot()),\n subscribe: enumerable(subscribe),\n });\n};\n\nexport default createWatchlist;\n","import { createInterval, Interval } from '../interval';\nimport { createWatchlist } from '../../reactive/watchlist';\nimport { enumerable, struct } from '../../../utils';\nimport type { Clock, ClockWatchListEntries } from './types';\n\nexport const clock = (() => {\n let interval: Interval | undefined;\n\n const { cancelSubscriptions, requestNotification, subscribe, on } = createWatchlist<ClockWatchListEntries>({\n // Use wrapper function instead of direct reference to `Date.now`,\n // otherwise, tests will fail since `Date.now` won't be mocked\n now: () => Date.now(),\n });\n\n on.resume = () => {\n interval = createInterval(requestNotification, 1000, false);\n };\n\n on.idle = () => {\n interval?.cancel();\n interval = undefined;\n };\n\n return struct<Clock>({\n cancelSubscriptions: enumerable(cancelSubscriptions),\n subscribe: enumerable(subscribe),\n });\n})();\n\nexport default clock;\n","import { enumerable, getter, isUndefined, noop, struct } from '../../../utils';\nimport type { Abortable } from './types';\n\nexport const createAbortable = <T>(abortReason?: T) => {\n let _abortController: AbortController | undefined;\n let _abortSignal: AbortSignal;\n let _abortPromise: Promise<never>;\n\n const _abort = () => {\n _abortController?.abort();\n _abortController = undefined;\n };\n\n const _getAbortPromise = () => {\n _abortPromise = new Promise<never>((_, reject) => {\n _abortSignal.addEventListener('abort', function _abort() {\n _abortSignal.removeEventListener('abort', _abort);\n reject(abortReason);\n });\n\n if (_abortSignal.aborted) throw abortReason;\n });\n\n // no-op catch callback to silence unnecessary \"unhandled rejection\" warnings\n _abortPromise.catch(noop);\n\n return _abortPromise;\n };\n\n const _refreshIfNecessary = () => {\n if (isUndefined(_abortController)) {\n _abortController = new AbortController();\n _abortSignal = _abortController.signal;\n _abortPromise = _getAbortPromise();\n }\n return abortable;\n };\n\n const abortable = struct<Abortable<T>>({\n abort: enumerable(_abort),\n promise: getter(() => _abortPromise),\n reason: enumerable(abortReason),\n refresh: enumerable(_refreshIfNecessary),\n signal: getter(() => _abortSignal),\n });\n\n return _refreshIfNecessary();\n};\n\nexport default createAbortable;\n","import { enumerable, getter, noop, struct } from '../../../utils';\nimport type { Promised } from '../../../utils/types';\nimport type { Deferred } from './types';\n\nexport const createDeferred = <T extends Promised<any> = any>() => {\n let _promise: Deferred<T>['promise'];\n let _reject: Deferred<T>['reject'];\n let _resolve: Deferred<T>['resolve'];\n\n const _refresh = () => {\n const previousResolve = _resolve ?? noop;\n\n const currentPromise = new Promise<T>((resolve, reject) => {\n _resolve = resolve;\n _reject = reject;\n });\n\n previousResolve((_promise = currentPromise));\n return deferred;\n };\n\n const deferred = struct<Deferred<T>>({\n promise: getter(() => _promise),\n refresh: enumerable(_refresh),\n reject: enumerable(reason => _reject(reason)),\n resolve: enumerable(value => _resolve(value)),\n });\n\n return _refresh();\n};\n\nexport default createDeferred;\n","import { createAbortable } from '../abortable';\nimport { createDeferred } from '../deferred';\nimport { enumerable, getter, isUndefined, tryResolve } from '../../../utils';\nimport type { Promised } from '../../../utils/types';\nimport type { Promisor } from './types';\n\nexport const createPromisor = <T extends any, Params extends any[] = []>(\n factory: (this: any, signal: AbortSignal, ...args: Params) => Promised<T>\n) => {\n let _promise: Promisor<T, Params>['promise'];\n const _abortable = createAbortable(Symbol());\n const _deferred = createDeferred<T>();\n\n const promisor = function (this: any, ...args) {\n if (isUndefined(_promise)) _deferred.refresh();\n\n _abortable.abort();\n _abortable.refresh();\n _promise = tryResolve.call(this, factory, _abortable.signal, ...args) as Promise<T>;\n\n let resolveDeferred: () => void;\n const currentPromise = _promise;\n\n (async () => {\n try {\n const value = await currentPromise;\n resolveDeferred = () => _deferred.resolve(value);\n } catch (ex) {\n resolveDeferred = () => _deferred.reject(ex);\n }\n\n if (_promise === currentPromise) {\n _promise = undefined!;\n resolveDeferred();\n }\n })();\n\n return currentPromise;\n } as Promisor<T, Params>;\n\n return Object.defineProperties(promisor, {\n abort: enumerable(() => _abortable.abort()),\n promise: getter(() => _deferred.promise),\n refresh: enumerable(() => void _deferred.refresh()),\n });\n};\n\nexport default createPromisor;\n","import { enumerable, isFunction, isUndefined, noop, struct } from '../../../utils';\nimport type { EmittableEvent, Emitter, EmitterEvents } from './types';\n\nexport const createEventEmitter = <Events extends EmitterEvents>() => {\n const _eventTarget = new (class extends EventTarget {})();\n\n const _emitEvent: Emitter<Events>['emit'] = (type, ...restArgs) => {\n const [detail] = restArgs;\n\n if (restArgs.length && isUndefined(detail)) {\n // `undefined` has been explicitly passed as the detail of the event to be dispatched.\n // Notify the consumer with a corresponding warning indicating possible resolutions.\n // Warning can further be conditioned to only be available in development environment.\n console.warn(\n 'Unexpected value `undefined` provided for event detail.\\n' +\n '\\tTurn off this warning by doing either of the following:\\n' +\n '\\t(1) omit the optional event detail parameter.\\n' +\n '\\t(2) explicitly pass `null` for the event detail parameter (instead of `undefined`).\\n'\n );\n }\n\n const event = new CustomEvent(\n type,\n struct({\n bubbles: enumerable(false),\n cancelable: enumerable(false),\n detail: enumerable(detail ?? null),\n })\n ) as EmittableEvent<Events, typeof type>;\n\n return _eventTarget.dispatchEvent(event);\n };\n\n const _onEvent: Emitter<Events>['on'] = (type, listener) => {\n if (!isFunction(listener)) return noop;\n\n const _listener = (evt: Event) =>\n listener.call(\n null,\n struct({\n detail: enumerable((evt as EmittableEvent<Events, typeof type>).detail),\n timeStamp: enumerable(evt.timeStamp),\n type: enumerable((evt as EmittableEvent<Events, typeof type>).type),\n })\n );\n\n _eventTarget.addEventListener(type, _listener);\n\n return () => _eventTarget.removeEventListener(type, _listener);\n };\n\n return struct<Emitter<Events>>({\n emit: enumerable(_emitEvent),\n on: enumerable(_onEvent),\n });\n};\n\nexport default createEventEmitter;\n","export const ERR_SESSION_EXPIRED: unique symbol = Symbol('Error<SESSION_EXPIRED>');\nexport const ERR_SESSION_FACTORY_UNAVAILABLE: unique symbol = Symbol('Error<SESSION_FACTORY_UNAVAILABLE>');\nexport const ERR_SESSION_HTTP_UNAVAILABLE: unique symbol = Symbol('Error<SESSION_HTTP_UNAVAILABLE>');\nexport const ERR_SESSION_REFRESH_ABORTED: unique symbol = Symbol('Error<SESSION_REFRESH_ABORTED>');\nexport const ERR_SESSION_INVALID: unique symbol = Symbol('Error<SESSION_INVALID>');\nexport const EVT_SESSION_EXPIRED_STATE_CHANGE = '_sessionExpiredStateChange';\nexport const EVT_SESSION_REFRESHING_STATE_CHANGE = '_sessionRefreshingStateChange';\n","import clock from '../../time/clock';\nimport { createAbortable } from '../../async/abortable';\nimport { createPromisor } from '../../async/promisor';\nimport { createEventEmitter } from '../../reactive/eventEmitter';\nimport { isWatchlistUnsubscribeToken } from '../../reactive/watchlist';\nimport { ALREADY_RESOLVED_PROMISE, boolOrFalse, falsify, isFunction, isUndefined, noop, parseDate, tryResolve } from '../../../utils';\nimport type { SessionEventType, SessionSpecification } from './types';\nimport {\n ERR_SESSION_EXPIRED,\n ERR_SESSION_FACTORY_UNAVAILABLE,\n ERR_SESSION_HTTP_UNAVAILABLE,\n ERR_SESSION_REFRESH_ABORTED,\n ERR_SESSION_INVALID,\n EVT_SESSION_EXPIRED_STATE_CHANGE,\n EVT_SESSION_REFRESHING_STATE_CHANGE,\n} from './constants';\n\nexport class SessionContext<T, HttpParams extends any[] = any[]> {\n private _expired = false;\n private _refreshing = false;\n private _refreshCount = 0;\n private _refreshEventPending = false;\n private _refreshingPromise: Promise<void> | undefined;\n private _refreshPending = false;\n\n private _session: T | undefined;\n private _sessionActivationTimestamp: number | undefined;\n private _sessionExpirationTimestamp: number | undefined;\n private _stopSessionClock: (() => void) | undefined;\n\n private readonly _eventEmitter = createEventEmitter<SessionEventType>();\n private readonly _refreshAbortable = createAbortable(ERR_SESSION_REFRESH_ABORTED);\n\n private readonly _sessionPromisor = createPromisor(function (this: SessionContext<T, HttpParams>, _, session: T) {\n this._expired = this._refreshPending = false;\n this._eventEmitter.emit(EVT_SESSION_EXPIRED_STATE_CHANGE);\n return session;\n });\n\n declare http: typeof this._sessionHttp;\n declare on: (typeof this._eventEmitter)['on'];\n declare refresh: typeof this._refreshSession;\n\n constructor(private readonly _specification: SessionSpecification<T, HttpParams>) {\n this.http = this._sessionHttp.bind(this);\n this.on = this._eventEmitter.on;\n this.refresh = this._refreshSession.bind(this);\n }\n\n get isExpired() {\n return this._sessionIsExpired();\n }\n\n get refreshing() {\n return this._refreshing;\n }\n\n get timestamp() {\n return this._sessionActivationTimestamp;\n }\n\n private _assertRefreshNotInterruptedByAbort(signal: AbortSignal, err: any = Symbol()) {\n // Passing a unique symbol as default value for omitted `err` argument ensures that this check\n // will always return the `aborted` status of the signal\n if (this._refreshInterruptedByAbort(signal, err)) {\n throw this._refreshAbortable.reason!;\n }\n }\n\n private _assertSession(value: any): asserts value is T {\n try {\n this._specification.assert?.(value);\n } catch (ex) {\n throw ERR_SESSION_INVALID;\n }\n }\n\n private _assertSessionFactory(value: any): asserts value is NonNullable<SessionSpecification<T>['onRefresh']> {\n if (!isFunction(value)) throw ERR_SESSION_FACTORY_UNAVAILABLE;\n }\n\n private _assertSessionHttp(value: any): asserts value is NonNullable<SessionSpecification<T, HttpParams>['http']> {\n if (!isFunction(value)) throw ERR_SESSION_HTTP_UNAVAILABLE;\n }\n\n private async _canFulfillPendingSessionRefresh() {\n const canRefresh = await tryResolve(async () => {\n const _autoRefresh = this._specification.autoRefresh;\n return isFunction(_autoRefresh) ? _autoRefresh.call(this._specification, this._session) : _autoRefresh;\n }).catch(falsify);\n\n return boolOrFalse(canRefresh);\n }\n\n private async _fulfillPendingSessionRefresh(skipCanRefreshCheck = false) {\n if (!boolOrFalse(skipCanRefreshCheck) && !(await this._canFulfillPendingSessionRefresh())) return;\n if (!this._refreshPending || this._refreshCount > 0) return;\n // no-op catch callback ensures that unnecessary unhandled rejection warnings are silenced.\n this._refreshSession().catch(noop);\n }\n\n private async _getNextSession(signal: AbortSignal) {\n this._assertSessionFactory(this._specification.onRefresh);\n const nextSession = await this._specification.onRefresh(this._session, signal);\n\n this._assertRefreshNotInterruptedByAbort(signal);\n this._assertSession(nextSession);\n return nextSession;\n }\n\n private _onSessionExpired(refreshImmediately = false) {\n if (this._refreshPending) return;\n\n this._stopSessionClock?.();\n this._expired = this._refreshPending = true;\n this._eventEmitter.emit(EVT_SESSION_EXPIRED_STATE_CHANGE);\n\n if (boolOrFalse(refreshImmediately)) {\n // attempt immediate refresh (if necessary)\n this._fulfillPendingSessionRefresh().catch(noop);\n }\n }\n\n private _refreshInterruptedByAbort(signal: AbortSignal, err?: any): err is typeof this._refreshAbortable.reason {\n return err === this._refreshAbortable.reason! || signal.aborted;\n }\n\n private async _refreshSession() {\n this._sessionPromisor.refresh();\n this._refreshAbortable.abort();\n this._refreshAbortable.refresh();\n this._refreshCount++;\n\n // Capture the current abort signal for this session refresh request\n const signal = this._refreshAbortable.signal;\n\n await (this._refreshingPromise ??= (async () => {\n if (!this._refreshing) {\n this._refreshing = true;\n\n // Await an already resolved promise to defer the dispatch of a new `refreshChange` event\n // Should be sufficient to ensure that any pending `refreshChange` event gets dispatched first\n if (this._refreshEventPending) await ALREADY_RESOLVED_PROMISE;\n\n this._eventEmitter.emit(EVT_SESSION_REFRESHING_STATE_CHANGE);\n }\n })());\n\n try {\n const nextSession = await Promise.race([this._getNextSession(signal), this._refreshAbortable.promise]).catch(reason => {\n this._assertRefreshNotInterruptedByAbort(signal, reason);\n throw reason;\n });\n\n this._assertRefreshNotInterruptedByAbort(signal);\n await this._setupSessionClock(nextSession);\n await this._sessionPromisor((this._session = nextSession));\n } finally {\n /* Finally block to ensure that control flow always reaches here. */\n\n // The session refresh completion steps should run only once\n // Only for the last session refresh request\n if (!signal.aborted && this._refreshing) {\n this._refreshEventPending = true;\n this._refreshingPromise = undefined;\n this._refreshing = false;\n this._refreshCount = 0;\n\n // Await an already resolved promise to defer the dispatch of a new `refreshChange` event\n // Should be sufficient to ensure that the `expireChange` event gets dispatched first\n await ALREADY_RESOLVED_PROMISE;\n\n this._refreshEventPending = false;\n this._eventEmitter.emit(EVT_SESSION_REFRESHING_STATE_CHANGE);\n }\n }\n }\n\n private async _sessionHttp(...args: HttpParams) {\n await this._fulfillPendingSessionRefresh(true);\n\n while (true) {\n try {\n const session = await this._sessionPromisor.promise;\n this._assertSessionHttp(this._specification.http);\n return await this._specification.http(session, this._refreshAbortable.signal, ...args);\n } catch (ex) {\n if (ex !== ERR_SESSION_EXPIRED) throw ex;\n this._onSessionExpired(true);\n }\n }\n }\n\n private _sessionIsExpired() {\n return this._expired || (this._verifyPassedSessionDeadline() && this._expired);\n }\n\n private async _setupSessionClock(session: T) {\n try {\n this._sessionActivationTimestamp = Date.now();\n this._sessionExpirationTimestamp = undefined;\n this._sessionExpirationTimestamp = parseDate(await this._specification.deadline?.(session));\n\n if (isUndefined(this._sessionExpirationTimestamp)) return;\n\n this._stopSessionClock?.();\n\n let unsubscribeClock = clock.subscribe(snapshotOrSignal => {\n if (isWatchlistUnsubscribeToken(snapshotOrSignal)) return this._stopSessionClock?.();\n if (this._verifyPassedSessionDeadline(snapshotOrSignal.now)) this._fulfillPendingSessionRefresh();\n });\n\n this._stopSessionClock = () => {\n unsubscribeClock?.();\n unsubscribeClock = this._stopSessionClock = undefined!;\n };\n } catch {\n /* ignore session deadline determination errors */\n }\n }\n\n private _verifyPassedSessionDeadline(timestamp = Date.now()) {\n if (isUndefined(this._sessionExpirationTimestamp)) return;\n if (timestamp >= this._sessionExpirationTimestamp) this._onSessionExpired();\n return true;\n }\n}\n\nexport default SessionContext;\n","import { enumerable, noop, struct } from '../../../utils';\nimport type { AbortSink } from './types';\n\nconst ABORT_EVENT = 'abort';\nexport const isAbortSignal = (value?: any): value is AbortSignal => value instanceof AbortSignal;\n\nexport const createAbortSink = (...sourceSignals: (AbortSignal | undefined)[]) => {\n let _sourceSignals = new Set<AbortSignal>();\n let _abortController = new AbortController();\n const { signal } = _abortController;\n\n let abort = () => {\n _abortController.abort();\n disconnect?.();\n };\n\n let _cleanupSignals = () => {\n _sourceSignals.forEach(signal => signal.removeEventListener(ABORT_EVENT, abort));\n _sourceSignals.clear();\n _sourceSignals = undefined!;\n };\n\n let disconnect = () => {\n _cleanupSignals?.();\n _cleanupSignals = unlink = undefined!;\n if (signal.aborted) abort = _abortController = disconnect = undefined!;\n };\n\n let unlink = (...sourceSignals: (AbortSignal | undefined)[]) => {\n for (const maybeSignal of sourceSignals) {\n if (isAbortSignal(maybeSignal) && _sourceSignals.delete(maybeSignal)) {\n maybeSignal.removeEventListener(ABORT_EVENT, abort);\n }\n }\n if (_sourceSignals.size === 0) disconnect();\n };\n\n setup: {\n filter: {\n for (const maybeSignal of sourceSignals) {\n if (!isAbortSignal(maybeSignal)) continue;\n if (maybeSignal.aborted) break filter;\n _sourceSignals.add(maybeSignal);\n }\n\n // If control flow reaches here, it means none of the source signals is already aborted\n if (_sourceSignals.size > 0) {\n _sourceSignals.forEach(signal => signal.addEventListener(ABORT_EVENT, abort));\n } else disconnect();\n\n // Mark setup as complete\n break setup;\n }\n\n // If control flow reaches here, it means at least one of the source signals is already aborted\n // Hence, the need to abort the sink `signal` and destroy everything\n abort();\n }\n\n return struct<AbortSink>({\n abort: enumerable(abort ? () => abort?.() : noop),\n disconnect: enumerable(disconnect ? () => disconnect?.() : noop),\n signal: enumerable(signal),\n unlink: enumerable(unlink ? (...args) => unlink?.(...args) : noop),\n });\n};\n\nexport default createAbortSink;\n","export const API_VERSION = 'v1';\n","import { API_VERSION } from './constants';\nimport { normalizeLoadingContext, normalizeUrl } from '../utils';\nimport { getErrorType, getRequestObject, handleFetchError, isAdyenErrorResponse } from './utils';\nimport { HttpOptions } from './types';\n\nexport async function http<T>(options: HttpOptions, data?: any): Promise<T> {\n const { errorLevel, loadingContext = '', path } = options;\n const request = getRequestObject(options, data);\n const url = new URL(`${normalizeLoadingContext(loadingContext)}${API_VERSION}${normalizeUrl(path)}`);\n\n if (options.params) {\n options.params.forEach((value, param) => {\n const decodedValue = decodeURIComponent(value);\n if (decodedValue) url.searchParams.append(param, decodedValue);\n });\n }\n\n return (async () => {\n // Boolean flag:\n // Indicates whether a resulting exception will be propagated to the caller (unhandled).\n // If set to `true`, the resulting exception will be propagated (unhandled).\n let errorPassThrough = false;\n\n const error = { level: errorLevel } as Parameters<typeof handleFetchError>[0];\n\n try {\n // The `fetch()` could fail and thus throw an exception due to several causes,\n // including but not limited to: fetch signal aborted, CORS errors, network errors\n // (e.g device is offline or poor connection), etc.\n const res = await fetch(url, request); // (!)\n\n if (res.ok) {\n try {\n // This could throw an exception in one of these two cases:\n // (1) if response has no body content\n // (2) if response body content is not valid JSON\n return await res.json(); // (!!)\n } catch (ex) {\n // If it does throw an exception, the exception will be propagated to the caller (unhandled).\n errorPassThrough = true;\n\n // Consider transforming the exception before propagating it to the caller,\n // thus making it easier for the caller to differentiate it from other errors.\n throw ex;\n }\n }\n\n error.type = getErrorType(res.status);\n\n // This could throw an exception in one of these two cases:\n // (1) if response has no body content\n // (2) if response body content is not valid JSON\n //\n // If it does throw an exception, the exception will be handled,\n // since we have the `errorCode` (HTTP status code).\n const response = await res.json(); // (!)\n\n error.message = options.errorMessage || `Service at ${url} not available`;\n error.errorCode = String(response.status);\n error.requestId = response?.requestId;\n\n if (isAdyenErrorResponse(response)) {\n if (options.errorHandler) {\n try {\n // The errorHandler() function provided by the caller could throw an exception\n options.errorHandler(response); // (!!)\n return;\n } catch (ex) {\n // If it does throw an exception, the exception will be propagated to the caller (unhandled).\n errorPassThrough = true;\n throw ex;\n }\n }\n\n error.message = response.detail;\n error.errorCode = response.errorCode;\n }\n } catch (ex) {\n if (errorPassThrough) {\n // Since the `errorPassThrough` flag is set to `true`,\n // The exception will be propagated to the caller (unhandled)\n throw ex;\n }\n error.message = options.errorMessage || `Call to ${url} failed. Error: ${ex}`;\n }\n\n // Handle the resulting error\n // This could throw an exception, depending on the `errorLevel`\n // If it does throw an exception, the exception will be propagated to the caller (unhandled).\n handleFetchError(error); // (!!)\n })();\n}\n\nexport function httpGet<T>(options: Omit<HttpOptions, 'method'>): Promise<T> {\n return http<T>({ ...options, method: 'GET' });\n}\n\nexport function httpPost<T>(options: Omit<HttpOptions, 'method'>, data?: any): Promise<T> {\n return http<T>({ ...options, method: 'POST' }, data);\n}\n","import { ERR_SESSION_EXPIRED, SessionSpecification } from '../../../primitives/context/session';\nimport { createAbortSink, isAbortSignal } from '../../../primitives/auxiliary/abortSink';\nimport { enumerable, getter, isPlainObject, isString, isUndefined, noop } from '../../../utils';\nimport { http as _http } from '../../Http/http';\nimport { ErrorTypes } from '../../Http/utils';\nimport type { HttpOptions } from '../../Http/types';\nimport type { SessionObject, SessionRequest } from '../types';\nimport { AUTO_REFRESH, MAX_AGE_MS } from './constants';\n\ntype _AuthSessionSpecification = SessionSpecification<SessionObject, Parameters<typeof _http>>;\n\nexport class AuthSessionSpecification implements _AuthSessionSpecification {\n declare autoRefresh: _AuthSessionSpecification['autoRefresh'];\n declare onRefresh: _AuthSessionSpecification['onRefresh'];\n\n constructor(public onSessionCreate?: SessionRequest) {\n Object.defineProperties(this, {\n autoRefresh: enumerable(AUTO_REFRESH),\n onRefresh: getter(() => this.onSessionCreate!, true),\n });\n }\n\n assert: _AuthSessionSpecification['assert'] = maybeSession => {\n if (isPlainObject(maybeSession)) {\n const id = isString(maybeSession.id) ? maybeSession.id.trim() : undefined;\n const token = isString(maybeSession.token) ? maybeSession.token.trim() : undefined;\n if (id && token) return;\n }\n throw undefined;\n };\n\n deadline: _AuthSessionSpecification['deadline'] = session => {\n let issuedAt: number;\n let expiresAt: number;\n\n try {\n ({ iat: issuedAt, exp: expiresAt } = JSON.parse(atob(session.token.split('.')[1]!)));\n } catch {\n /* ignore malformed token errors */\n issuedAt = Date.now();\n }\n\n if (!isUndefined(MAX_AGE_MS)) {\n const issuedAtDate = new Date(issuedAt);\n return Math.min(expiresAt! ?? Infinity, issuedAtDate.setMilliseconds(issuedAtDate.getMilliseconds() + MAX_AGE_MS));\n }\n\n return expiresAt!;\n };\n\n http: _AuthSessionSpecification['http'] = async (session, sessionSignal, options: HttpOptions, data?: any) => {\n let { abort: destroyAbortSink = noop, signal } = isAbortSignal(options.signal)\n ? createAbortSink(sessionSignal, options.signal)\n : { signal: sessionSignal };\n\n try {\n const sessionHttpOptions = {\n ...options,\n signal,\n headers: {\n ...options.headers,\n ...(session && { Authorization: `Bearer ${session.token}` }),\n },\n };\n return await _http(sessionHttpOptions, data);\n } catch (ex: any) {\n if (ex?.type === ErrorTypes.EXPIRED_TOKEN) throw ERR_SESSION_EXPIRED;\n throw ex;\n } finally {\n destroyAbortSink();\n }\n };\n}\n\nexport default AuthSessionSpecification;\n","import { enumerable, getter, struct } from '../../../utils';\nimport type { ErrorContainer } from './types';\n\nconst _NO_ERR: unique symbol = Symbol('<<NO_ERR>>');\n\nfunction _assertError<T>(error: any): asserts error is T {\n /* istanbul ignore if -- @preserve */\n if (error === _NO_ERR) {\n // Code execution should never reach this block.\n // If it does, then the consumer is doing something wrong.\n // The consumer needs to call the `reset()` method instead.\n throw new TypeError('Illegal error');\n }\n}\n\nexport const createErrorContainer = <T = unknown>() => {\n let _error: T | typeof _NO_ERR = _NO_ERR;\n\n const _resetError = () => {\n _error = _NO_ERR;\n };\n\n const _setError = (error: T) => {\n _assertError<T>(error);\n _error = error;\n };\n\n return struct<ErrorContainer<T>>({\n error: getter(() => (_error === _NO_ERR ? undefined : _error)),\n hasError: getter(() => _error !== _NO_ERR),\n reset: enumerable(_resetError),\n set: enumerable(_setError),\n });\n};\n\nexport default createErrorContainer;\n","import AuthSetupContext from './AuthSetupContext';\nimport AuthSessionSpecification from './AuthSessionSpecification';\nimport { createAbortable } from '../../../primitives/async/abortable';\nimport { createErrorContainer } from '../../../primitives/auxiliary/errorContainer';\nimport { createEventEmitter } from '../../../primitives/reactive/eventEmitter';\nimport { createWatchlist } from '../../../primitives/reactive/watchlist';\nimport { EVT_SESSION_EXPIRED_STATE_CHANGE, EVT_SESSION_REFRESHING_STATE_CHANGE, SessionContext } from '../../../primitives/context/session';\nimport { ERR_AUTH_REFRESH_ABORTED, ERR_AUTH_REFRESH_FAILED, EVT_AUTH_STATE_CHANGE } from './constants';\nimport { boolOrFalse, constant, isFunction, noop } from '../../../utils';\nimport type { Promised } from '../../../utils/types';\n\nexport class AuthSession {\n private _canSkipSessionRefresh = false;\n private _lastSessionContextRefreshTimestamp: (typeof this._sessionContext)['timestamp'];\n private _overrideRefreshInProgress = false;\n private _refreshInProgress = false;\n\n private readonly _errorContainer = createErrorContainer();\n private readonly _eventEmitter = createEventEmitter<typeof EVT_AUTH_STATE_CHANGE>();\n private readonly _refreshAbortable = createAbortable(ERR_AUTH_REFRESH_ABORTED);\n\n private readonly _specification = new AuthSessionSpecification();\n private readonly _sessionContext = new SessionContext(this._specification);\n private readonly _setupContext = new AuthSetupContext(this._sessionContext);\n\n private readonly _watchlist = createWatchlist({\n endpoints: () => this._setupContext.endpoints,\n hasError: () => this._errorContainer.hasError,\n http: constant(this._sessionContext.http.bind(this._sessionContext)),\n isExpired: () => this._sessionContext.isExpired,\n refresh: constant(this._overrideRefresh.bind(this)),\n refreshing: () => this._sessionContext.refreshing,\n });\n\n declare destroy: () => void;\n declare subscribe: (typeof this._watchlist)['subscribe'];\n\n constructor() {\n this.destroy = () => {\n this._watchlist.on.resume = undefined;\n this._watchlist.cancelSubscriptions();\n };\n\n const _onAuthStateChanged = this._onAuthStateChanged.bind(this);\n const _onSessionExpiredStateChange = this._onSessionExpiredStateChange.bind(this);\n\n this._refreshAbortablePromise = this._refreshAbortablePromise.bind(this);\n this.subscribe = this._watchlist.subscribe;\n\n this._watchlist.on.resume = () => {\n let listeners = [\n this._eventEmitter.on(EVT_AUTH_STATE_CHANGE, this._watchlist.requestNotification),\n this._sessionContext.on(EVT_SESSION_REFRESHING_STATE_CHANGE, _onAuthStateChanged),\n this._sessionContext.on(EVT_SESSION_EXPIRED_STATE_CHANGE, _onSessionExpiredStateChange),\n ];\n\n this._watchlist.on.idle = () => {\n this._watchlist.on.idle = undefined;\n listeners.forEach(cancel => cancel());\n listeners.length = 0;\n listeners = undefined!;\n };\n\n this._refresh();\n };\n }\n\n get context() {\n return this._watchlist.snapshot;\n }\n\n set loadingContext(loadingContext: typeof this._setupContext.loadingContext) {\n this._setupContext.loadingContext = loadingContext;\n }\n\n set onSessionCreate(onSessionCreate: typeof this._specification.onSessionCreate) {\n if (this._specification.onSessionCreate === onSessionCreate) return;\n\n this._specification.onSessionCreate = onSessionCreate;\n if (!this._refreshInProgress) return;\n\n if (isFunction(this._specification.onSessionCreate)) {\n this._canSkipSessionRefresh = false;\n this._overrideRefresh();\n }\n }\n\n private _onAuthStateChanged() {\n this._eventEmitter.emit(EVT_AUTH_STATE_CHANGE);\n }\n\n private _onSessionExpiredStateChange() {\n const { timestamp } = this._sessionContext;\n\n /* Update `this._canSkipSessionRefresh` flag based on session timestamp comparison */\n if ((this._canSkipSessionRefresh = this._lastSessionContextRefreshTimestamp !== timestamp)) {\n // Since `this._canSkipSessionRefresh` is `true`, session context is active (not expired)\n this._lastSessionContextRefreshTimestamp = timestamp;\n this._errorContainer.reset();\n this._overrideRefresh();\n }\n\n this._onAuthStateChanged();\n }\n\n private _overrideRefresh(skipSessionRefresh = this._canSkipSessionRefresh) {\n this._overrideRefreshInProgress = true;\n this._refresh(skipSessionRefresh);\n }\n\n private _refresh(skipSessionRefresh = false) {\n if (this._refreshInProgress && !this._overrideRefreshInProgress) return;\n\n if (this._overrideRefreshInProgress) {\n this._overrideRefreshInProgress = false;\n this._refreshAbortable.abort();\n this._refreshAbortable.refresh();\n }\n\n this._refreshInProgress = true;\n\n const refreshPromise =\n boolOrFalse(skipSessionRefresh) && this._canSkipSessionRefresh\n ? this._refreshSetupContext()\n : this._refreshAbortablePromise(this._sessionContext.refresh);\n\n refreshPromise.catch(noop);\n }\n\n private async _refreshSetupContext() {\n let _setupRefreshAborted = false;\n\n await this._setupContext\n .refresh(this._refreshAbortablePromise)\n .then(\n () => this._errorContainer.reset(),\n err => (_setupRefreshAborted = err !== ERR_AUTH_REFRESH_FAILED)\n )\n .then(() => {\n this._refreshInProgress = _setupRefreshAborted;\n this._onAuthStateChanged();\n });\n }\n\n private async _refreshAbortablePromise<T>(getPromise: Promised<T> | ((signal: AbortSignal) => Promised<T>)) {\n const signal = this._refreshAbortable.signal;\n\n return (async () => {\n const awaitablePromise = isFunction(getPromise) ? getPromise(signal) : getPromise;\n const awaited = await Promise.race([awaitablePromise, this._refreshAbortable.promise]);\n\n // if aborted — ignore the awaited value\n // throw an exception to redirect the control flow\n if (signal.aborted) throw void 0;\n\n return awaited;\n })().catch(ex => {\n if (signal.aborted) throw ERR_AUTH_REFRESH_ABORTED;\n this._errorContainer.set(ex);\n throw ERR_AUTH_REFRESH_FAILED;\n });\n }\n}\n\nexport default AuthSession;\n","/**\n * Currency Codes\n */\nconst CURRENCY_CODES = {\n AED: 'د.إ',\n AFN: '؋',\n ALL: 'L',\n ANG: 'ƒ',\n AOA: 'Kz',\n ARS: '$',\n AUD: '$',\n AWG: 'ƒ',\n AZN: '₼',\n BAM: 'KM',\n BBD: '$',\n BDT: '৳',\n BGN: 'лв',\n BHD: '.د.ب',\n BIF: 'FBu',\n BMD: '$',\n BND: '$',\n BOB: 'Bs.',\n BRL: 'R$',\n BSD: '$',\n BTC: '฿',\n BTN: 'Nu.',\n BWP: 'P',\n BYR: 'p.',\n BYN: 'Br',\n BZD: 'BZ$',\n CAD: '$',\n CDF: 'FC',\n CHF: 'Fr.',\n CLP: '$',\n CNY: '¥',\n COP: '$',\n CRC: '₡',\n CUC: '$',\n CUP: '₱',\n CVE: '$',\n CZK: 'Kč',\n DJF: 'Fdj',\n DKK: 'kr',\n DOP: 'RD$',\n DZD: 'دج',\n EEK: 'kr',\n EGP: '£',\n ERN: 'Nfk',\n ETB: 'Br',\n EUR: '€',\n FJD: '$',\n FKP: '£',\n GBP: '£',\n GEL: '₾',\n GGP: '£',\n GHC: '₵',\n GHS: 'GH₵',\n GIP: '£',\n GMD: 'D',\n GNF: 'FG',\n GTQ: 'Q',\n GYD: '$',\n HKD: '$',\n HNL: 'L',\n HRK: 'kn',\n HTG: 'G',\n HUF: 'Ft',\n IDR: 'Rp',\n ILS: '₪',\n IMP: '£',\n INR: '₹',\n IQD: 'ع.د',\n IRR: '﷼',\n ISK: 'kr',\n JEP: '£',\n JMD: 'J$',\n JPY: '¥',\n KES: 'KSh',\n KGS: 'лв',\n KHR: '៛',\n KMF: 'CF',\n KPW: '₩',\n KRW: '₩',\n KYD: '$',\n KZT: '₸',\n LAK: '₭',\n LBP: '£',\n LKR: '₨',\n LRD: '$',\n LSL: 'M',\n LTL: 'Lt',\n LVL: 'Ls',\n MAD: 'MAD',\n MDL: 'lei',\n MGA: 'Ar',\n MKD: 'ден',\n MMK: 'K',\n MNT: '₮',\n MOP: 'MOP$',\n MUR: '₨',\n MVR: 'Rf',\n MWK: 'MK',\n MXN: '$',\n MYR: 'RM',\n MZN: 'MT',\n NAD: '$',\n NGN: '₦',\n NIO: 'C$',\n NOK: 'kr',\n NPR: '₨',\n NZD: '$',\n OMR: '﷼',\n PAB: 'B/.',\n PEN: 'S/.',\n PGK: 'K',\n PHP: '₱',\n PKR: '₨',\n PLN: 'zł',\n PYG: 'Gs',\n QAR: '﷼',\n RMB: '¥',\n RON: 'lei',\n RSD: 'Дин.',\n RUB: '₽',\n RWF: 'R₣',\n SAR: '﷼',\n SBD: '$',\n SCR: '₨',\n SDG: 'ج.س.',\n SEK: 'kr',\n SGD: '$',\n SHP: '£',\n SLL: 'Le',\n SOS: 'S',\n SRD: '$',\n SSP: '£',\n STD: 'Db',\n SVC: '$',\n SYP: '£',\n SZL: 'E',\n THB: '฿',\n TJS: 'SM',\n TMT: 'T',\n TND: 'د.ت',\n TOP: 'T$',\n TRL: '₤',\n TRY: '₺',\n TTD: 'TT$',\n TVD: '$',\n TWD: 'NT$',\n TZS: 'TSh',\n UAH: '₴',\n UGX: 'USh',\n USD: '$',\n UYU: '$U',\n UZS: 'лв',\n VEF: 'Bs',\n VND: '₫',\n VUV: 'VT',\n WST: 'WS$',\n XAF: 'FCFA',\n XBT: 'Ƀ',\n XCD: '$',\n XOF: 'CFA',\n XPF: '₣',\n YER: '﷼',\n ZAR: 'R',\n ZWD: 'Z$',\n};\n\nexport default CURRENCY_CODES;\n","const CURRENCY_DECIMALS = {\n // ZERO_DECIMAL_CURRENCIES\n IDR: 1,\n JPY: 1,\n KRW: 1,\n VND: 1,\n BYR: 1,\n CVE: 1,\n DJF: 1,\n GHC: 1,\n GNF: 1,\n KMF: 1,\n PYG: 1,\n RWF: 1,\n UGX: 1,\n VUV: 1,\n XAF: 1,\n XOF: 1,\n XPF: 1,\n\n // ONE_DECIMAL_CURRENCIES\n MRO: 10,\n\n // THREE_DECIMAL_CURRENCIES\n BHD: 1000,\n IQD: 1000,\n JOD: 1000,\n KWD: 1000,\n OMR: 1000,\n LYD: 1000,\n TND: 1000,\n};\n\nexport default CURRENCY_DECIMALS;\n","import CURRENCY_CODES from '../constants/currency-codes';\nimport CURRENCY_DECIMALS from '../constants/currency-decimals';\nimport { CurrencyCode, CurrencyDecimalCode } from '../types';\n\n/**\n * @internal\n * @param currencyCode -\n * Get divider amount\n */\nexport const getDivider = (currencyCode: string): number => CURRENCY_DECIMALS[currencyCode as CurrencyDecimalCode] || 100;\n\n/**\n * @internal\n * @param currencyCode -\n * Returns whether a CURRENCY CODE is valid\n */\nexport const isValidCurrencyCode = (currencyCode: string): currencyCode is CurrencyCode => !!CURRENCY_CODES[currencyCode as CurrencyCode];\n\n/**\n * @internal\n */\nexport const getCurrencyCode = (currencyCode: string): string | null => (isValidCurrencyCode(currencyCode) ? CURRENCY_CODES[currencyCode] : null);\n\n/**\n * @internal\n */\nexport const getDecimalAmount = (amount: number | string, currencyCode: string): number => {\n const divider = getDivider(currencyCode);\n return parseInt(String(amount), 10) / divider;\n};\n\n/**\n * @internal\n */\nexport const getLocalisedAmount = (\n amount: number,\n locale: string,\n currencyCode: string,\n hideCurrency = false,\n options: Intl.NumberFormatOptions = {}\n): string => {\n const stringAmount = amount.toString(); // Changing amount to string to avoid 0-value from returning false\n const decimalAmount = getDecimalAmount(stringAmount, currencyCode);\n\n const formatterLocale = locale.replace('_', '-');\n const formatterOptions = {\n style: 'currency',\n currency: currencyCode,\n currencyDisplay: 'symbol',\n ...options,\n };\n\n try {\n return hideCurrency\n ? formatAmountWithoutCurrency(formatterLocale, formatterOptions, decimalAmount)\n : decimalAmount.toLocaleString(formatterLocale, formatterOptions);\n } catch (e) {\n return stringAmount;\n }\n};\n\nexport const formatAmountWithoutCurrency = (locale: string, options: Intl.NumberFormatOptions, amount: number) => {\n return Intl.NumberFormat(locale, options)\n .formatToParts(amount)\n .filter(p => p.type !== 'currency')\n .reduce((s, p) => s + p.value, '')\n .trim();\n};\n\n/**\n * @internal\n */\nexport const getLocalisedPercentage = (percent = 0, locale: string): string | null => {\n const decimalPercent = percent / 100 / 100;\n const localeOptions = {\n style: 'percent',\n maximumFractionDigits: 2,\n };\n\n try {\n return decimalPercent.toLocaleString(locale, localeOptions);\n } catch (e) {\n return null;\n }\n};\n","import defaultLocaleTranslation from '../../../translations/en-US.json';\n\n/**\n * FALLBACK_LOCALE - **MUST** match the locale string in the above import\n */\n\nexport const FALLBACK_LOCALE = 'en-US' as const;\nexport const LOCALE_FORMAT_REGEX = /^[a-z]{2}-[A-Z]{2}$/;\nexport const defaultTranslation = defaultLocaleTranslation;\n","import { SupportedLocale } from '../types';\n\nexport const SUPPORTED_LOCALES = ['da-DK', 'de-DE', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'nl-NL', 'no-NO', 'pt-BR', 'sv-SE'] as const;\n\nexport const DEFAULT_DATETIME_FORMAT = { year: 'numeric', month: '2-digit', day: '2-digit' } as Intl.DateTimeFormatOptions;\nexport const DEFAULT_LOCALES = SUPPORTED_LOCALES as Readonly<SupportedLocale[]>;\nexport const EXCLUDE_PROPS = ['constructor', 'i18n', 'watch', 'preferredTranslations'] as const;\n","import type { RestampContext } from './types';\n\nexport const REGEX_TZ_OFFSET = /(?<=GMT)(?:[-+](?:0?\\d|1[0-4])(?::?[0-5]\\d)?)?$/;\n\nexport const { BASE_FORMAT_OPTIONS, BASE_LOCALE, SYSTEM_TIMEZONE, SYSTEM_TIMEZONE_FORMATTER } = (() => {\n const BASE_LOCALE = 'en-US';\n const DIGITS_2 = '2-digit';\n const NUMERIC = 'numeric';\n const SHORT = 'short';\n const TZ_LONG = 'longOffset';\n const FRACTIONAL_SECOND_DIGITS = 3;\n\n const BASE_FORMAT_OPTIONS: Readonly<Intl.DateTimeFormatOptions> = Object.freeze({\n year: NUMERIC,\n month: SHORT,\n day: NUMERIC,\n hour: DIGITS_2,\n minute: DIGITS_2,\n second: DIGITS_2,\n fractionalSecondDigits: FRACTIONAL_SECOND_DIGITS,\n timeZoneName: TZ_LONG, // should not be changed — needed for the tz offsets regexp\n });\n\n let SYSTEM_TIMEZONE: RestampContext['TIMEZONE'];\n let SYSTEM_TIMEZONE_FORMATTER: RestampContext['formatter'];\n\n try {\n SYSTEM_TIMEZONE_FORMATTER = new Intl.DateTimeFormat(BASE_LOCALE, BASE_FORMAT_OPTIONS);\n SYSTEM_TIMEZONE = SYSTEM_TIMEZONE_FORMATTER.resolvedOptions().timeZone;\n } catch (ex) {\n SYSTEM_TIMEZONE = undefined;\n }\n\n return { BASE_FORMAT_OPTIONS, BASE_LOCALE, SYSTEM_TIMEZONE, SYSTEM_TIMEZONE_FORMATTER };\n})();\n","import { EMPTY_ARRAY, mod } from '../../../../utils';\nimport { REGEX_TZ_OFFSET, SYSTEM_TIMEZONE_FORMATTER } from './constants';\nimport type { RestampContext, Restamper, RestampResult } from './types';\n\nconst REGEX_GMT_OFFSET_UNWANTED_SUBSTRINGS = /\\+(?=-)|([+-]00:00)/g;\nconst REGEX_TZ_SINGLE_DIGIT_OFFSET = /(?<=^\\D?)(\\d)$/;\n\nexport const computeTimezoneOffsetInMinutes = ([offsetHours, offsetMinutes]: readonly [number, number]) =>\n (Math.abs(offsetHours * 60) + offsetMinutes) * (offsetHours < 0 ? -1 : 1);\n\nexport const computeTimezoneOffsetsFromMinutes = (timezoneOffsetInMinutes: number) =>\n Object.freeze([\n Math.floor(timezoneOffsetInMinutes / 60), // offset hours\n mod(timezoneOffsetInMinutes, 60), // offset minutes\n ] as const);\n\nexport const parseTimezoneOffset = (offset: string | number) => parseInt(offset as string, 10) || 0;\n\n/**\n * @param timezoneOffset {number} The minute offsets relative to GMT (Greenwich Mean Time).\n * @returns {string} The GMT suffixed string for the specified offsets in the format GMT(+|-)[HH]:[MM], or just GMT (if [HH]:[MM] is 00:00).\n */\nexport const getGMTSuffixForTimezoneOffset = (timezoneOffset: RestampResult['offset']): string => {\n const offsets = computeTimezoneOffsetsFromMinutes(timezoneOffset);\n const offsetString = offsets.map(offset => `${offset}`.replace(REGEX_TZ_SINGLE_DIGIT_OFFSET, '0$1')).join(':');\n return `GMT+${offsetString}`.replace(REGEX_GMT_OFFSET_UNWANTED_SUBSTRINGS, '');\n};\n\n/**\n * @param timezoneOffset {number} The minute offsets of the timezone relative to GMT (Greenwich Mean Time).\n * @param timezoneOffsetRelativeToSystem {number} The minute offsets of the timezone relative to the system timezone.\n * @returns {string} The system timezone GMT suffixed string in the format GMT(+|-)[HH]:[MM], or just GMT (if [HH]:[MM] is 00:00).\n */\nexport const getSystemTimezoneGMTSuffixFromTimezoneOffsets = (\n timezoneOffset: RestampResult['offset'],\n timezoneOffsetRelativeToSystem: RestampResult['offset']\n): string => getGMTSuffixForTimezoneOffset(timezoneOffset - timezoneOffsetRelativeToSystem);\n\nexport const getTimezoneOffsetFromFormattedDateString = (date?: string): number => {\n const offsets = date?.match(REGEX_TZ_OFFSET)?.[0].split(':', 2).map(parseTimezoneOffset) ?? (EMPTY_ARRAY as readonly number[]);\n return computeTimezoneOffsetInMinutes(offsets.concat(0, 0).slice(0, 2) as [number, number]);\n};\n\nexport const getTimezoneOffsetForTimestamp = (timestamp: number, timezoneFormatter: RestampContext['formatter'] = SYSTEM_TIMEZONE_FORMATTER) => {\n const systemOffset = getTimezoneOffsetFromFormattedDateString(SYSTEM_TIMEZONE_FORMATTER?.format(timestamp));\n const timezoneOffset = getTimezoneOffsetFromFormattedDateString(timezoneFormatter?.format(timestamp));\n return timezoneOffset - systemOffset;\n};\n\nconst restamp = <R extends Restamper = Restamper>(restamper: R, time: Parameters<R>[0], direction: -1 | 1 = 1) => {\n const { offset, timestamp } = restamper(time);\n const date = new Date(timestamp);\n return date.setMinutes(date.getMinutes() - offset * direction);\n};\n\nexport const systemToTimezone = <R extends Restamper = Restamper>(restamper: R, time: Parameters<R>[0]) => restamp(restamper, time, 1);\nexport const timezoneToSystem = <R extends Restamper = Restamper>(restamper: R, time: Parameters<R>[0]) => restamp(restamper, time, -1);\n","import { isNullish, isUndefined, struct } from '../../../../utils';\nimport { BASE_FORMAT_OPTIONS, BASE_LOCALE, SYSTEM_TIMEZONE, SYSTEM_TIMEZONE_FORMATTER } from './constants';\nimport type { RestampContext, RestamperWithTimezone, RestampResult } from './types';\nimport { getTimezoneOffsetForTimestamp } from './utils';\n\nconst restamper = (() => {\n let getTimeZone: (this: RestampContext) => RestampContext['TIMEZONE'];\n let setTimeZone: (this: RestampContext, timezone?: RestampContext['TIMEZONE'] | null) => void;\n\n if (!isUndefined(SYSTEM_TIMEZONE)) {\n getTimeZone = function () {\n return this.TIMEZONE;\n };\n\n setTimeZone = function (timeZone) {\n if (!isNullish(timeZone)) {\n try {\n const nextFormatter = new Intl.DateTimeFormat(BASE_LOCALE, { ...BASE_FORMAT_OPTIONS, timeZone });\n const nextTimeZone = nextFormatter.resolvedOptions().timeZone;\n\n if (this.TIMEZONE === nextTimeZone) return;\n\n this.TIMEZONE = nextTimeZone;\n this.formatter = nextFormatter;\n } catch (ex) {\n // Silently ignore invalid timezone updates\n if (import.meta.env.DEV) console.error(ex);\n }\n } else {\n this.TIMEZONE = SYSTEM_TIMEZONE;\n this.formatter = SYSTEM_TIMEZONE_FORMATTER;\n }\n };\n }\n\n function restamp(this: RestampContext, ...args: [(string | number | Date)?]): RestampResult {\n if (args.length === 0) return restamp.call(this, Date.now());\n\n const time = args[0];\n const timestamp = new Date(time as NonNullable<typeof time>).getTime();\n const formatter = this.formatter ?? SYSTEM_TIMEZONE_FORMATTER;\n\n return Object.freeze({\n formatted: formatter?.format(timestamp),\n offset: getTimezoneOffsetForTimestamp(timestamp, formatter),\n timestamp,\n } as const);\n }\n\n return () => {\n const context = { TIMEZONE: SYSTEM_TIMEZONE } as RestampContext;\n const set = setTimeZone?.bind(context);\n\n const tz = struct({\n current: { get: getTimeZone?.bind(context), set },\n system: { value: SYSTEM_TIMEZONE },\n });\n\n return Object.defineProperties(restamp.bind(context) as RestamperWithTimezone, {\n tz: { get: () => tz, set },\n });\n };\n})();\n\nexport default restamper;\n","import _da_DK from './da-DK.json';\nimport _de_DE from './de-DE.json';\nimport _en_US from './en-US.json';\nimport _es_ES from './es-ES.json';\nimport _fr_FR from './fr-FR.json';\nimport _it_IT from './it-IT.json';\nimport _nl_NL from './nl-NL.json';\nimport _no_NO from './no-NO.json';\nimport _pt_BR from './pt-BR.json';\nimport _sv_SE from './sv-SE.json';\n\nexport const da_DK = { da_DK: _da_DK };\nexport const de_DE = { de_DE: _de_DE };\nexport const en_US = { en_US: _en_US };\nexport const es_ES = { es_ES: _es_ES };\nexport const fr_FR = { fr_FR: _fr_FR };\nexport const it_IT = { it_IT: _it_IT };\nexport const nl_NL = { nl_NL: _nl_NL };\nexport const no_NO = { no_NO: _no_NO };\nexport const pt_BR = { pt_BR: _pt_BR };\nexport const sv_SE = { sv_SE: _sv_SE };\n\nexport const all_locales = {\n ...da_DK,\n ...de_DE,\n ...es_ES,\n ...fr_FR,\n ...it_IT,\n ...nl_NL,\n ...no_NO,\n ...pt_BR,\n ...sv_SE,\n};\n","import { JSX } from 'preact';\nimport { asPlainObject, EMPTY_OBJECT, hasOwnProperty } from '../../utils';\nimport { defaultTranslation, FALLBACK_LOCALE, LOCALE_FORMAT_REGEX } from './constants/locale';\nimport { CustomTranslations, SupportedLocale, Translations, TranslationOptions } from './types';\nimport { en_US } from '../../translations';\n\nconst DEFAULT_TRANSLATION_OPTIONS: TranslationOptions = { values: EMPTY_OBJECT, count: 0 } as const;\nconst FALLBACK_TRANSLATIONS_FILES = { 'en-US': en_US['en_US'] } as const;\n\n/**\n * Convert to ISO 639-1\n */\nexport const toTwoLetterCode = (locale: string) => locale.substring(0, 2).toLowerCase();\n\n/**\n * Matches a string with one of the locales\n * @param locale -\n * @param supportedLocales -\n\n * @example\n * matchLocale('en-GB');\n * // 'en-US'\n */\nexport function matchLocale(locale: string, supportedLocales: SupportedLocale[] | string[]): SupportedLocale | null {\n if (!locale) return null;\n const twoLetterCode = toTwoLetterCode(locale as SupportedLocale);\n return (supportedLocales.find(supportedLocale => toTwoLetterCode(supportedLocale) === twoLetterCode) as SupportedLocale) || null;\n}\n\n/**\n * Returns a locale with the proper format\n * @param locale -\n *\n * @example\n * formatLocale('En_us');\n * // 'en-US'\n */\nexport function formatLocale(locale: string): SupportedLocale | null {\n const localeString = locale.replace('_', '-');\n\n // If it's already formatted, return the locale\n if (LOCALE_FORMAT_REGEX.test(localeString)) return localeString as SupportedLocale;\n\n // Split the string in two\n const [languageCode, countryCode] = localeString.split('-');\n\n // If the locale or the country codes are missing, return null\n if (!languageCode || !countryCode) return null;\n\n // Ensure correct format and join the strings back together\n const fullLocale = `${languageCode.toLowerCase()}-${countryCode.toUpperCase()}` as SupportedLocale;\n\n return fullLocale.length === 5 ? fullLocale : null;\n}\n\n/**\n * Checks the locale format.\n * Also checks if it's on the locales array.\n * If it is not, tries to match it with one.\n * @param locale -\n * @param supportedLocales -\n */\nexport function parseLocale(locale: string, supportedLocales: Readonly<SupportedLocale[]> | string[]): SupportedLocale | null {\n const trimmedLocale = locale.trim();\n\n if (!trimmedLocale || trimmedLocale.length < 1 || trimmedLocale.length > 5) return FALLBACK_LOCALE;\n\n const formattedLocale = formatLocale(trimmedLocale);\n\n if (formattedLocale && supportedLocales.indexOf(formattedLocale) > -1) return formattedLocale;\n\n return matchLocale(formattedLocale ?? trimmedLocale, [...supportedLocales]);\n}\n\n/**\n * Formats the locales inside the customTranslations object against the supportedLocales\n * @param customTranslations -\n * @param supportedLocales -\n */\nexport function formatCustomTranslations(\n customTranslations: CustomTranslations = EMPTY_OBJECT,\n supportedLocales: Readonly<SupportedLocale[]> | string[]\n): CustomTranslations {\n if (customTranslations === EMPTY_OBJECT) return customTranslations;\n\n return (Object.keys(customTranslations) as Extract<keyof CustomTranslations, string>[]).reduce((translations, locale) => {\n const formattedLocale = formatLocale(locale) || parseLocale(locale, supportedLocales);\n if (formattedLocale && customTranslations[locale]) {\n translations[formattedLocale] = customTranslations[locale]!;\n }\n return translations;\n }, {} as CustomTranslations);\n}\n\nconst replaceTranslationValues = (translation: string, values?: Record<string, any>) => {\n return translation.replace(/%{(\\w+)}/g, (_, k) => values?.[k] || '');\n};\n\n/**\n * Returns a translation string by key\n * @param translations -\n * @param key -\n * @param options -\n *\n * @internal\n */\nexport const getTranslation = (translations: Record<string, string>, key: string, options = DEFAULT_TRANSLATION_OPTIONS): string | null => {\n const count = options.count ?? 0;\n const countKey = `${key}__${count}`;\n\n // Find {key}__{count} translation key\n if (hasOwnProperty(translations, countKey) && translations[countKey]) {\n return replaceTranslationValues(translations[countKey] as string, options.values);\n }\n\n const pluralKey = `${key}__plural`;\n\n // Find {key}__plural translation key, if `count` greater than 1 (e.g. myTranslation__plural)\n if (hasOwnProperty(translations, pluralKey) && count > 1 && translations[pluralKey]) {\n return replaceTranslationValues(translations[pluralKey] as string, options.values);\n }\n\n // Find {key} translation key (e.g. myTranslation)\n if (hasOwnProperty(translations, key) && translations[key]) {\n return replaceTranslationValues(translations[key] as string, options.values);\n }\n\n return null;\n};\n\n/**\n * Returns an array with all the locales\n * @param locale - The locale the user wants to use\n * @param translations -\n * @param customTranslations -\n */\nexport const loadTranslations = async (\n locale: string,\n translations?: { [locale: string]: Translations },\n customTranslations: CustomTranslations = EMPTY_OBJECT\n) => {\n const translationFiles = translations ?? FALLBACK_TRANSLATIONS_FILES;\n // Match locale to one of our available locales (e.g. es-AR => es-ES)\n const localeToLoad = parseLocale(locale, Object.keys(translationFiles) as SupportedLocale[]) || FALLBACK_LOCALE;\n const loadedLocale = translationFiles[localeToLoad as keyof typeof translationFiles] || translationFiles[FALLBACK_LOCALE];\n\n return {\n ...defaultTranslation, // Default en-US translations (in case any other translation file is missing any key)\n ...loadedLocale, // Merge with our locale file of the locale they are loading\n ...asPlainObject(customTranslations?.[locale]), // Merge with their custom locales if available\n };\n};\n\n/**\n * Injects JSX elements in a middle of a translation and returns a JSX array\n * The input string should use %# as the token to know where to insert the component\n * @param translation - Translation string\n * @param renderFunctions - An array function that renders JSX elements\n */\nexport const interpolateElement = (translation: string, renderFunctions: Array<(translation: string) => JSX.Element>) => {\n // splits by regex group, it guarantees that it only splits with 2 tokens (%#)\n const matches = translation.split(/%#(.*?)%#/gm);\n // the map will create an array of JSX / string elements, this syntax in accepted in JSX/react to render elements\n return matches.map((term, index) => {\n // math to get the index of the renderFunction that should be used\n // since we split on tokens, that means the index of the render function is half of the index of the string\n const indexInFunctionArray = Math.floor(index / 2);\n return index % 2 === 0 ? term : renderFunctions[indexInFunctionArray]?.(term);\n });\n};\n","import { CustomTranslations, SupportedLocale } from './types';\nimport { formatLocale, loadTranslations, parseLocale } from './utils';\nimport { FALLBACK_LOCALE } from './constants/locale';\nimport { EXCLUDE_PROPS } from './constants/localization';\nimport { isFunction, struct } from '../../utils';\nimport Localization from './Localization';\n\nexport function createTranslationsLoader(this: Localization) {\n type TranslationsLoader = {\n load: (customTranslations?: CustomTranslations) => ReturnType<typeof loadTranslations>;\n locale: SupportedLocale | string;\n supportedLocales: (SupportedLocale | string)[];\n };\n\n let _locale = this.locale;\n let _preferredLocale = _locale;\n let _supportedLocales: TranslationsLoader['supportedLocales'] = [...this.supportedLocales];\n\n return struct<TranslationsLoader>({\n load: { value: (customTranslations?: CustomTranslations) => loadTranslations(_locale, this.preferredTranslations, customTranslations) },\n locale: {\n get: () => _locale,\n set: (locale: SupportedLocale | string) => {\n _preferredLocale = locale;\n _locale = formatLocale(locale) || parseLocale(locale, _supportedLocales) || FALLBACK_LOCALE;\n },\n },\n supportedLocales: {\n get: () => _supportedLocales,\n set(this: TranslationsLoader, supportedLocales: (SupportedLocale | string)[]) {\n _supportedLocales = supportedLocales;\n this.locale = _preferredLocale;\n },\n },\n });\n}\n\nexport function getLocalizationProxyDescriptors(this: Localization) {\n const descriptors = {} as any;\n\n for (const [prop, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(Localization.prototype))) {\n if (EXCLUDE_PROPS.includes(prop as (typeof EXCLUDE_PROPS)[number])) continue;\n\n if (isFunction(descriptor.get)) {\n descriptors[prop] = { get: descriptor.get.bind(this) };\n } else if (isFunction(descriptor.value)) {\n descriptors[prop] = { value: descriptor.value.bind(this) };\n } else {\n descriptors[prop] = { get: () => this[prop as keyof Localization] };\n }\n }\n\n return descriptors as { [K in keyof Localization['i18n']]: PropertyDescriptor };\n}\n","import { getLocalisedAmount } from './amount/amount-util';\nimport { defaultTranslation, FALLBACK_LOCALE } from './constants/locale';\nimport { DEFAULT_DATETIME_FORMAT, DEFAULT_LOCALES, EXCLUDE_PROPS } from './constants/localization';\nimport restamper, { RestamperWithTimezone, systemToTimezone } from './datetime/restamper';\nimport { createTranslationsLoader, getLocalizationProxyDescriptors } from './localization-utils';\nimport { CustomTranslations, LangFile, SupportedLocale, Translations, TranslationKey, TranslationOptions } from './types';\nimport { formatCustomTranslations, getTranslation, toTwoLetterCode } from './utils';\nimport { createWatchlist } from '../../primitives/reactive/watchlist';\nimport { ALREADY_RESOLVED_PROMISE, isNull, isNullish, isUndefined, noop, struct } from '../../utils';\nimport { en_US } from '../../translations';\n\nexport default class Localization {\n #locale: SupportedLocale | string = FALLBACK_LOCALE;\n #languageCode: string = toTwoLetterCode(this.#locale);\n #supportedLocales: Readonly<SupportedLocale[]> | string[] = DEFAULT_LOCALES;\n\n #customTranslations?: CustomTranslations;\n #translations: Record<string, string> = defaultTranslation;\n #translationsLoader = createTranslationsLoader.call(this);\n\n #ready: Promise<void> = ALREADY_RESOLVED_PROMISE;\n #currentRefresh?: Promise<void>;\n #markRefreshAsDone?: () => void;\n #refreshWatchlist = createWatchlist({ timestamp: () => performance.now() });\n #restamp: RestamperWithTimezone = restamper();\n\n private watch = this.#refreshWatchlist.subscribe.bind(undefined);\n public i18n: Omit<Localization, (typeof EXCLUDE_PROPS)[number]> = struct(getLocalizationProxyDescriptors.call(this));\n public preferredTranslations?: { [k in SupportedLocale]?: Translations } | { [k: string]: Translations };\n\n constructor(locale: SupportedLocale | string = FALLBACK_LOCALE, translationsFiles?: LangFile[]) {\n this.watch(noop);\n\n this.preferredTranslations =\n translationsFiles &&\n translationsFiles.reduce((prev, curr) => ({ ...prev, ...curr }), {\n [FALLBACK_LOCALE]: en_US['en_US'],\n });\n this.locale = locale;\n }\n\n get customTranslations(): CustomTranslations {\n return this.#customTranslations ?? ({} as CustomTranslations);\n }\n\n set customTranslations(customTranslations: CustomTranslations | undefined | null) {\n let translations: CustomTranslations | undefined = undefined;\n let supportedLocales: (SupportedLocale | string)[] = [...DEFAULT_LOCALES];\n\n if (!isNullish(customTranslations)) {\n translations = formatCustomTranslations(customTranslations, DEFAULT_LOCALES);\n const localesFromCustomTranslations = Object.keys(translations) as string[];\n\n // default locales + validated custom locales\n supportedLocales = [...DEFAULT_LOCALES, ...localesFromCustomTranslations].filter(\n (locale, index, locales) => locales.indexOf(locale) === index\n );\n }\n\n this.#translationsLoader.supportedLocales = supportedLocales;\n this.#refreshTranslations(translations);\n }\n\n get languageCode() {\n return this.#languageCode;\n }\n\n get lastRefreshTimestamp() {\n return this.#refreshWatchlist.snapshot.timestamp;\n }\n\n get locale(): SupportedLocale | string {\n return this.#locale;\n }\n\n set locale(locale: SupportedLocale | string | undefined | null) {\n if (!isNullish(locale)) {\n this.#translationsLoader.locale = locale;\n if (this.#locale === this.#translationsLoader.locale) return;\n this.#refreshTranslations(this.#customTranslations);\n } else this.locale = FALLBACK_LOCALE;\n }\n\n get ready(): Promise<void> {\n return this.#ready;\n }\n\n get supportedLocales(): Readonly<SupportedLocale[]> | string[] {\n return this.#supportedLocales;\n }\n\n get timezone(): RestamperWithTimezone['tz']['current'] {\n return this.#restamp.tz.current;\n }\n\n set timezone(timezone: string | undefined | null) {\n this.#restamp.tz = timezone;\n }\n\n #refreshTranslations(customTranslations?: CustomTranslations) {\n if (isUndefined(this.#markRefreshAsDone)) {\n this.#ready = new Promise<void>(resolve => {\n this.#markRefreshAsDone = () => {\n resolve(this.#currentRefresh);\n this.#currentRefresh = this.#markRefreshAsDone = undefined;\n };\n });\n }\n\n const currentRefreshDone = () => {\n if (this.#currentRefresh === currentRefresh) this.#markRefreshAsDone?.();\n };\n\n const currentRefresh = (this.#currentRefresh = (async () => {\n this.#translations = await this.#translationsLoader.load(customTranslations);\n this.#locale = this.#translationsLoader.locale;\n this.#supportedLocales = this.#translationsLoader.supportedLocales;\n this.#customTranslations = customTranslations;\n this.#languageCode = toTwoLetterCode(this.#locale);\n this.#refreshWatchlist.requestNotification();\n })());\n\n currentRefresh.then(currentRefreshDone).catch(reason => {\n currentRefreshDone();\n // handle current refresh promise rejection\n // throw reason;\n console.error(reason);\n });\n }\n\n /**\n * Returns a translated string from a key in the current {@link Localization.locale}\n * @param key - Translation key\n * @param options - Translation options\n * @returns Translated string\n */\n get(key: TranslationKey, options?: TranslationOptions): string {\n const translation = getTranslation(this.#translations, key, options);\n return isNull(translation) ? key : translation;\n }\n\n /**\n * Returns a boolean that checks if the translation key exists in the current {@link Localization.locale}\n * @param key - Translation key\n * @param options - Translation options\n * @returns boolean\n */\n has(key: string, options?: TranslationOptions): key is TranslationKey {\n const translation = getTranslation(this.#translations, key, options);\n return !!translation;\n }\n\n /**\n * Returns a localized string for an amount\n * @param amount - Amount to be converted\n * @param currencyCode - Currency code of the amount\n * @param options - Options for String.prototype.toLocaleString\n */\n amount(amount: number, currencyCode: string, options?: Record<string, any>): string {\n const { hideCurrency, ...restOfOptions } = options || {};\n const localisedAmount = getLocalisedAmount(amount, this.#locale, currencyCode, hideCurrency, {\n ...restOfOptions,\n currencyDisplay: 'symbol',\n signDisplay: 'never',\n });\n\n return amount < 0 ? `- ${localisedAmount}` : localisedAmount;\n }\n\n /**\n * Returns a localized string for a date\n * @param date - Date to be localized\n * @param options - Options for {@link Date.toLocaleDateString}\n */\n date(date: number | string | Date, options: Intl.DateTimeFormatOptions = {}) {\n const dateOptions = { ...DEFAULT_DATETIME_FORMAT, timeZone: this.#restamp.tz.current, ...options };\n return new Date(date).toLocaleDateString(this.#locale, dateOptions);\n }\n\n /**\n * Returns a localized string for a full date\n * @param date - Date to be localized\n */\n fullDate(date: number | string | Date) {\n const timestamp = systemToTimezone(this.#restamp, date);\n const [, month, day, year, time] = new Date(timestamp).toString().split(/\\s+/g);\n return `${month} ${day}, ${year}, ${time}`;\n }\n}\n","import type { CoreOptions } from './types';\nimport type { LangFile } from './Localization/types';\nimport { FALLBACK_ENV, resolveEnvironment } from './utils';\nimport { AuthSession } from './Auth/session/AuthSession';\nimport BaseElement from '../components/external/BaseElement';\nimport Localization from './Localization';\nimport { EMPTY_OBJECT } from '../utils';\n\nclass Core<AvailableTranslations extends LangFile[] = [], CustomTranslations extends {} = {}> {\n public static readonly version = process.env.VITE_VERSION!;\n\n public components: BaseElement<any>[] = [];\n public options: CoreOptions<AvailableTranslations, CustomTranslations>;\n\n public localization: Localization;\n public loadingContext: string;\n public session = new AuthSession();\n\n // [TODO]: Change the error handling strategy.\n\n constructor(options: CoreOptions<AvailableTranslations, CustomTranslations>) {\n this.options = { environment: FALLBACK_ENV, ...options };\n\n this.localization = new Localization(options.locale, options.availableTranslations);\n this.loadingContext = process.env.VITE_LOADING_CONTEXT ? process.env.VITE_LOADING_CONTEXT : resolveEnvironment(this.options.environment);\n this.setOptions(options);\n }\n\n async initialize(): Promise<this> {\n return Promise.all([this.localization.ready]).then(() => this);\n }\n\n /**\n * Updates global configurations, resets the internal state and remounts each element.\n * @param options - props to update\n * @returns this - the element instance\n */\n public update = async (options: Partial<typeof this.options> = EMPTY_OBJECT): Promise<this> => {\n this.setOptions(options);\n await this.initialize();\n\n this.components.forEach(component => {\n if (component.props.core === this) {\n // Update each component under this instance\n component.update(this.getPropsForComponent(this.options));\n }\n });\n\n return this;\n };\n\n /**\n * Remove the reference of a component\n * @param component - reference to the component to be removed\n * @returns this - the element instance\n */\n public remove = (component: BaseElement<any>): this => {\n this.components = this.components.filter(c => c._id !== component._id);\n component.unmount();\n return this;\n };\n\n /**\n * @internal\n * Register components in core to be able to update them all at once\n */\n public registerComponent = (component: BaseElement<any>) => {\n if (component.props.core === this) {\n this.components.push(component);\n }\n };\n\n /**\n * @internal\n * Enhances the config object passed when AdyenPlatformExperience is initialised (environment, clientKey, etc...)\n * (Re)Initializes core properties & processes (i18n, etc...)\n * @param options - the config object passed when AdyenPlatformExperience is initialised\n * @returns this\n */\n private setOptions = (options: Partial<typeof this.options>): this => {\n this.options = { ...this.options, ...options };\n\n this.localization.locale = this.options?.locale;\n this.localization.customTranslations = this.options?.translations;\n\n this.session.loadingContext = this.loadingContext;\n this.session.onSessionCreate = this.options.onSessionCreate;\n\n return this;\n };\n\n /**\n * @internal\n * @param options - options that will be merged to the global Checkout props\n * @returns props for a new UIElement\n */\n private getPropsForComponent(options: any) {\n return { ...options };\n }\n}\n\nexport default Core;\n","var n,l,u,t,i,o,r,f,e,c,s,a,h={},v=[],p=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function _(n){var l=n.parentNode;l&&l.removeChild(n)}function g(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return b(l,f,i,o,null)}function b(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function w(n){return n.children}function k(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?x(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function P(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!S.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r)(S)}function S(){var n,u,t,o,r,e,c,s;for(i.sort(f);n=i.shift();)n.__d&&(u=i.length,o=void 0,e=(r=(t=n).__v).__e,c=[],s=[],t.__P&&((o=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(o),O(t.__P,o,r,t.__n,void 0!==t.__P.ownerSVGElement,32&r.__u?[e]:null,c,null==e?x(r):e,!!(32&r.__u),s),o.__v=r.__v,o.__.__k[o.__i]=o,j(c,o,s),o.__e!=e&&C(o)),i.length>u&&i.sort(f));S.__r=0}function $(n,l,u,t,i,o,r,f,e,c,s){var a,p,y,d,_,g=t&&t.__k||v,b=l.length;for(u.__d=e,I(u,l,g),e=u.__d,a=0;a<b;a++)null!=(y=u.__k[a])&&\"boolean\"!=typeof y&&\"function\"!=typeof y&&(p=-1===y.__i?h:g[y.__i]||h,y.__i=a,O(n,y,p,i,o,r,f,e,c,s),d=y.__e,y.ref&&p.ref!=y.ref&&(p.ref&&N(p.ref,null,y),s.push(y.ref,y.__c||d,y)),null==_&&null!=d&&(_=d),65536&y.__u||p.__k===y.__k?(e&&!e.isConnected&&(e=x(p)),e=H(y,e,n)):\"function\"==typeof y.type&&void 0!==y.__d?e=y.__d:d&&(e=d.nextSibling),y.__d=void 0,y.__u&=-196609);u.__d=e,u.__e=_}function I(n,l,u){var t,i,o,r,f,e=l.length,c=u.length,s=c,a=0;for(n.__k=[],t=0;t<e;t++)r=t+a,null!=(i=n.__k[t]=null==(i=l[t])||\"boolean\"==typeof i||\"function\"==typeof i?null:\"string\"==typeof i||\"number\"==typeof i||\"bigint\"==typeof i||i.constructor==String?b(null,i,null,null,null):y(i)?b(w,{children:i},null,null,null):void 0===i.constructor&&i.__b>0?b(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=A(i,u,r,s),i.__i=f,o=null,-1!==f&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f===r+1?a++:f>r?s>e-r?a+=f-r:a--:f<r?f==r-1&&(a=f-r):a=0,f!==t+a&&(i.__u|=65536))):(o=u[r])&&null==o.key&&o.__e&&0==(131072&o.__u)&&(o.__e==n.__d&&(n.__d=x(o)),q(o,o,!1),u[r]=null,s--);if(s)for(t=0;t<c;t++)null!=(o=u[t])&&0==(131072&o.__u)&&(o.__e==n.__d&&(n.__d=x(o)),q(o,o))}function H(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=H(t[i],l,u));return l}n.__e!=l&&(u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8===l.nodeType);return l}function T(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(y(n)?n.some(function(n){T(n,l)}):l.push(n)),l}function A(n,l,u,t){var i=n.key,o=n.type,r=u-1,f=u+1,e=l[u];if(null===e||e&&i==e.key&&o===e.type&&0==(131072&e.__u))return u;if(t>(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f<l.length;){if(r>=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f<l.length){if((e=l[f])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return f;f++}}return-1}function F(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||p.test(l)?u:u+\"px\"}function L(n,l,u,t,i){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||F(n.style,l,\"\");if(u)for(l in u)t&&u[l]===t[l]||F(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/(PointerCapture)$|Capture$/i,\"$1\")),l=l.toLowerCase()in n||\"onFocusOut\"===l||\"onFocusIn\"===l?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t?u.u=t.u:(u.u=e,n.addEventListener(l,o?s:c,o)):n.removeEventListener(l,o?s:c,o);else{if(i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!==l[4]?n.removeAttribute(l):n.setAttribute(l,u))}}function M(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=e++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,o,r,f,e,c,s){var a,h,v,p,_,g,b,m,x,C,P,S,I,H,T,A=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),r=[e=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof A)try{if(m=u.props,x=(a=A.contextType)&&i[a.__c],C=a?x?x.props.value:a.__:i,t.__c?b=(h=u.__c=t.__c).__=h.__E:(\"prototype\"in A&&A.prototype.render?u.__c=h=new A(m,C):(u.__c=h=new k(m,C),h.constructor=A,h.render=B),x&&x.sub(h),h.props=m,h.state||(h.state={}),h.context=C,h.__n=i,v=h.__d=!0,h.__h=[],h._sb=[]),null==h.__s&&(h.__s=h.state),null!=A.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,A.getDerivedStateFromProps(m,h.__s))),p=h.props,_=h.state,h.__v=u,v)null==A.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==A.getDerivedStateFromProps&&m!==p&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,C),!h.__e&&(null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,C)||u.__v===t.__v)){for(u.__v!==t.__v&&(h.props=m,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.forEach(function(n){n&&(n.__=u)}),P=0;P<h._sb.length;P++)h.__h.push(h._sb[P]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,C),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(p,_,g)})}if(h.context=C,h.props=m,h.__P=n,h.__e=!1,S=l.__r,I=0,\"prototype\"in A&&A.prototype.render){for(h.state=h.__s,h.__d=!1,S&&S(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,S&&S(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++I<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(g=h.getSnapshotBeforeUpdate(p,_)),$(n,y(T=null!=a&&a.type===w&&null==a.key?a.props.children:a)?T:[T],u,t,i,o,r,f,e,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&f.push(h),b&&(h.__E=h.__=null)}catch(n){u.__v=null,c||null!=r?(u.__e=e,u.__u|=c?160:32,r[r.indexOf(e)]=null):(u.__e=t.__e,u.__k=t.__k),l.__e(n,u,t)}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=z(t.__e,u,t,i,o,r,f,c,s);(a=l.diffed)&&a(u)}function j(n,u,t){u.__d=void 0;for(var i=0;i<t.length;i++)N(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function z(l,u,t,i,o,r,f,e,c){var s,a,v,p,d,g,b,m=t.props,w=u.props,k=u.type;if(\"svg\"===k&&(o=!0),null!=r)for(s=0;s<r.length;s++)if((d=r[s])&&\"setAttribute\"in d==!!k&&(k?d.localName===k:3===d.nodeType)){l=d,r[s]=null;break}if(null==l){if(null===k)return document.createTextNode(w);l=o?document.createElementNS(\"http://www.w3.org/2000/svg\",k):document.createElement(k,w.is&&w),r=null,e=!1}if(null===k)m===w||e&&l.data===w||(l.data=w);else{if(r=r&&n.call(l.childNodes),m=t.props||h,!e&&null!=r)for(m={},s=0;s<l.attributes.length;s++)m[(d=l.attributes[s]).name]=d.value;for(s in m)d=m[s],\"children\"==s||(\"dangerouslySetInnerHTML\"==s?v=d:\"key\"===s||s in w||L(l,s,null,d,o));for(s in w)d=w[s],\"children\"==s?p=d:\"dangerouslySetInnerHTML\"==s?a=d:\"value\"==s?g=d:\"checked\"==s?b=d:\"key\"===s||e&&\"function\"!=typeof d||m[s]===d||L(l,s,d,m[s],o);if(a)e||v&&(a.__html===v.__html||a.__html===l.innerHTML)||(l.innerHTML=a.__html),u.__k=[];else if(v&&(l.innerHTML=\"\"),$(l,y(p)?p:[p],u,t,i,o&&\"foreignObject\"!==k,r,f,r?r[0]:t.__k&&x(t,0),e,c),null!=r)for(s=r.length;s--;)null!=r[s]&&_(r[s]);e||(s=\"value\",void 0!==g&&(g!==l[s]||\"progress\"===k&&!g||\"option\"===k&&g!==m[s])&&L(l,s,g,m[s],!1),s=\"checked\",void 0!==b&&b!==l[s]&&L(l,s,b,m[s],!1))}return l}function N(n,u,t){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,t)}}function q(n,u,t){var i,o;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||N(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&q(i[o],u,t||\"function\"!=typeof n.type);t||null==n.__e||_(n.__e),n.__c=n.__=n.__e=n.__d=void 0}function B(n,l,u){return this.constructor(n,u)}function D(u,t,i){var o,r,f,e;l.__&&l.__(u,t),r=(o=\"function\"==typeof i)?null:i&&i.__k||t.__k,f=[],e=[],O(t,u=(!o&&i||t).__k=g(w,null,[u]),r||h,h,void 0!==t.ownerSVGElement,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o&&i?i:r?r.__e:t.firstChild,o,e),j(f,u,e)}function E(n,l){D(n,l,E)}function G(l,u,t){var i,o,r,f,e=d({},l.props);for(r in l.type&&l.type.defaultProps&&(f=l.type.defaultProps),u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:e[r]=void 0===u[r]&&void 0!==f?f[r]:u[r];return arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),b(l.type,e,i||l.key,o||l.ref,null)}function J(n,l){var u={__c:l=\"__cC\"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,P(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=v.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},k.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),P(this))},k.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),P(this))},k.prototype.render=w,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},S.__r=0,e=0,c=M(!1),s=M(!0),a=0;export{k as Component,w as Fragment,G as cloneElement,J as createContext,g as createElement,m as createRef,g as h,E as hydrate,t as isValidElement,l as options,D as render,T as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){var a,c,p={};for(c in t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),_=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(_=\"px;\"),i=i+l+\":\"+a+_}}return e+'=\"'+i+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(t)+'\"'}function _(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=_(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,_ as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n,a=e.__b,v=e.__r,l=e.diffed,m=e.__c,s=e.unmount,d=e.__;function h(n,t){e.__h&&e.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({__V:c}),u.__[n]}function p(n){return o=1,y(D,n)}function y(n,u,i){var o=h(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function _(n,u){var i=h(t++,3);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function A(n,u){var i=h(t++,4);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i))}function F(n){return o=5,q(function(){return{current:n}},[])}function T(n,t,r){o=6,A(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function q(n,r){var u=h(t++,7);return C(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function x(n,t){return o=8,q(function(){return n},t)}function P(n){var u=r.context[n.__c],i=h(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function V(n,t){e.useDebugValue&&e.useDebugValue(t?t(n):n)}function b(n){var u=h(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=h(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],e.__e(t,n.__v)}}e.__b=function(n){r=null,a&&a(n)},e.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),d&&d(n,t)},e.__r=function(n){v&&v(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},e.diffed=function(n){l&&l(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===e.requestAnimationFrame||((i=e.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},e.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],e.__e(r,n.__v)}}),m&&m(n,t)},e.unmount=function(n){s&&s(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&e.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{x as useCallback,P as useContext,V as useDebugValue,_ as useEffect,b as useErrorBoundary,g as useId,T as useImperativeHandle,A as useLayoutEffect,q as useMemo,y as useReducer,F as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import { createContext, toChildArray } from 'preact';\nimport { useContext, useEffect, useState } from 'preact/hooks';\nimport { AuthSession } from './session/AuthSession';\nimport { isWatchlistUnsubscribeToken } from '../../primitives/reactive/watchlist';\nimport { asyncNoop, EMPTY_OBJECT, noop } from '../../utils';\nimport type { AuthProviderProps } from './types';\n\nconst AuthContext = createContext<AuthSession['context']>({\n endpoints: EMPTY_OBJECT,\n hasError: false,\n http: asyncNoop,\n isExpired: undefined,\n refresh: noop,\n refreshing: false,\n});\n\nexport const AuthProvider = ({ children, session }: AuthProviderProps) => {\n const [, setContextCounter] = useState(0);\n const [unsubscribeCounter, setUnsubscribeCounter] = useState(0);\n\n useEffect(() => {\n return session.subscribe(maybeContext => {\n const stateUpdater = isWatchlistUnsubscribeToken(maybeContext) ? setUnsubscribeCounter : setContextCounter;\n stateUpdater(count => count + 1);\n });\n }, [unsubscribeCounter, session]);\n\n return <AuthContext.Provider value={session.context}>{toChildArray(children)}</AuthContext.Provider>;\n};\n\nexport const useAuthContext = () => useContext(AuthContext);\nexport default useAuthContext;\n","import { useCallback, useEffect, useReducer, useRef } from 'preact/hooks';\nimport { ErrorLevel } from '../../core/Http/types';\nimport { boolOrTrue } from '../../utils';\n\ninterface State<T> {\n data?: T;\n error?: Error;\n isFetching: boolean;\n}\n\ntype Cache<T> = Map<string, T>;\n\ntype Action<T> = { type: 'loading' } | { type: 'fetched'; payload: T } | { type: 'error'; payload: Error };\n\ntype FetchOptions = {\n enabled: boolean;\n errorLevel: ErrorLevel;\n keepPrevData: boolean;\n};\n\ntype UseFetchConfig<QueryFn> = {\n loadingContext?: string;\n params?: Record<string, string | number | Date>;\n requestOptions?: RequestInit;\n fetchOptions?: Partial<FetchOptions>;\n queryFn: QueryFn;\n};\nexport function useFetch<QueryFn extends (...args: any) => Promise<any>, T extends Awaited<ReturnType<QueryFn>>>({\n fetchOptions = { keepPrevData: true },\n queryFn,\n params,\n}: UseFetchConfig<QueryFn>): State<T> {\n // TODO cache endpoint calls\n const cache = useRef<Cache<T>>(new Map());\n // Used to prevent state update if the component is unmounted\n const cancelRequest = useRef<boolean>(false);\n const initialState: State<T> = {\n error: undefined,\n data: undefined,\n isFetching: boolOrTrue(fetchOptions.enabled),\n };\n const fetchReducer = (state: State<T>, action: Action<T>): State<T> => {\n switch (action.type) {\n case 'loading':\n return { ...initialState, isFetching: true, data: fetchOptions.keepPrevData ? state.data : undefined };\n case 'fetched':\n return { ...initialState, data: action.payload, isFetching: false };\n case 'error':\n return { ...initialState, error: action.payload, isFetching: false };\n default:\n return state;\n }\n };\n\n const [state, dispatch] = useReducer(fetchReducer, initialState);\n\n const fetchData = useCallback(async () => {\n // If a cache exists for this url, return it\n /* if (cache.current.get(url.href)) {\n dispatch({ type: 'fetched', payload: cache.current.get(url.href)! });\n return;\n } */\n\n dispatch({ type: 'loading' });\n\n try {\n if (cancelRequest.current) return;\n const data = await queryFn();\n\n // cache.current.set(url.href, data);\n\n dispatch({ type: 'fetched', payload: data });\n } catch (error) {\n if (cancelRequest.current) return;\n dispatch({ type: 'error', payload: error as Error });\n }\n }, [dispatch, queryFn]);\n\n useEffect(() => {\n cancelRequest.current = false;\n\n if (boolOrTrue(fetchOptions.enabled)) void fetchData();\n\n // Avoid a possible state update after the component was unmounted\n return () => {\n cancelRequest.current = true;\n };\n }, [fetchOptions.enabled, fetchData]);\n\n return state;\n}\n","import { useAuthContext } from '../../core/Auth';\nimport { useFetch } from '../../hooks/useFetch/useFetch';\nimport { EMPTY_OBJECT } from '../../utils';\nimport { useMemo } from 'preact/hooks';\n\nconst useBalanceAccounts = (balanceAccountId?: string) => {\n const { getBalanceAccounts: balanceAccountEndpointCall } = useAuthContext().endpoints;\n\n const { data, isFetching, error } = useFetch(\n useMemo(\n () => ({\n fetchOptions: { enabled: !!balanceAccountEndpointCall, keepPrevData: true },\n queryFn: async () => balanceAccountEndpointCall?.(EMPTY_OBJECT),\n }),\n [balanceAccountEndpointCall]\n )\n );\n\n const balanceAccounts = useMemo(\n () => data?.data.filter(account => (balanceAccountId ? account.id === balanceAccountId : true)),\n [data?.data, balanceAccountId]\n );\n\n const isBalanceAccountIdWrong = useMemo(\n () => !!balanceAccountId && !!data?.data.length && balanceAccounts?.length === 0,\n [balanceAccounts?.length, data?.data.length, balanceAccountId]\n );\n\n // TODO: Consider unifying error with isBalanceAccountIdWrong\n return { balanceAccounts, isBalanceAccountIdWrong, isFetching, error } as const;\n};\n\nexport default useBalanceAccounts;\n","export const WITH_ERROR_CLASS = 'adyen-pe-data-overview-container--with-error';\n","export const DEFAULT_TYPOGRAPHY_CLASSNAME = 'adyen-pe-typography';\n","export enum TypographyVariant {\n CAPTION = 'caption',\n BODY = 'body',\n SUBTITLE = 'subtitle',\n TITLE = 'title',\n}\n\nexport enum TypographyModifier {\n WIDE = 'wide',\n STRONGER = 'stronger',\n STRONGER_WIDE = 'stronger-wide',\n STRONGEST = 'strongest',\n STRONGEST_WIDE = 'strongest-wide',\n MEDIUM = 'm',\n LARGE = 'l',\n MOBILE = 'mobile',\n}\n\nexport enum TypographyElement {\n H1 = 'h1',\n H2 = 'h2',\n H3 = 'h3',\n H4 = 'h4',\n H5 = 'h5',\n H6 = 'h6',\n DIV = 'div',\n PARAGRAPH = 'p',\n SPAN = 'span',\n}\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useId as s,useReducer as h,useEffect as v,useLayoutEffect as d,useRef as p,useImperativeHandle as m,useMemo as y,useCallback as _,useContext as b,useDebugValue as g}from\"preact/hooks\";export*from\"preact/hooks\";function S(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){this.props=n,this.context=t}function w(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(E.prototype=new n).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function N(n){function t(t){var e=S({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var k=function(n,t){return null==n?null:r(r(n).map(t))},A={map:k,forEach:k,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},M=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);M(n,t,e,r)};var O=e.unmount;function T(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=S({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return T(n,t,e)})),n}function F(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return F(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function I(){this.__u=0,this.t=null,this.__b=null}function L(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function U(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function D(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),O&&O(n)},(I.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=L(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=F(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},I.prototype.componentWillUnmount=function(){this.t=[]},I.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=T(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var V=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function W(n){return this.getChildContext=function(){return n.context},n.children}function P(n){var e=this,r=n.i;e.componentWillUnmount=function(){o(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),o(t(W,{context:e.context},n.__v),e.l)}function j(n,e){var r=t(P,{__v:n,i:e});return r.containerInfo=e,r}(D.prototype=new n).__a=function(n){var t=this,e=L(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),V(t,n,r)):u()};e?e(o):o()}},D.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},D.prototype.componentDidUpdate=D.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){V(n,e,t)})};var z=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Z=/[A-Z0-9]/g,Y=\"undefined\"!=typeof document,$=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function q(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function G(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var J=e.event;function K(){}function Q(){return this.cancelBubble}function X(){return this.defaultPrevented}e.event=function(n){return J&&(n=J(n)),n.persist=K,n.isPropagationStopped=Q,n.isDefaultPrevented=X,n.nativeEvent=n};var nn,tn={enumerable:!1,configurable:!0,get:function(){return this.class}},en=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={};for(var o in t){var i=t[o];if(!(\"value\"===o&&\"defaultValue\"in t&&null==i||Y&&\"children\"===o&&\"noscript\"===e||\"class\"===o||\"className\"===o)){var l=o.toLowerCase();\"defaultValue\"===o&&\"value\"in t&&null==t.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":\"translate\"===l&&\"no\"===i?i=!1:\"ondoubleclick\"===l?o=\"ondblclick\":\"onchange\"!==l||\"input\"!==e&&\"textarea\"!==e||$(t.type)?\"onfocus\"===l?o=\"onfocusin\":\"onblur\"===l?o=\"onfocusout\":H.test(o)?o=l:-1===e.indexOf(\"-\")&&B.test(o)?o=o.replace(Z,\"-$&\").toLowerCase():null===i&&(i=void 0):l=o=\"oninput\",\"oninput\"===l&&u[o=l]&&(o=\"oninputCapture\"),u[o]=i}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",tn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=z,en&&en(n)};var rn=e.__r;e.__r=function(n){rn&&rn(n),nn=n.__c};var un=e.diffed;e.diffed=function(n){un&&un(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),nn=null};var on={ReactCurrentDispatcher:{current:{readContext:function(n){return nn.__n[n.__c].props.value}}}},ln=\"17.0.2\";function cn(n){return t.bind(null,n)}function fn(n){return!!n&&n.$$typeof===z}function an(n){return fn(n)&&n.type===u}function sn(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function hn(n){return fn(n)?f.apply(null,arguments):n}function vn(n){return!!n.__k&&(o(null,n),!0)}function dn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},mn=function(n,t){return n(t)},yn=u;function _n(n){n()}function bn(n){return n}function gn(){return[!1,_n]}var Sn=d,Cn=fn;function En(n,t){var e=t(),r=a({h:{__:e,v:t}}),u=r[0].h,o=r[1];return d(function(){u.__=e,u.v=t,wn(u)&&o({h:u})},[n,e,t]),v(function(){return wn(u)&&o({h:u}),n(function(){wn(u)&&o({h:u})})},[n]),e}function wn(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}var xn={useState:a,useId:s,useReducer:h,useEffect:v,useLayoutEffect:d,useInsertionEffect:Sn,useTransition:gn,useDeferredValue:bn,useSyncExternalStore:En,startTransition:_n,useRef:p,useImperativeHandle:m,useMemo:y,useCallback:_,useContext:b,useDebugValue:g,version:\"17.0.2\",Children:A,render:q,hydrate:G,unmountComponentAtNode:vn,createPortal:j,createElement:t,createContext:l,createFactory:cn,cloneElement:hn,createRef:c,Fragment:u,isValidElement:fn,isElement:Cn,isFragment:an,isMemo:sn,findDOMNode:dn,Component:n,PureComponent:E,memo:w,forwardRef:N,flushSync:mn,unstable_batchedUpdates:pn,StrictMode:yn,Suspense:I,SuspenseList:D,lazy:U,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:on};export{A as Children,E as PureComponent,yn as StrictMode,I as Suspense,D as SuspenseList,on as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,hn as cloneElement,cn as createFactory,j as createPortal,xn as default,dn as findDOMNode,mn as flushSync,N as forwardRef,G as hydrate,Cn as isElement,an as isFragment,sn as isMemo,fn as isValidElement,U as lazy,w as memo,q as render,_n as startTransition,vn as unmountComponentAtNode,pn as unstable_batchedUpdates,bn as useDeferredValue,Sn as useInsertionEffect,En as useSyncExternalStore,gn as useTransition,ln as version};\n//# sourceMappingURL=compat.module.js.map\n","import { DEFAULT_TYPOGRAPHY_CLASSNAME } from './constants';\nimport cx from 'classnames';\nimport { useMemo } from 'preact/hooks';\nimport { TypographyElement, TypographyModifier, TypographyVariant } from './types';\nimport { memo, PropsWithChildren } from 'preact/compat';\nimport './Typography.scss';\nimport { ComponentChild } from 'preact';\n\ninterface TypographyProps {\n el?: TypographyElement;\n stronger?: boolean;\n strongest?: boolean;\n variant: TypographyVariant;\n medium?: boolean;\n large?: boolean;\n wide?: boolean;\n children: ComponentChild;\n className?: string;\n}\n\nfunction Typography({ el, className, stronger, strongest, variant, medium, large, wide, children }: PropsWithChildren<TypographyProps>) {\n const Tag = el || 'p';\n const conditionalClasses = useMemo(\n () => ({\n // Caption\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.CAPTION}`]: variant === TypographyVariant.CAPTION,\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.CAPTION}-${TypographyModifier.WIDE}`]:\n variant === TypographyVariant.CAPTION && wide,\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.CAPTION}-${TypographyModifier.STRONGER}`]:\n variant === TypographyVariant.CAPTION && stronger,\n\n // Body\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.BODY}`]: variant === TypographyVariant.BODY,\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.BODY}-${TypographyModifier.WIDE}`]: variant === TypographyVariant.BODY && wide,\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.BODY}-${TypographyModifier.STRONGER}`]:\n variant === TypographyVariant.BODY && stronger,\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.BODY}-${TypographyModifier.STRONGEST}`]:\n variant === TypographyVariant.BODY && strongest,\n\n // Subtitle\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.SUBTITLE}`]: variant === TypographyVariant.SUBTITLE,\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.SUBTITLE}-${TypographyModifier.STRONGER}`]:\n variant === TypographyVariant.SUBTITLE && stronger,\n\n // Title\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.TITLE}`]: variant === TypographyVariant.TITLE && !medium && !large,\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.TITLE}-${TypographyModifier.MEDIUM}`]:\n variant === TypographyVariant.TITLE && medium,\n [`${DEFAULT_TYPOGRAPHY_CLASSNAME}--${TypographyVariant.TITLE}-${TypographyModifier.LARGE}`]: variant === TypographyVariant.TITLE && large,\n }),\n [variant, wide, stronger, medium, large, strongest]\n );\n\n return <Tag className={cx([`${DEFAULT_TYPOGRAPHY_CLASSNAME}`, conditionalClasses, className])}>{children}</Tag>;\n}\n\nexport default memo(Typography);\n","import { createContext } from 'preact';\nimport { noop } from '../../utils';\nimport { CommonPropsTypes, CoreProviderProps } from './types';\nimport Localization from '../Localization';\n\nexport const CoreContext = createContext<CoreProviderProps & { i18n: Localization['i18n'] }>({\n i18n: new Localization().i18n,\n loadingContext: '',\n commonProps: {} as CommonPropsTypes,\n updateCore: noop,\n});\n","import { useContext } from 'preact/hooks';\nimport { CoreContext } from './CoreContext';\n\nconst useCoreContext = () => useContext(CoreContext);\n\nexport default useCoreContext;\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMjMiIGhlaWdodD0iMTY5IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjIzIDE2OSI+CiAgICA8cGF0aCBmaWxsPSIjRUFCMUEwIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNMzYuNiAxMTIuMmMuNi0uMSAxLS43IDEtMS4zbC0uOS04LjcgMi4xIDYuNmMuMi42LjguOCAxLjQuNy42LS4xIDEtLjcuOC0xLjJsLTEuMy02LjggMi45LTQuOC01LjktNS41LTcuNiA5IDUgNC43IDEgNi4yYzAgLjcuNyAxLjIgMS41IDFaIi8+CiAgICA8cGF0aCBmaWxsPSIjRUFCMUEwIiBkPSJNMzEuNyAxMDMuNmMuMy40IDEuMiA2LjYgMS41IDkgMCAuNS42IDEgMS4xIDFoLjNjLjcgMCAxLjItLjYgMS4xLTEuM2wtLjctOS4xIi8+CiAgICA8cGF0aCBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNMzEuNyAxMDMuNmMuMy40IDEuMiA2LjYgMS41IDkgMCAuNS42IDEgMS4xIDFoLjNjLjcgMCAxLjItLjYgMS4xLTEuM2wtLjctOS4xIi8+CiAgICA8cGF0aCBmaWxsPSIjRUFCMUEwIiBkPSJNMzAuNCA5OS4zdjEzLjFjMCAuNi41IDEuMSAxLjIgMS4xLjUgMCAxLS40IDEtMWwxLjItOS4zIi8+CiAgICA8cGF0aCBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNMzAuNCA5OS4zdjEzLjFjMCAuNi41IDEuMSAxLjIgMS4xLjUgMCAxLS40IDEtMWwxLjItOS4zIi8+CiAgICA8cGF0aCBmaWxsPSIjRUFCMUEwIiBkPSJNMzUuOCA5MnMtNi41IDQuOC02LjYgNi4yYTk5NSA5OTUgMCAwIDAtLjkgMTAuM2MxLjUgMCAyLjgtMSAzLjItMi4zLjYtMi4xIDEuMi00LjkgMS01LjEtLjEtLjMgNS0uNyA1LjgtMy44Ii8+CiAgICA8cGF0aCBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNMzUuOCA5MnMtNi41IDQuOC02LjYgNi4yYTk5NSA5OTUgMCAwIDAtLjkgMTAuM2MxLjUgMCAyLjgtMSAzLjItMi4zLjYtMi4xIDEuMi00LjkgMS01LjEtLjEtLjMgNS0uNyA1LjgtMy44Ii8+CiAgICA8cGF0aCBmaWxsPSIjMzMwMEMyIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNOTUuMyA0Ni43Uzc4IDUzIDcwLjUgNTkuNGMtNy42IDYuNC0zNi4xIDMxLjItMzYuMSAzMS4ybDExLjIgMTEgMzgtMjcuM2MzLjUtMi42IDExLjctMjcuNiAxMS43LTI3LjZaIi8+CiAgICA8cGF0aCBmaWxsPSIjMDAxMTJDIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJtNDUuNiAxMDEuNy0xMS4yLTExIDI5LjgtMi41LTE4LjYgMTMuNVpNMTg2LjQgOTAuNGgtNy4xdjI1LjNoNy4xVjkwLjRaTTIxNS42IDY2LjdoLTcuMlY5Mmg3LjJWNjYuN1pNMTczLjcgMTY3LjhoLTdsOC4zLTQ0aDdsLTguMyA0NFpNMjYuMyAxNjcuOGgtN2w4LjMtNDRoN2wtOC4zIDQ0Wk0yMDkuMiAxNjcuOGgtN2wtOC4zLTQ0aDdsOC4zIDQ0Wk02OCA5MS4xaC03djI1aDdWOTFaIi8+CiAgICA8cGF0aCBmaWxsPSIjRjNGNkY5IiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNMjA4LjQgNjYuN0gzOVY5MmgxNjkuM1Y2Ni43WiIvPgogICAgPHBhdGggZmlsbD0iIzAwMTEyQyIgc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0iTTIwOC40IDEyMy40di03LjZIMzl2Ny42aDE2OS41WiIvPgogICAgPHBhdGggZmlsbD0iI0YzRjZGOSIgc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0iTTE5My43IDEyMy40VjExNkgxNS4zdjcuNWgxNzguNFoiLz4KICAgIDxwYXRoIGZpbGw9IiMwMDExMkMiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iLjYiIGQ9Ik03Ny40IDE2Ny44aC03bC04LjMtNDRoN2w4LjMgNDRaTTQyLjIgMTUwLjRsLS44IDNoMTYuMmwuNy0zLjFoLTE2Wk04MC4xIDE1MC4zbDEuNCAzaDE1LjFsLTEtM0g4MFoiLz4KICAgIDxwYXRoIGZpbGw9IiMwMDExMkMiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iLjYiIGQ9Im05Ny44IDExNS45LTI4LjQuMS03LjcgMzQuN2gtMjNsOS41LTQwLjZhMTggMTggMCAwIDEgMTYuNy0xMmw1NC0uNS0uNSAyLjZjLTIgOS4xLTEwLjYgMTUuNi0yMC42IDE1LjdaIi8+CiAgICA8cGF0aCBmaWxsPSIjMDAxMTJDIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNMTEwLjcgMTE1LjlIODUuNUw5OSAxNTAuM2gtMjVMNjIuOSAxMTdjLTMtOSAzLjYtMTguNiAxMy42LTE5LjRoLjhsNTQuNS0xLjMtLjYgMy45YTIwLjcgMjAuNyAwIDAgMS0yMC40IDE1LjdaIi8+CiAgICA8cGF0aCBmaWxsPSIjRjNGNkY5IiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNNTcuNiAxNTMuNEg0MS40bC0uOCAyLjctMTYuOCA0LjJjLTIgLjctMy43IDIuMS00LjcgMy45SDU1bDIuNi0xMC44Wk05Ni42IDE1My40SDgxLjVsMS4zIDIuOS0xNS4yIDRjLTIgLjctMy42IDIuMS00LjYgMy44aDM3LjNsLTMuNy0xMC43WiIvPgogICAgPHBhdGggZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0ibTU0IDE2OCAxLTMuOEgxOWE4IDggMCAwIDAtMSAzLjhoMzZaTTEwMS43IDE2OGwtMS4zLTMuOEg2M2E4IDggMCAwIDAtMSAzLjhoMzkuNloiLz4KICAgIDxwYXRoIGZpbGw9IiMzMzAwQzIiIGQ9Ik04Ni45IDU5LjZjLjMgMjAtNS40IDM3LjctNS40IDM3LjdsNTAuMy0uMXM0LjctMTguNyAyLTMxYy0yLjYtMTIuMy0xNi4yLTIxLjgtMjIuNS0yMi4zLTYuMi0uNi0yMC42IDQuNi0yMC42IDQuNiIvPgogICAgPHBhdGggc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0iTTg2LjkgNTkuNmMuMyAyMC01LjQgMzcuNy01LjQgMzcuN2w1MC4zLS4xczQuNy0xOC43IDItMzFjLTIuNi0xMi4zLTE2LjItMjEuOC0yMi41LTIyLjMtNi4yLS42LTIwLjYgNC42LTIwLjYgNC42Ii8+CiAgICA8cGF0aCBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNOTYuNyA0Ny4xcy42IDUuNSAyIDljMS4yIDMuNiAyIDcuMyAyIDcuM3M2LjgtMTcuNSA4LjMtMTkuNmMwIDAtOCA2LjUtMTIuMyAzLjNaIi8+CiAgICA8cGF0aCBmaWxsPSIjRUFCMUEwIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJtMTA1LjggMzguMyAzLjEgNS41cy00IDYuOC04LjYgNi43Yy00LjcgMC0zLjUtNS42LTMuNS01LjZsOS02LjZaIi8+CiAgICA8cGF0aCBmaWxsPSIjMDAxMTJDIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJtMTAxLjggNDQuNy00IDQuOS0xLTIuNSA1LTIuNFpNOTcgODMuMUg4NS42bC0zLjMtMTcuOWgxMS4xbDMuNCAxNy45WiIvPgogICAgPHBhdGggZmlsbD0iI0VBQjFBMCIgc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0iTTEwMS42IDgyLjZjLTEtMS42LTIuMy0zLTMuMi00LjUtMS4yLTItMS43LTQuNS0yLjMtNi44LTIuNS0uNy0yLjYgNC0yLjQgNiAuMyAxLjggMSAzLjcgMSAzLjctMi0uNC0xMC40LTQuNy0xMC40LTQuNy4zIDAtMS40IDIuMy0uNyAzLjNsMSAxLjNzLS43IDEuMy0uNyAyYy0uMSAxLjIgMS4xIDIuMiAxLjEgMi4ybC4xIDIuM2MuMi44IDEuNSAxLjUgMS41IDEuNXMwIDEuNC43IDEuOGMuNy4zIDExLjIgMS4yIDE1LjggMS40IDAtMS42LjUtMy40LjMtNSAwLTEuNS0xLTMuMi0xLjgtNC41WiIvPgogICAgPHBhdGggZmlsbD0iIzAwMTEyQyIgc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0iTTExMS43IDIxLjljLjQuOC0uMiAxLjgtMSAyLjQtLjcuNS0xLjcuNy0yLjYgMSAxLjItLjQgMi42LS4yIDMuOC4yLjQuMi44LjQgMSAuNy4zLjUuMSAxLjItLjIgMS42LS4zLjQtLjguOC0xLjMgMS0xLjQuNy0zIDEuMi00LjUgMS4zIDEgMCAxLjUgMS4xIDEuMSAxLjktLjQuOC0xLjMgMS4yLTIuMiAxLjQtMS41LjQtMy4zLjQtNC41LS40LS43LS40LTEuMS0xLTEuNS0xLjVhNyA3IDAgMCAxLS4yLTcuNCA5IDkgMCAwIDEgNS43LTMuOGMxLjctLjMgNS42LS4zIDYuNCAxLjZaIi8+CiAgICA8cGF0aCBmaWxsPSIjMDAxMTJDIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNNjguNyAyNWMuNSAxLjcgMyAyIDQuNiAxLjMtMS4yLjItMi40LjQtMy4zIDEuMi0xIC45LTEuMSAyLjQtLjEgMyAuMy4zLjguNCAxLjMuNGE5IDkgMCAwIDAgNC42LTFjLTEgLjYtMiAxLjktMS4zIDMgLjYuOSAyLjIuOCAzLjIuMiAxLS42IDItMS41IDMtMS44LS42LjQtMS4zLjgtMS41IDEuNS0uMy42IDAgMS42LjYgMS43LjUuMSAxIDAgMS40LS4yIDEuMS0uNiAyLjItMS4zIDMtMi4zLTEgLjMtLjggMS45LjEgMi4zIDEgLjQgMiAwIDMtLjZhOC41IDguNSAwIDAgMCAyLjgtM2MtLjMuNCAwIDEuMS42IDEuNSAxIC42IDIuNC43IDMuNS4zYTkgOSAwIDAgMCAzLTIgNyA3IDAgMCAwIDItMi40Yy42LTEuNC4yLTMtLjctNC4yQTEwIDEwIDAgMCAwIDk1IDIxYy00LjMtMi4zLTkuOC0zLTE0LjYtMS43YTYuNiA2LjYgMCAwIDAtNi44LTJjLS43LjMtMS41LjctMS44IDEuNC0uNSAxLjIuNSAyLjMgMS42IDIuOC0yIDAtNS40IDEtNC42IDMuNVoiLz4KICAgIDxwYXRoIGZpbGw9IiNFQUIxQTAiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iLjYiIGQ9Ik04MC42IDI3LjdjLjctLjcgMTAuNi02LjggMTAuNi02LjhsMTAuMiAzLjggNC44IDkuMXYuMmMuOSA3LjQtMy4xIDEwLjUtOC44IDEzLjItNSAyLjQtMTYtMS42LTE2LjktMTkuNCAwIDAgMCAwIDAgMFoiLz4KICAgIDxwYXRoIGZpbGw9IiMwMDExMkMiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iLjYiIGQ9Ik03MC4zIDE3LjNjLS4zLS45LS4zLTEuOC4yLTIuNC41LS41IDEuMi0uNyAxLjktLjYuNyAwIDEuMy40IDEuOS43LS45LS44LS4zLTIuMy44LTIuNyAxLjEtLjMgMi40LjEgMy4yIDEgLjUuNCAxIDQuMyAxLjUgNC40LjYuMSAxIDAgMS41LS4yIDIuNC0uOSA1LTEuNSA3LjQtMS44IDEuOS0uMyAzLjgtLjQgNS42LS4yIDIuMS4zIDQuMiAxIDYuMiAxLjl2MGMzLjQuMiA3LjQgMTAuNSA2LjQgMTAuOC0uOS4yLjIgMC0uMS4xLTIuMS43LTYuNC0uNy03LjYtMS4xYTEyIDEyIDAgMCAxLTMuMS0yLjFjLTEuOC0xLjQtNC0yLjItNi4yLTIuNmwtMS40LS4yYy0xLjguNy0zLjggMS01LjguNy0uNyAwLTEuNS0uMy0yLS44LS4zLS40LS4zLTEuMi4yLTEuNS0xIC41LTIuMS43LTMuMy43LS43IDAtMS42IDAtMi4yLS43LS42LS41LS41LTEuNi4zLTEuOC0xLjMuMy0yLjguNy00IDAtLjctLjUtMS4yLS43LTEuNC0xLjZaIi8+CiAgICA8cGF0aCBmaWxsPSIjRUFCMUEwIiBkPSJNMTAwIDI3LjhjLS42LTEuNy43LTQuMyAyLjQtNC42IDIuNi0uNSA0IDIgNC41IDQgLjUgMS44LjYgMy44LS4yIDUuNi0uMy41LS42IDEtMS4yIDEuNCIvPgogICAgPHBhdGggc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0iTTEwMCAyNy44Yy0uNi0xLjcuNy00LjMgMi40LTQuNiAyLjYtLjUgNCAyIDQuNSA0IC41IDEuOC42IDMuOC0uMiA1LjYtLjMuNS0uNiAxLTEuMiAxLjQiLz4KICAgIDxwYXRoIGZpbGw9IiNGM0Y2RjkiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iLjYiIGQ9Ik05Ni44IDcuN2MyIDAgMy42LTEuNSAzLjYtMy40IDAtMS44LTEuNi0zLjMtMy42LTMuM3MtMy42IDEuNS0zLjYgMy4zYzAgMS45IDEuNiAzLjQgMy42IDMuNFoiLz4KICAgIDxwYXRoIGZpbGw9IiNGM0Y2RjkiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iLjYiIGQ9Ik0xMDcuNCAyMi4xYzAtLjEgMC0zLjMtMS41LTcuNS0xLjYtNC00LjktOS4xLTExLjYtMTAuNC04LjItMS4yLTEzLjIgNC0xNS40IDcuMy0yLjMgMy4yLTIuNCA1LjMtMi40IDUuM2E2NyA2NyAwIDAgMSAzMC45IDUuM1oiLz4KICAgIDxwYXRoIGZpbGw9IiMwMDExMkMiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iLjYiIGQ9Ik05My4zIDE3LjljLjctLjkuNC0yLjItLjYtMi43LTEtLjQtMi40LjItMi43IDEuMi43LS45LjQtMi4yLS41LTIuOS0uOS0uNy0yLjMtLjctMy4yIDAtMSAuNi0xLjMgMS45LTEgMi45IDAtLjcgMC0xLjUtLjItMi4xLS4zLS43LTEtMS4zLTEuNy0xLjMtLjUgMC0xIC4yLTEuNC41YTMgMyAwIDAgMC0xIDNjLS4zLTEtLjUtMi4xLTEuMi0zLS43LTEtMS44LTEuNi0zLTEuNC0xIC4yLTIgMS4zLTIgMi4zIDAgMSAuNyAyIDEuNSAyLjcuMSAwIDE0LjYgNCAxNyAuOFoiLz4KICAgIDxwYXRoIGZpbGw9IiMzMzAwQzIiIGQ9Ik0xMjggNTQuOHMyMiAyNi41IDE4LjkgMzcuOGMtMiA2LjctNDcgNC45LTQ3IDQuOWwyLjUtMTQuMyAyMy43LTEuNS05LjctMTIuNSIvPgogICAgPHBhdGggc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0iTTEyOCA1NC44czIyIDI2LjUgMTguOSAzNy44Yy0yIDYuNy00NyA0LjktNDcgNC45bDIuNS0xNC4zIDIzLjctMS41LTkuNy0xMi41Ii8+CiAgICA8cGF0aCBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9Ii42IiBkPSJNNTcuNCAxLjRIMXYyOS40aDMzLjJMNDguOSA0NWwtLjItMTQuMmg4LjdWMS40WiIvPgogICAgPHBhdGggc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0iTTIuMyAxNjhoMjE5LjQiLz4KICAgIDxwYXRoIGZpbGw9IiMwMDExMkMiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iLjYiIGQ9Ik0yOS4yIDI2LjNjNi4yIDAgMTEuMy00LjcgMTEuMy0xMC41UzM1LjQgNS4yIDI5LjIgNS4yQzIzIDUuMiAxNy45IDEwIDE3LjkgMTUuOHM1IDEwLjUgMTEuMyAxMC41WiIvPgogICAgPHBhdGggc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNiIgZD0ibTI1LjIgMTIgOCA3LjVNMzMuMiAxMmwtOCA3LjUiLz4KPC9zdmc+\"","import { Ref, VNode } from 'preact';\nimport { forwardRef } from 'preact/compat';\n\ntype _RenderResult = VNode | null;\n\n/**\n * Alternative to using `forwardRef` but with fixed type inference.\n * @see [How To Use forwardRef With Generic Components]{@link https://www.totaltypescript.com/forwardref-with-generic-components}\n */\nexport const fixedForwardRef = <P, T>(render: (props: P, ref: Ref<T>) => _RenderResult): ((props: P & { ref?: Ref<T> }) => _RenderResult) =>\n forwardRef(render);\n\nexport default fixedForwardRef;\n","import { identity, isFunction, noop, sameValue } from '../../../utils';\nimport { MemoComparator, MemoComparatorGetters, MemoComparatorProp } from './types';\n\nexport const memoComparator = (() => {\n const _comparedProps = new Set<string>();\n\n const _propHasChanged = <T = {}>(prev: T, next: T, prop: MemoComparatorProp<T>, getters?: MemoComparatorGetters<T>) => {\n let getter = getters?.[prop];\n getter = isFunction(getter) ? getter : identity;\n return !sameValue(getter(prev[prop]), getter(next[prop]));\n };\n\n const comparator = (<T = {}>(getters?: MemoComparatorGetters<T>) =>\n (prev: T, next: T) => {\n try {\n for (const prop in prev) {\n _comparedProps.add(prop);\n if (_propHasChanged(prev, next, prop, getters)) return false;\n }\n\n for (const prop in next) {\n if (_comparedProps.has(prop)) continue;\n _comparedProps.add(prop);\n if (_propHasChanged(prev, next, prop, getters)) return false;\n }\n\n return true;\n } finally {\n _comparedProps.clear();\n }\n }) as MemoComparator;\n\n return Object.defineProperty(comparator, 'exclude', { value: noop });\n})();\n\nexport default memoComparator;\n","import classnames from 'classnames';\nimport { JSX } from 'preact';\n\nconst EXCESS_WHITESPACE_CHAR = /^\\s+|\\s+(?=\\s|$)/g;\n\nexport const parseClassName = (fallbackClassName: string, className: JSX.Signalish<string | undefined>): undefined | string => {\n const classes = className ? (typeof className === 'string' ? className : className?.value ?? '') : '';\n return classes.replace(EXCESS_WHITESPACE_CHAR, '') || fallbackClassName.replace(EXCESS_WHITESPACE_CHAR, '') || undefined;\n};\n\nexport const getClassName = (\n className?: JSX.Signalish<string | undefined>,\n fallbackClassName?: JSX.Signalish<string | undefined>,\n requiredClassName?: JSX.Signalish<string | undefined>\n) => classnames(parseClassName('', requiredClassName), parseClassName(parseClassName('', fallbackClassName) || '', className));\n\nexport const getModifierClasses = (prefix: string, modifiers: string[] = [], baseClasses: string[] = []): string =>\n classnames([...baseClasses, ...modifiers?.map(m => (prefix ? `${prefix}--${m}` : m))]);\n","import { JSXInternal } from 'preact/src/jsx';\nimport { boolify } from '../value/bool';\n\nexport const parseBooleanProp = (prop: boolean | JSXInternal.SignalLike<boolean | undefined> | undefined): boolean =>\n boolify(prop, (prop as JSXInternal.SignalLike<boolean | undefined>)?.value ?? prop);\n","import { getModifierClasses } from '../../../../utils/preact';\nimport { useCallback, useMemo } from 'preact/hooks';\nimport { JSXInternal } from 'preact/src/jsx';\n\nconst useButton = (\n className: string,\n classNameModifiers: string[],\n defaultClassName: string,\n disabled: boolean,\n onClick?: JSXInternal.MouseEventHandler<HTMLButtonElement>\n) => {\n const click = useCallback(\n (e: any) => {\n e.preventDefault();\n\n if (!disabled) {\n onClick?.(e);\n }\n },\n [disabled, onClick]\n );\n\n const classes = useMemo(\n () => getModifierClasses(defaultClassName, classNameModifiers, [defaultClassName, className]),\n [classNameModifiers, className]\n );\n\n return { classes, click };\n};\n\nexport default useButton;\n","export const DEFAULT_BUTTON_CLASSNAME = 'adyen-pe-button';\nexport const BUTTON_ACTION_CLASSNAME = `${DEFAULT_BUTTON_CLASSNAME}-actions`;\nexport const ICON_BUTTON_CLASSNAME = `${DEFAULT_BUTTON_CLASSNAME}--icon`;\nexport const ICON_BUTTON_CONTENT_CLASSNAME = `${DEFAULT_BUTTON_CLASSNAME}--icon-content`;\nexport const BUTTON_ACTION_CONTAINER_CLASSNAME = `${BUTTON_ACTION_CLASSNAME}__container-wrapper`;\nexport const BUTTON_LABEL_CLASSNAME = `${DEFAULT_BUTTON_CLASSNAME}__label`;\nexport const BUTTON_ICON_RIGHT_CLASSNAME = `${DEFAULT_BUTTON_CLASSNAME}__icon-right`;\nexport const BUTTON_ICON_LEFT_CLASSNAME = `${DEFAULT_BUTTON_CLASSNAME}__icon-left`;\n","import { VNode } from 'preact';\nimport { JSXInternal } from 'preact/src/jsx';\n\nexport interface ButtonProps extends JSXInternal.HTMLAttributes<HTMLButtonElement> {\n classNameModifiers?: string[];\n variant?: ButtonVariant;\n iconLeft?: VNode<Element>;\n iconRight?: VNode<Element>;\n inline?: boolean;\n iconButton?: boolean;\n}\n\nexport enum ButtonVariant {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n TERTIARY = 'tertiary',\n LINK = 'link',\n}\n","import useButton from './hooks/useButton';\nimport {\n DEFAULT_BUTTON_CLASSNAME,\n BUTTON_ICON_LEFT_CLASSNAME,\n BUTTON_ICON_RIGHT_CLASSNAME,\n BUTTON_LABEL_CLASSNAME,\n ICON_BUTTON_CLASSNAME,\n ICON_BUTTON_CONTENT_CLASSNAME,\n} from './constants';\nimport { TypographyElement, TypographyVariant } from '../Typography/types';\nimport Typography from '../Typography/Typography';\nimport { fixedForwardRef, parseBooleanProp, parseClassName } from '../../../utils/preact';\nimport { Ref } from 'preact';\nimport { useMemo } from 'preact/hooks';\nimport { ButtonProps, ButtonVariant } from './types';\nimport './Button.scss';\n\n// TODO: Reuse BaseButton component within Button component\nfunction Button(\n {\n variant = ButtonVariant.PRIMARY,\n disabled = false,\n onClick,\n classNameModifiers = [],\n iconLeft,\n iconRight,\n type = 'button',\n children,\n className,\n iconButton = false,\n ...restAttributes\n }: ButtonProps,\n ref: Ref<HTMLButtonElement>\n) {\n const classNameValue = useMemo(() => parseClassName('', className) || '', [className]);\n const disabledValue = useMemo(() => parseBooleanProp(disabled), [disabled]);\n\n const { classes, click } = useButton(classNameValue, [...classNameModifiers, variant], DEFAULT_BUTTON_CLASSNAME, disabledValue, onClick);\n\n return (\n <button\n className={iconButton ? `${ICON_BUTTON_CLASSNAME} ${classes}` : classes}\n type={type}\n disabled={disabled}\n onClick={click}\n ref={ref}\n {...restAttributes}\n >\n {iconButton ? (\n <div className={`${ICON_BUTTON_CONTENT_CLASSNAME}`}>{children}</div>\n ) : (\n <>\n {iconLeft && <span className={BUTTON_ICON_LEFT_CLASSNAME}>{iconLeft}</span>}\n <Typography className={BUTTON_LABEL_CLASSNAME} el={TypographyElement.SPAN} variant={TypographyVariant.BODY} stronger={true}>\n {children}\n </Typography>\n {iconRight && <span className={BUTTON_ICON_RIGHT_CLASSNAME}>{iconRight}</span>}\n </>\n )}\n </button>\n );\n}\n\nexport default fixedForwardRef(Button);\n","import Typography from '../Typography/Typography';\nimport { TypographyVariant } from '../Typography/types';\nimport { useCallback } from 'preact/hooks';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport { TranslationKey } from '../../../core/Localization/types';\nimport './ErrorMessageDisplay.scss';\nimport { JSXInternal } from 'preact/src/jsx';\nimport noResults from '../../../images/no-results.svg';\nimport Button from '../Button';\n\nexport const IMAGE_BREAKPOINT_SIZES = {\n md: 680,\n lg: 1024,\n};\n\ntype ErrorMessageDisplayProps = {\n title: TranslationKey;\n message?: TranslationKey | TranslationKey[];\n imageDesktop?: string;\n imageMobile?: string;\n withImage?: boolean;\n centered?: boolean;\n refreshComponent?: boolean;\n onContactSupport?: () => void;\n translationValues?: { [k in TranslationKey]?: JSXInternal.Element | null };\n};\n\nexport const ErrorMessageDisplay = ({\n title,\n message,\n imageDesktop,\n imageMobile,\n withImage,\n centered,\n refreshComponent,\n onContactSupport,\n translationValues,\n}: ErrorMessageDisplayProps) => {\n const { i18n, updateCore } = useCoreContext();\n\n const renderMessage = useCallback(\n (errorMessage: TranslationKey | TranslationKey[]) => {\n if (Array.isArray(errorMessage)) {\n return errorMessage.map((message, i) =>\n i === 0 ? (\n <>\n {i18n.get(message)}\n {translationValues && translationValues[message] && <>{translationValues[message]}</>}\n </>\n ) : (\n <>\n <br />\n {i18n.get(message)}\n {translationValues && translationValues[message] && <>{translationValues[message]}</>}\n </>\n )\n );\n }\n return i18n.get(errorMessage);\n },\n [i18n, translationValues]\n );\n\n return (\n <div className={`adyen-pe-error-message-display ${centered ? 'adyen-pe-error-message-display--centered' : ''}`}>\n {(imageDesktop || imageMobile || withImage) && (\n <div className=\"adyen-pe-error-message-display__illustration\">\n <picture>\n <source type=\"image/svg+xml\" media={`(min-width: ${IMAGE_BREAKPOINT_SIZES.md}px)`} srcSet={imageDesktop} />\n <source type=\"image/svg+xml\" media={`(max-width: ${IMAGE_BREAKPOINT_SIZES.md}px)`} srcSet={imageMobile} />\n <img srcSet={imageDesktop ?? noResults} alt={i18n.get('thereWasAnUnexpectedError')} />\n </picture>\n </div>\n )}\n <Typography variant={TypographyVariant.TITLE}>{i18n.get(title)}</Typography>\n {message && <Typography variant={TypographyVariant.BODY}>{renderMessage(message)}</Typography>}\n\n {(onContactSupport || refreshComponent) && (\n <div className={'adyen-pe-error-message-display__button'}>\n {onContactSupport && <Button onClick={onContactSupport}>{i18n.get('reachOutToSupport')}</Button>}\n {!onContactSupport && refreshComponent && <Button onClick={updateCore}>{i18n.get('refresh')}</Button>}\n </div>\n )}\n </div>\n );\n};\n","import AdyenPlatformExperienceError from '../../core/Errors/AdyenPlatformExperienceError';\nimport { TranslationKey } from '../../core/Localization/types';\nimport { JSXInternal } from 'preact/src/jsx';\n\nexport type ErrorMessage = {\n title: TranslationKey;\n message?: TranslationKey | TranslationKey[];\n refreshComponent?: boolean;\n onContactSupport?: () => void;\n translationValues?: { [k in TranslationKey]?: JSXInternal.Element | null };\n};\n\nexport const UNDEFINED_ERROR = { title: 'thereWasAnUnexpectedError', message: ['pleaseReachOutToSupportForAssistance'] } satisfies ErrorMessage;\n\nexport const getCommonErrorMessage = (error: AdyenPlatformExperienceError | undefined, onContactSupport?: () => void): ErrorMessage | null => {\n if (!error) return null;\n switch (error.errorCode) {\n case '29_001':\n return {\n title: 'theRequestIsMissingRequiredFieldsOrContainsInvalidData',\n message: ['pleaseReachOutToSupportForAssistance'],\n onContactSupport,\n };\n case '30_112':\n return {\n title: 'entityWasNotFound',\n message: ['entityWasNotFoundDetail'],\n onContactSupport,\n };\n case '00_403':\n return UNDEFINED_ERROR;\n default:\n return null;\n }\n};\n","export const BREAKPOINTS = {\n sm: 480,\n md: 768,\n lg: 1024,\n} as const;\n","import { useEffect, useMemo, useState } from 'preact/hooks';\n\nexport const useMediaQuery = <T extends string>(query: T) => {\n const list = useMemo(() => window.matchMedia(query), [query]);\n const [matches, setMatches] = useState(list.matches);\n\n useEffect(() => {\n const handleChange = (event: MediaQueryListEvent) => setMatches(event.matches);\n list.addEventListener('change', handleChange);\n return () => list.removeEventListener('change', handleChange);\n }, [list]);\n\n useEffect(() => {\n setMatches(list.matches);\n }, [list]);\n\n return matches;\n};\n\nexport default useMediaQuery;\n","import { BREAKPOINTS } from '../../../../constants';\nimport { useMediaQuery } from '../../../../hooks/useMediaQuery';\nimport type { ValueOfRecord } from '../../../../utils/types';\n\nexport const mediaQueries = {\n up: {\n sm: `(min-width: ${BREAKPOINTS.sm}px)`,\n md: `(min-width: ${BREAKPOINTS.md}px)`,\n lg: `(min-width: ${BREAKPOINTS.lg}px)`,\n },\n down: {\n xs: `(max-width: ${BREAKPOINTS.sm - 1}px)`,\n sm: `(max-width: ${BREAKPOINTS.md - 1}px)`,\n md: `(max-width: ${BREAKPOINTS.lg - 1}px)`,\n },\n only: {\n xs: `(max-width: ${BREAKPOINTS.sm - 1}px)`,\n sm: `(min-width: ${BREAKPOINTS.sm}px) and (max-width: ${BREAKPOINTS.md - 1}px)`,\n md: `(min-width: ${BREAKPOINTS.md}px) and (max-width: ${BREAKPOINTS.lg - 1}px)`,\n lg: `(min-width: ${BREAKPOINTS.lg}px)`,\n },\n} as const;\n\ntype _MediaQueries = typeof mediaQueries;\n\nexport type ResponsiveViewportMediaQuery = ValueOfRecord<\n | {\n [K in keyof _MediaQueries]: ValueOfRecord<_MediaQueries[K]>;\n }\n | { hello: `(prefers-color-scheme: dark)` }\n>;\n\nexport const useResponsiveViewport = useMediaQuery<ResponsiveViewportMediaQuery>;\n","import { ButtonVariant } from '../types';\n\nexport interface ButtonActionObject {\n title: string;\n event: (event: Event) => void;\n icon?: Node;\n disabled?: boolean;\n variant?: ButtonVariant;\n}\n\nexport type ButtonActionsList = ButtonActionObject[] | readonly ButtonActionObject[];\n\nexport enum ButtonActionsLayoutBasic {\n BUTTONS_END = 'buttons-end',\n FILL_CONTAINER = 'fill-container',\n SPACE_BETWEEN = 'space-between',\n VERTICAL_STACK = 'vertical-stack',\n}\n\nexport enum ButtonActionsLayoutExtended {\n BUTTONS_START = 'buttons-start',\n}\n\nexport const ButtonActionsLayout = { ...ButtonActionsLayoutBasic, ...ButtonActionsLayoutExtended };\nexport type ButtonActionsLayout = ButtonActionsLayoutBasic | ButtonActionsLayoutExtended;\n","import Button from '../../Button';\nimport { ButtonActionsLayout, ButtonActionsList } from './types';\nimport { BUTTON_ACTION_CLASSNAME, BUTTON_ACTION_CONTAINER_CLASSNAME } from '../constants';\nimport { ButtonVariant } from '../types';\nimport './ButtonActions.scss';\nimport { memo } from 'preact/compat';\nimport { useMemo } from 'preact/hooks';\n\ninterface ButtonActionsProps {\n actions: ButtonActionsList;\n layout?: ButtonActionsLayout;\n}\nfunction ButtonActions({ actions, layout = ButtonActionsLayout.BUTTONS_END }: ButtonActionsProps) {\n const conditionalClasses = (): string => {\n return `${BUTTON_ACTION_CLASSNAME}--${layout}`;\n };\n\n const generateButtonVariantByIndex = (actionIndex: number) => {\n const lastActionIndex = actions.length - 1;\n return actionIndex === lastActionIndex ? ButtonVariant.PRIMARY : ButtonVariant.SECONDARY;\n };\n\n const reversedActions = useMemo(() => [...actions].reverse(), [actions]);\n\n return (\n <div className={BUTTON_ACTION_CLASSNAME}>\n <div className={`${BUTTON_ACTION_CONTAINER_CLASSNAME} ${conditionalClasses()}`} role=\"group\">\n {reversedActions.map((button, index) => (\n <Button\n aria-label={button.title}\n key={index}\n disabled={button.disabled}\n variant={button.variant || generateButtonVariantByIndex(index)}\n onClick={button.event}\n >\n {button.title}\n </Button>\n ))}\n </div>\n </div>\n );\n}\n\nexport default memo(ButtonActions);\n","export const DEFAULT_POPOVER_CLASSNAME = 'adyen-pe-popover';\nexport const DEFAULT_TOOLTIP_CLASSNAME = 'adyen-pe-tooltip';\nexport const POPOVER_CONTAINER_CLASSNAME = `${DEFAULT_POPOVER_CLASSNAME}-container`;\nexport const POPOVER_HEADER_CLASSNAME = `${DEFAULT_POPOVER_CLASSNAME}__header`;\nexport const POPOVER_HEADER_TITLE_CLASSNAME = `${DEFAULT_POPOVER_CLASSNAME}__header-title`;\nexport const POPOVER_CONTENT_CLASSNAME = `${DEFAULT_POPOVER_CLASSNAME}__content`;\nexport const TOOLTIP_CONTENT_CLASSNAME = `${DEFAULT_TOOLTIP_CLASSNAME}__content`;\nexport const POPOVER_FOOTER_CLASSNAME = `${DEFAULT_POPOVER_CLASSNAME}__footer`;\n","import Button from '../../Button';\nimport { ButtonVariant } from '../../Button/types';\nimport './PopoverDismissButton.scss';\nimport useCoreContext from '../../../../core/Context/useCoreContext';\nimport { memo } from 'preact/compat';\n\ninterface PopoverDismissButtonProps {\n image?: boolean;\n onClick: () => void;\n}\n\nfunction PopoverDismissButton({ image = true, onClick }: PopoverDismissButtonProps) {\n const { i18n } = useCoreContext();\n const getConditionalClasses = (): string => {\n return image ? 'adyen-pe-popover-dismiss-button--on-image' : '';\n };\n return (\n <>\n <Button\n className={getConditionalClasses()}\n iconButton={true}\n variant={ButtonVariant.TERTIARY}\n onClick={onClick}\n aria-label={i18n.get('closeIconLabel')}\n >\n <svg role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\">\n <title>{'dismiss'}</title>\n <path\n fill=\"#00112C\"\n fillRule=\"evenodd\"\n d=\"M11.4697 12.5303C11.7626 12.8232 12.2374 12.8232 12.5303 12.5303C12.8232 12.2374 12.8232 11.7626 12.5303 11.4697L9.06066 8L12.5303 4.53033C12.8232 4.23744 12.8232 3.76256 12.5303 3.46967C12.2374 3.17678 11.7626 3.17678 11.4697 3.46967L8 6.93934L4.53033 3.46967C4.23744 3.17678 3.76256 3.17678 3.46967 3.46967C3.17678 3.76256 3.17678 4.23744 3.46967 4.53033L6.93934 8L3.46967 11.4697C3.17678 11.7626 3.17678 12.2374 3.46967 12.5303C3.76256 12.8232 4.23744 12.8232 4.53033 12.5303L8 9.06066L11.4697 12.5303Z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </Button>\n </>\n );\n}\n\nexport default memo(PopoverDismissButton);\n","import Typography from '../../Typography/Typography';\nimport { TypographyVariant } from '../../Typography/types';\nimport { memo } from 'preact/compat';\n\nexport interface PopoverTitleProps {\n title: string;\n isImageTitle?: boolean;\n}\nfunction PopoverTitle({ title, isImageTitle = false }: PopoverTitleProps) {\n const getVariant = (): TypographyVariant => {\n return isImageTitle ? TypographyVariant.SUBTITLE : TypographyVariant.BODY;\n };\n\n return (\n <Typography strongest={!isImageTitle} variant={getVariant()}>\n {title}\n </Typography>\n );\n}\n\nexport default memo(PopoverTitle);\n","import { ButtonActionsLayout, ButtonActionsList } from '../Button/ButtonActions/types';\nimport { ComponentChildren } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { MutableRef } from 'preact/hooks';\n\nexport enum PopoverContainerVariant {\n TOOLTIP = 'tooltip',\n POPOVER = 'popover',\n}\n\ninterface PopoverCoreProps {\n actions?: ButtonActionsList;\n actionsLayout?: ButtonActionsLayout;\n variant?: PopoverContainerVariant;\n divider?: boolean;\n dismissible?: boolean;\n fitContent?: boolean;\n disableFocusTrap?: boolean;\n open?: boolean;\n withContentPadding?: boolean;\n modifiers?: string[];\n position?: PopoverContainerPosition;\n containerSize?: PopoverContainerSize;\n title?: string;\n targetElement: MutableRef<Element | null>;\n withoutSpace?: boolean;\n dismiss?: () => any;\n setToTargetWidth?: boolean;\n children: ComponentChildren;\n classNameModifiers?: string[];\n showOverlay?: boolean;\n fitPosition?: boolean;\n}\n\ntype UncontrolledProps = Pick<HTMLAttributes<any>, 'aria-label' | 'aria-labelledby' | 'aria-describedby' | 'role'>;\n\nexport type PopoverProps = PopoverCoreProps & UncontrolledProps;\n\nexport enum PopoverContainerPosition {\n TOP = 'top',\n TOP_LEFT = 'top-left',\n RIGHT = 'right',\n BOTTOM = 'bottom',\n BOTTOM_LEFT = 'bottom-left',\n LEFT = 'left',\n}\n\nexport enum PopoverContainerSize {\n MEDIUM = 'medium',\n WIDE = 'wide',\n}\n","import UIElement from './external/UIElement/UIElement';\nimport { Core } from '../core';\n\nexport const enum InteractionKeyCode {\n ARROW_DOWN = 'ArrowDown',\n ARROW_LEFT = 'ArrowLeft',\n ARROW_RIGHT = 'ArrowRight',\n ARROW_UP = 'ArrowUp',\n BACKSPACE = 'Backspace',\n END = 'End',\n ENTER = 'Enter',\n ESCAPE = 'Escape',\n HOME = 'Home',\n PAGE_DOWN = 'PageDown',\n PAGE_UP = 'PageUp',\n SPACE = 'Space',\n TAB = 'Tab',\n}\n\nexport interface BaseElementProps {\n core: Core<any, any>;\n}\n\nexport interface IUIElement {\n accessibleName: string;\n displayName: string;\n elementRef: any;\n type: string;\n}\n\nexport interface IFormElement<P> {\n submit(): void;\n setStatus(status: UIElementStatus, props?: any): UIElement<P>;\n showValidation(): void;\n setState(newState: object): void;\n}\n\nexport type UIElementStatus = 'ready' | 'loading' | 'error' | 'success';\n\nexport type SetTriggerValidation = (callback: (schema?: Record<string, any>) => void) => void;\nexport interface UIElementProps {\n id?: string;\n name?: string;\n ref?: any;\n onContactSupport?: () => void;\n setUIElementStatus?: (status: string) => void;\n\n /** @internal */\n elementRef?: any;\n}\n\nexport interface FormProps<P> {\n onChange?: (state: any, element: UIElement<P> | null) => void;\n onValid?: (state: any, element: UIElement<P> | null) => void;\n beforeSubmit?: (state: any, element: UIElement<P>, actions: any) => Promise<void>;\n onSubmit?: (state: any, element: UIElement<P> | null) => void;\n onComplete?: (state: BaseElementProps, element: UIElement<P> | null) => void;\n onError?: (error: any, element?: UIElement<P> | null) => void;\n triggerValidation?: SetTriggerValidation;\n}\n\nexport type BaseElementState = {\n errors?: {\n [key: string]: any;\n };\n valid?: {\n [key: string]: boolean;\n };\n fieldProblems?: {\n [key: string]: any;\n };\n isValid?: boolean;\n};\n\nexport type _UIComponentProps<T> = BaseElementProps & UIElementProps & T & {};\n\nexport type ExternalUIComponentProps<T> = UIElementProps & T & {};\n\ntype onRecordSelection<T extends { showModal: () => void }> = (selection: T) => any;\n\ninterface _DataOverviewSelectionProps<T extends { showModal: () => void } = { showModal: () => void }> {\n onRecordSelection?: onRecordSelection<T>;\n}\n\ninterface _DataOverviewComponentProps {\n name?: string;\n elementRef?: UIElement<_DataOverviewComponentProps> | null;\n onFiltersChanged?: (filters: { [P in FilterParam]?: string }) => any;\n onLimitChanged?: (limit: number) => any;\n preferredLimit?: 10 | 20;\n allowLimitSelection?: boolean;\n showDetails?: boolean;\n hideTitle?: boolean;\n core: Core<any>;\n balanceAccountId?: string;\n}\n\nexport interface TransactionOverviewComponentProps\n extends _DataOverviewComponentProps,\n _DataOverviewSelectionProps<{ id: string; showModal: () => void }> {}\n\nexport interface PayoutsOverviewComponentProps\n extends _DataOverviewComponentProps,\n _DataOverviewSelectionProps<{ balanceAccountId: string; date: string; showModal: () => void }> {}\n\nexport const enum FilterParam {\n BALANCE_ACCOUNT = 'balanceAccount',\n CATEGORIES = 'categories',\n CURRENCIES = 'currencies',\n CREATED_SINCE = 'createdSince',\n CREATED_UNTIL = 'createdUntil',\n STATUSES = 'statuses',\n MIN_AMOUNT = 'minAmount',\n MAX_AMOUNT = 'maxAmount',\n}\n","export const popoverUtil = (<T extends Element, U extends Function>() => {\n let popoverRefs: Array<{ element: T; callback?: U | undefined }> = [];\n\n const closePopoversOutsideOfClick = (eventPath: EventTarget[]) => {\n const index = eventPath.reduce((index: number, path: EventTarget) => {\n const pathMatchIndex =\n path instanceof Node\n ? popoverRefs.findIndex(popoverRef => {\n const popoverRefId = popoverRef.element.getAttribute('id');\n const pathId = path && (path as HTMLElement)?.getAttribute ? (path as HTMLElement)?.getAttribute('id') : null;\n return popoverRefId === pathId;\n })\n : -1;\n if (index === -1 && pathMatchIndex !== -1) return pathMatchIndex;\n return index;\n }, -1);\n if (index === -1) {\n closeNestedPopovers(0);\n } else {\n index + 1 <= popoverRefs.length - 1 && closeNestedPopovers(index + 1);\n }\n };\n\n const remove = (currentRef: T) => {\n const index = popoverRefs.findIndex(refs => refs.element.getAttribute('id') === currentRef.getAttribute('id'));\n if (index >= 0) {\n popoverRefs.splice(index, 1);\n }\n };\n\n const add = (currentRef: T, callback: U | undefined) => {\n const index = popoverRefs.findIndex(refs => refs.element.getAttribute('id') === currentRef.getAttribute('id'));\n if (index >= 0) return;\n popoverRefs.push({ element: currentRef, callback: callback });\n };\n\n const closeNestedPopovers = (fromIndex: number) => {\n const popoverLength = popoverRefs.length;\n for (let i = fromIndex; i < popoverLength; i++) {\n popoverRefs?.[i]?.callback?.();\n }\n popoverRefs.splice(fromIndex);\n };\n\n const closeAll = () => {\n popoverRefs.forEach(ref => ref?.callback?.());\n popoverRefs = [];\n };\n\n return { add, remove, closeAll, closePopoversOutsideOfClick };\n})();\n","export const REF: unique symbol = Symbol('_ref');\n","export class ReflexError extends Error {}\nexport class UnknownRefError extends ReflexError {}\nexport class MissingReflexActionError extends ReflexError {}\n","import { REF } from './constants';\nimport { MissingReflexActionError } from './errors';\nimport type { Ref, Reflex, Reflexable, ReflexAction } from './types';\nimport { EMPTY_OBJECT, hasOwnProperty, isFunction, isUndefined, sameValue } from '../../../utils';\n\nexport function assertReflexAction<T = any>(value?: any): asserts value is ReflexAction<T> {\n if (!isFunction(value)) throw new MissingReflexActionError();\n}\n\nexport const isReflex = <T = any>(value: any): value is Reflex<T> => {\n try {\n if (isFunction(value) && hasOwnProperty(value, 'current') && hasOwnProperty(value, REF) && !sameValue(value, (value as Reflex<T>)[REF])) {\n const notDefined = (value as Reflex<T>).actions.get(EMPTY_OBJECT as ReflexAction<T>);\n const size = (value as Reflex<T>).actions.size;\n return isUndefined(notDefined) && Number.isInteger(size) && size >= 0;\n }\n } catch {\n /* Definitely not a reflex, return false outside this block */\n }\n\n return false;\n};\n\nexport const unwrap = <T = any>(reflexable: Reflexable<T>): Ref<T> => (isReflex<T>(reflexable) ? unwrap(reflexable[REF]) : reflexable);\n","import type { Defined, Nullable } from '../../../utils/types';\nimport type { Ref, RefAsCallback, Reflex, Reflexable, ReflexAction, ReflexRecord, ReflexRegister } from './types';\nimport { enumerable, isFunction, sameValue, struct } from '../../../utils';\nimport { assertReflexAction, unwrap } from './helpers';\nimport { UnknownRefError } from './errors';\nimport { REF } from './constants';\n\nexport const createReflexRegister = (() => {\n const _getRecordForRef = <T = any>(register: WeakMap<Ref, ReflexRecord>, ref: Ref<T>): ReflexRecord<T> => {\n const record = register.get(ref);\n if (!record) throw new UnknownRefError();\n return record;\n };\n\n const _bindReflexAction = <T = any>(\n register: WeakMap<Ref, ReflexRecord>,\n reflexable: Reflexable<T>,\n action?: ReflexAction<T>\n ): ReflexRecord<T>[0] => {\n let record: ReflexRecord<T> | undefined;\n let actions: Defined<typeof record>[1];\n\n const _ref = unwrap(reflexable);\n\n try {\n record = _getRecordForRef(register, _ref);\n } catch {\n /**\n * Ignore the original exception — since this could be a potential\n * reflex action binding. If no reflex action was provided, throw\n * an exception to signal the missing reflex action.\n */\n assertReflexAction<T>(action);\n }\n\n if (record) [, actions] = record;\n else {\n const isCallbackRef = isFunction(_ref);\n\n const _updateCurrentInstance: RefAsCallback<T> = isCallbackRef\n ? instance => {\n _ref((_current = instance));\n }\n : instance => {\n _ref.current = instance;\n _current = _ref.current;\n };\n\n const reflex = (instance => {\n if (actions.size === 0) {\n // Reflex is dead when there are no more reflex actions.\n // It should no longer mutate the _ref current instance.\n // Binding a new action registers _ref afresh with a new\n // reflex.\n return;\n }\n\n const previous = _current;\n\n _updateCurrentInstance(instance);\n\n if (!sameValue(_current, previous)) {\n for (const [action] of actions) {\n action(_current, previous);\n }\n }\n }) as Reflex<T>;\n\n let _current: Nullable<T> = isCallbackRef ? null : _ref.current;\n\n register.set(_ref, (record = [reflex, (actions = new Map())]));\n\n Object.defineProperties(reflex, {\n [REF]: { value: _ref },\n actions: {\n value: struct({\n get: { value: actions.get.bind(actions) },\n size: { get: () => actions.size },\n }),\n },\n current: {\n get: () => _current,\n set: isCallbackRef ? (void 0 as unknown as typeof reflex) : reflex,\n },\n });\n }\n\n if (action) {\n actions.set(action, 1 + (actions.get(action) || 0));\n }\n\n return record[0];\n };\n\n const _unbindReflexAction = <T = any>(register: WeakMap<Ref, ReflexRecord>, reflexable: Reflexable<T>, action: ReflexAction<T>): void => {\n const _ref = unwrap(reflexable);\n const [, actions] = _getRecordForRef(register, _ref);\n const bindings = actions.get(action) || 0;\n\n if (bindings === 1) actions.delete(action);\n else if (bindings > 1) actions.set(action, bindings - 1);\n if (actions.size === 0) register.delete(_ref);\n };\n\n return (): ReflexRegister => {\n const _register = new WeakMap<Ref, ReflexRecord>();\n return struct({\n bind: enumerable(_bindReflexAction.bind(void 0, _register)),\n unbind: enumerable(_unbindReflexAction.bind(void 0, _register)),\n }) as ReflexRegister;\n };\n})();\n\nexport const $globalReflexRegister = createReflexRegister();\nexport default $globalReflexRegister;\n","import type { Reflex, Reflexable, ReflexAction, ReflexContainer, ReflexRegister } from './types';\nimport type { DefinedNullable, Nullable } from '../../../utils/types';\nimport { isNullish, sameValue, struct } from '../../../utils';\nimport { assertReflexAction, unwrap } from './helpers';\nimport { $globalReflexRegister } from './register';\nimport { REF } from './constants';\n\nexport const createIsolatedFauxReflex = <T = any>(action: ReflexAction<T>): Reflex<T> => {\n assertReflexAction<T>(action);\n\n const $actions = new WeakMap<ReflexAction<T>, number>([[action, 1]]);\n\n const reflex = (instance => {\n if (sameValue(_current, instance)) return;\n const previous = _current;\n action((_current = instance), previous);\n }) as Reflex<T>;\n\n let _current: Nullable<T> = null;\n\n return Object.defineProperties(reflex, {\n [REF]: { value: reflex },\n actions: {\n value: struct({\n get: { value: $actions.get.bind($actions) },\n size: { value: 1 },\n }),\n },\n current: {\n get: () => _current,\n set: reflex,\n },\n });\n};\n\nexport const createReflexContainer = <T = any>(register: ReflexRegister = $globalReflexRegister): ReflexContainer<T> => {\n let _reflex: Nullable<Reflex<T>>;\n let _reflexable: DefinedNullable<Reflexable<T>> = null;\n let _reflexAction: ReflexAction<T>;\n let _released = false;\n\n const _refreshContainer = (action: ReflexAction<T>) => {\n _reflex = undefined;\n _reflexable = null;\n _reflexAction = action;\n _released = false;\n };\n\n const _releaseContainer = () => {\n if (!_released) {\n _unbindReflexAction();\n _released = true;\n }\n };\n\n const _unbindReflexAction = () => {\n try {\n if (!_reflexable) return;\n register.unbind(_reflexable, _reflexAction);\n } catch {\n /* ignore exception for unknown ref */\n }\n };\n\n const _updateContainer = (action: ReflexAction<T>, reflexable?: Nullable<Reflexable<T>>) => {\n assertReflexAction<T>(action);\n\n if (_released) _refreshContainer(action);\n\n const currentReflexable = isNullish(reflexable) ? null : reflexable;\n\n if (_reflexAction === action && _reflexable === currentReflexable) {\n if (_reflex) return; // no further update required\n } else if (_reflexable) {\n if (sameValue(unwrap(_reflexable), unwrap(currentReflexable!))) {\n _reflex = register.bind(_reflexable, action);\n _unbindReflexAction();\n _reflexAction = action;\n return; // no further update required\n }\n\n _unbindReflexAction();\n }\n\n _reflexAction = action;\n\n _reflex = (_reflexable = currentReflexable) ? register.bind(_reflexable, _reflexAction) : createIsolatedFauxReflex(_reflexAction);\n };\n\n return struct<ReflexContainer<T>>({\n action: { get: () => _reflexAction },\n reflex: { get: () => _reflex },\n release: { value: _releaseContainer },\n update: { value: _updateContainer },\n });\n};\n\nexport default createReflexContainer;\n","import { useLayoutEffect, useMemo, useRef } from 'preact/hooks';\nimport { createReflexContainer, Reflex, Reflexable, ReflexAction } from '../../primitives/reactive/reflex';\nimport type { Nullable } from '../../utils/types';\n\nconst useReflex = <T = any>(action: ReflexAction<T>, reflexable?: Nullable<Reflexable<T>>) => {\n const container = useRef(createReflexContainer<T>());\n\n useLayoutEffect(() => container.current.release, []);\n\n return useMemo(() => {\n container.current.update(action, reflexable);\n return container.current.reflex as Reflex<T>;\n }, [action, reflexable]);\n};\n\nexport default useReflex;\n","import { useCallback, useEffect, useRef } from 'preact/hooks';\nimport { popoverUtil } from '../../components/internal/Popover/utils/popoverUtil';\nimport type { Reflexable } from '../../primitives/reactive/reflex';\nimport type { Nullable } from '../../utils/types';\nimport useReflex from '../useReflex';\n\nexport const enum ClickOutsideVariant {\n POPOVER = 'POPOVER',\n DEFAULT = 'DEFAULT',\n}\nconst onFocusoutCapture = (e: Event) => {\n e.stopImmediatePropagation();\n};\nexport const useClickOutside = <T extends Element = Element>(\n rootElementRef?: Nullable<Reflexable<T>>,\n callback?: (interactionKeyPressed: boolean) => void,\n disableClickOutside?: boolean,\n variant?: ClickOutsideVariant\n) => {\n const ref = useRef<Nullable<T>>(null);\n\n const handleClickOutside = useCallback(\n (e: Event) => {\n const eventPath: EventTarget[] = e.composedPath();\n if (!(ref && ref.current)) return;\n if (variant === ClickOutsideVariant.POPOVER) {\n popoverUtil.closePopoversOutsideOfClick(eventPath);\n } else {\n if (eventPath.length) {\n const samePath = eventPath.some(path => (path as T)?.isSameNode && (path as T).isSameNode(ref.current as T));\n if (callback && !samePath) {\n callback(true);\n }\n }\n }\n },\n [ref, callback, variant]\n );\n\n const clickOutsideHandlerRef = useRef(handleClickOutside);\n\n useEffect(() => {\n return () => {\n if (ref.current) popoverUtil.remove(ref.current);\n document.removeEventListener('click', clickOutsideHandlerRef.current, true);\n };\n }, []);\n\n useEffect(() => {\n document.removeEventListener('click', clickOutsideHandlerRef.current, true);\n clickOutsideHandlerRef.current = handleClickOutside;\n document.addEventListener('click', clickOutsideHandlerRef.current, true);\n if (variant === ClickOutsideVariant.POPOVER) {\n if (ref.current instanceof Element) popoverUtil.add(ref.current, callback);\n }\n return () => {\n if (ref.current) popoverUtil.remove(ref.current);\n document.removeEventListener('click', clickOutsideHandlerRef.current, true);\n };\n }, [handleClickOutside, callback, variant]);\n\n useEffect(() => {\n if (disableClickOutside) {\n document.removeEventListener('click', clickOutsideHandlerRef.current, true);\n } else {\n document.addEventListener('click', clickOutsideHandlerRef.current, true);\n }\n }, [disableClickOutside]);\n\n return useReflex<T>(\n useCallback(\n (current: Nullable<T>, previous) => {\n if (previous instanceof Element) {\n previous.removeEventListener('focusout', onFocusoutCapture, true);\n }\n if (current instanceof Element) {\n if (!disableClickOutside) {\n current.addEventListener('focusout', onFocusoutCapture, true);\n ref.current = current;\n }\n }\n },\n [disableClickOutside, variant]\n ),\n rootElementRef\n );\n};\n","import { isNullish, isNumber, isUndefined, mod, some } from '../../../utils';\n\nexport interface TabbableRoot {\n get current(): Element | null;\n set current(maybeTabbableOrOffset: Element | number | null);\n root: Element | null;\n tabbables: Element[];\n}\n\nexport const SELECTORS = `\n a[href],\n audio[controls],\n video[controls],\n button,\n input,\n select,\n textarea,\n [contenteditable],\n [tabindex]\n`.replace(/\\s+/, '');\n\nconst ATTRIBUTES = ['contenteditable', 'controls', 'disabled', 'hidden', 'href', 'inert', 'tabindex'];\nconst CHECKED_RADIOS = new Map<HTMLFormElement, Map<string, HTMLInputElement | null>>();\n\nconst isInput = (element: Element): element is HTMLInputElement => element.tagName === 'INPUT';\nconst isRadio = (element: Element): element is HTMLInputElement => isInput(element) && element.type === 'radio';\nconst isCheckedRadio = (element: Element): element is HTMLInputElement => {\n const name = (element as HTMLInputElement).name;\n const form = (element as HTMLInputElement).form;\n const checkedRadiosForForm = CHECKED_RADIOS.get(form as HTMLFormElement);\n\n let checkedRadio = checkedRadiosForForm?.get(name);\n\n if (isUndefined(checkedRadio) && form) {\n checkedRadio = (form.querySelector(`input[type=radio][name='${name}']:checked`) as HTMLInputElement) || null;\n CHECKED_RADIOS.set(form, (checkedRadiosForForm || new Map<string, HTMLInputElement | null>()).set(name, checkedRadio));\n }\n\n return checkedRadio === element;\n};\n\nconst shouldRefresh = (tabbables: Element[], records: MutationRecord[]) => {\n for (const record of records) {\n if (record.type !== 'attributes') {\n if (some(record.addedNodes, (node: Node) => node instanceof Element && isTabbable(node as Element))) return true;\n if (some(record.removedNodes, (node: Node) => tabbables.includes(node as Element))) return true;\n } else if (isTabbable(record.target as Element)) return true;\n else if (tabbables.includes(record.target as Element)) return true;\n }\n return false;\n};\n\nexport const focusIsWithin = (rootElement: Element = document.body, elementWithFocus?: Element | null): boolean => {\n if (isUndefined(rootElement)) return false;\n if (isNullish(elementWithFocus)) return !!document.activeElement && focusIsWithin(rootElement, document.activeElement);\n\n let parentElement = elementWithFocus?.parentNode as Element | null;\n\n while (parentElement) {\n if (parentElement === rootElement) return true;\n parentElement = parentElement?.parentNode as Element | null;\n }\n\n return false;\n};\n\nexport const isFocusable = (element: Element) =>\n !(\n // [TODO]: Include all of these checks\n // (1) matches focusable elements selector\n // (2) is disabled element\n // (3) is inert or inert subtree child\n // (4) is hidden input\n // (5) with visibility: hidden\n // (6) is summary of open details element\n // (7) is details with summary element\n // (8) is disabled fieldset subtree child\n\n /* (1) */ (\n !element.matches(SELECTORS) ||\n /* (2) */ (element as HTMLInputElement)?.disabled ||\n /* (3) */ /^(true)?$/.test(element.getAttribute('inert') as string) ||\n /* (4) */ (isInput(element) && element.hidden)\n )\n );\n\nexport const isTabbable = (element: Element) =>\n !(\n (\n (isRadio(element) && !isCheckedRadio(element)) || // (1) is not checked radio button\n (element as HTMLElement)?.tabIndex < 0 || // (2) has negative tabindex\n !isFocusable(element)\n ) // (3) is not focusable\n );\n\nexport const withTabbableRoot = () => {\n const observer = new MutationObserver(records => shouldRefresh(tabbables, records) && getTabbables());\n const tabbables: Element[] = [];\n\n let currentIndex = -1;\n let root: Element | null = null;\n\n const focusAt = (tabbableIndex: number) => {\n if (tabbableIndex < 0) return;\n const constrainedIndex = Math.min(tabbableIndex, tabbables.length - 1);\n if (currentIndex !== constrainedIndex) currentIndex = constrainedIndex;\n (tabbables[currentIndex] as HTMLElement)?.focus();\n };\n\n const getTabbables = () => {\n tabbables.length = 0;\n if (!(root instanceof Element)) return;\n root.querySelectorAll(SELECTORS).forEach(maybeTabbable => isTabbable(maybeTabbable) && tabbables.push(maybeTabbable));\n if (!focusIsWithin(root)) return;\n tabbableRoot.current = document.activeElement;\n };\n\n const tabbableRoot = Object.create(null, {\n current: {\n get: () => tabbables[currentIndex] ?? null,\n set: (maybeTabbableOrOffset: Element | number | null) => {\n if (!maybeTabbableOrOffset) return;\n if (!isNumber(maybeTabbableOrOffset)) return focusAt(tabbables.indexOf(maybeTabbableOrOffset));\n if (maybeTabbableOrOffset !== ~~maybeTabbableOrOffset) return;\n return focusAt(mod(currentIndex + maybeTabbableOrOffset, tabbables.length));\n },\n },\n root: {\n get: () => root,\n set: (maybeElement?: any) => {\n if (maybeElement === root) return;\n\n root && observer.disconnect();\n root = maybeElement instanceof Element ? maybeElement : null;\n tabbables.length = 0;\n\n if (!root) return;\n\n observer.observe(root, {\n attributeFilter: ATTRIBUTES,\n attributes: true,\n childList: true,\n subtree: true,\n });\n\n getTabbables();\n },\n },\n tabbables: { value: tabbables },\n }) as TabbableRoot;\n\n return tabbableRoot;\n};\n\nexport default withTabbableRoot;\n","import { useCallback, useMemo, useRef } from 'preact/hooks';\nimport { InteractionKeyCode } from '../../components/types';\nimport { isUndefined } from '../../utils';\nimport withTabbableRoot, { focusIsWithin, isFocusable } from '../../primitives/dom/tabbableRoot/tabbable';\nimport type { Reflexable } from '../../primitives/reactive/reflex';\nimport type { Nullable } from '../../utils/types';\nimport useReflex from '../useReflex';\n\nconst useFocusTrap = (rootElementRef: Nullable<Reflexable<Element>>, onEscape: (interactionKeyPressed: boolean) => any) => {\n const escapedFocus = useRef(false);\n const focusElement = useRef<Element | null>(null);\n const interactionKeyPressed = useRef(false);\n const tabbableRoot = useMemo(withTabbableRoot, []);\n\n const onClickCapture = useMemo(() => {\n let lastFocusableElement: Element | null = null;\n let raf: number | undefined;\n\n return (evt: Event) => {\n if (!isUndefined(raf)) cancelAnimationFrame(raf);\n let element = evt.target as Element | null;\n while (element && element !== evt.currentTarget) {\n if (isFocusable(element)) {\n lastFocusableElement = element;\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n if (focusElement.current !== lastFocusableElement && lastFocusableElement instanceof HTMLElement) {\n (focusElement.current = lastFocusableElement)?.focus();\n }\n lastFocusableElement = null;\n raf = undefined;\n });\n });\n return;\n }\n element = element.parentNode as Element | null;\n }\n };\n }, []);\n\n const onFocusInCapture = useCallback((evt: FocusEvent) => {\n tabbableRoot.current = focusElement.current = evt.target as Element | null;\n }, []);\n\n const onFocusOutCapture = useCallback((evt: FocusEvent) => {\n if (tabbableRoot.tabbables.includes(evt.relatedTarget as Element)) return;\n if (focusIsWithin(evt.currentTarget as Element, evt.relatedTarget as Element | null)) return;\n if (interactionKeyPressed.current) return;\n\n escapedFocus.current = true;\n\n requestAnimationFrame(() => {\n if (escapedFocus.current) onEscape((escapedFocus.current = false));\n });\n }, []);\n\n const onKeyDownCapture = useMemo(() => {\n let raf: number | undefined;\n\n return (evt: KeyboardEvent) => {\n switch (evt.code) {\n case InteractionKeyCode.ARROW_DOWN:\n case InteractionKeyCode.ARROW_LEFT:\n case InteractionKeyCode.ARROW_RIGHT:\n case InteractionKeyCode.ARROW_UP:\n case InteractionKeyCode.END:\n case InteractionKeyCode.ESCAPE:\n case InteractionKeyCode.HOME:\n case InteractionKeyCode.PAGE_DOWN:\n case InteractionKeyCode.PAGE_UP:\n case InteractionKeyCode.TAB:\n cancelAnimationFrame(raf as number);\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n interactionKeyPressed.current = false;\n raf = undefined;\n });\n });\n interactionKeyPressed.current = true;\n break;\n }\n if (evt.code === InteractionKeyCode.TAB) {\n evt.preventDefault();\n tabbableRoot.current = evt.shiftKey ? -1 : 1;\n } else if (evt.code === InteractionKeyCode.ESCAPE) onEscape(true);\n };\n }, []);\n\n return useReflex<Element>(\n useCallback((current, previous) => {\n if (previous instanceof Element) {\n (previous as HTMLElement).removeEventListener('keydown', onKeyDownCapture, true);\n (previous as HTMLElement).removeEventListener('focusin', onFocusInCapture, true);\n (previous as HTMLElement).removeEventListener('focusout', onFocusOutCapture, true);\n (current as HTMLElement).removeEventListener('click', onClickCapture, true);\n }\n\n if (current instanceof Element) {\n (current as HTMLElement).addEventListener('keydown', onKeyDownCapture, true);\n (current as HTMLElement).addEventListener('focusin', onFocusInCapture, true);\n (current as HTMLElement).addEventListener('focusout', onFocusOutCapture, true);\n (current as HTMLElement).addEventListener('click', onClickCapture, true);\n escapedFocus.current = false;\n tabbableRoot.root = current;\n } else tabbableRoot.root = null;\n }, []),\n rootElementRef\n );\n};\n\nexport default useFocusTrap;\n","import { enumerable, isUndefined, struct, structFrom } from '../../../../utils';\n\ntype ObserverCallback = (entry: IntersectionObserverEntry) => void;\n\ninterface WithIntersectionObserver {\n remove: (this: { observerCallback: ObserverCallback }) => void;\n}\n\ninterface ObserverInstance {\n observerCallback: ObserverCallback;\n observer: IntersectionObserver;\n}\n\nconst getIntersectionObserver = (() => {\n const observerCallbackMap = new WeakMap<ObserverCallback, ObserverInstance & WithIntersectionObserver>();\n\n const withIntersectionObserver = struct({\n remove: enumerable(function () {\n remove(this.observerCallback);\n } as WithIntersectionObserver['remove']),\n }) as WithIntersectionObserver;\n\n const findObserver = (callbackFn: ObserverCallback) => {\n let observerInstance = observerCallbackMap.get(callbackFn);\n\n if (isUndefined(observerInstance)) {\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (callbackFn) callbackFn(entry);\n });\n },\n { root: null, rootMargin: '', threshold: [1] }\n );\n\n observerInstance = structFrom(withIntersectionObserver, {\n observerCallback: enumerable(callbackFn),\n observer: enumerable(observer),\n }) as ObserverInstance & WithIntersectionObserver;\n\n observerCallbackMap.set(callbackFn, observerInstance);\n }\n\n return observerInstance;\n };\n\n const remove = (callbackFn: ObserverCallback) => {\n const currentObserver = observerCallbackMap.get(callbackFn);\n currentObserver?.observer.disconnect();\n observerCallbackMap.delete(callbackFn);\n };\n\n return findObserver;\n})();\n\nexport default getIntersectionObserver;\n","import { PopoverContainerPosition, PopoverContainerVariant } from '../../components/internal/Popover/types';\nimport getIntersectionObserver from '../../components/internal/Popover/utils/utils';\nimport { MutableRef, Ref, useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport type { Reflexable } from '../../primitives/reactive/reflex';\nimport type { Nullable } from '../../utils/types';\nimport useReflex from '../useReflex';\n\nconst calculateOffset = ({\n popover,\n offset,\n targetElement,\n position,\n variant,\n fullWidth,\n}: {\n popover: Element;\n offset: [number, number, number, number];\n targetElement: MutableRef<Element | null>;\n position: PopoverContainerPosition;\n variant: PopoverContainerVariant;\n fullWidth: boolean;\n}) => {\n const currentTarget = targetElement?.current as HTMLElement;\n\n let dimensionX = 0;\n let dimensionY = 0;\n const targetPosition = currentTarget.getBoundingClientRect();\n const bodyPosition = document.body.getBoundingClientRect();\n\n const popoverContent = popover?.firstChild as HTMLElement;\n const toCenterFullWidth = bodyPosition.left + bodyPosition.width / 2 - popoverContent.offsetWidth / 2;\n const toCenterX = targetPosition.left + targetPosition.width / 2 - popoverContent.offsetWidth / 2;\n const toCenterY = targetPosition.top + targetPosition.height / 2 - popoverContent.offsetHeight / 2;\n switch (position) {\n case PopoverContainerPosition.BOTTOM:\n dimensionX = fullWidth\n ? toCenterFullWidth\n : variant === PopoverContainerVariant.TOOLTIP\n ? toCenterX + window.scrollX\n : targetPosition?.left + window.scrollX;\n dimensionY = targetPosition?.top + targetPosition?.height + window.scrollY + offset[1];\n break;\n case PopoverContainerPosition.BOTTOM_LEFT:\n dimensionX = targetPosition?.right + window.scrollX - popover.clientWidth;\n dimensionY = targetPosition?.top + targetPosition?.height + window.scrollY + offset[1];\n break;\n case PopoverContainerPosition.TOP:\n dimensionX = variant === PopoverContainerVariant.TOOLTIP ? toCenterX + window.scrollX : targetPosition.left + window.scrollX;\n dimensionY = targetPosition?.top - popoverContent?.clientHeight + window.scrollY - offset[0];\n break;\n case PopoverContainerPosition.RIGHT:\n dimensionX = targetPosition.left + targetPosition.width + window.scrollX + offset[2];\n dimensionY =\n variant === PopoverContainerVariant.TOOLTIP\n ? toCenterY + window.scrollY\n : targetPosition?.top - targetPosition?.height / 2 + window.scrollY;\n break;\n case PopoverContainerPosition.LEFT:\n dimensionX = targetPosition?.left - popover?.clientWidth + window.scrollX - offset[3];\n dimensionY =\n variant === PopoverContainerVariant.TOOLTIP\n ? toCenterY + window.scrollY\n : targetPosition?.top + window.scrollY - targetPosition?.height / 2;\n break;\n }\n\n const result = [dimensionX, dimensionY, 0];\n\n const res = result.reduce((acc, currentVal, index) => {\n if (index === 0) {\n return acc + `${currentVal}px,`;\n } else if (index === result.length - 1) {\n return acc + ` ${currentVal}px)`;\n } else {\n return acc + ` ${currentVal}px,`;\n }\n }, 'translate3d(');\n\n return `position:absolute;inset:0 auto auto 0;margin: 0;transform: ${res};visibility:hidden`;\n};\nconst usePopoverPositioner = (\n offset: [number, number, number, number],\n targetElement: MutableRef<Element | null>,\n variant: PopoverContainerVariant,\n position?: PopoverContainerPosition,\n arrowRef?: Ref<HTMLSpanElement> | undefined,\n setToTargetWidth?: boolean,\n showOverlay?: boolean,\n fitPosition?: boolean,\n ref?: Nullable<Reflexable<Element>>\n) => {\n const [initialPosition, setInitialPosition] = useState(true);\n const [showPopover, setShowPopover] = useState(fitPosition ? !fitPosition : !!position);\n const [currentPosition, setCurrentPosition] = useState(position || PopoverContainerPosition.TOP);\n const [checkedPositions, setCheckedPosition] = useState<Array<[PopoverContainerPosition, number]>>([]);\n\n const observerCallback = useCallback(\n (entry: IntersectionObserverEntry) => {\n if (entry.intersectionRatio === 1) return setShowPopover(true);\n if (!initialPosition && entry.intersectionRatio !== 1) {\n if (checkedPositions && checkedPositions.length === (fitPosition ? 5 : 4)) {\n const bestPos = checkedPositions.reduce((res, pos) => {\n if (pos[1] > res[1]) return pos;\n return res;\n }, checkedPositions[0]!);\n setCurrentPosition(bestPos[0]);\n setShowPopover(true);\n return;\n }\n setShowPopover(false);\n switch (currentPosition) {\n case PopoverContainerPosition.TOP:\n setCheckedPosition(value => [...value, [PopoverContainerPosition.TOP, entry.intersectionRatio]]);\n setCurrentPosition(PopoverContainerPosition.BOTTOM);\n break;\n case PopoverContainerPosition.BOTTOM:\n setCheckedPosition(value => [...value, [PopoverContainerPosition.BOTTOM, entry.intersectionRatio]]);\n setCurrentPosition(fitPosition ? PopoverContainerPosition.BOTTOM_LEFT : PopoverContainerPosition.RIGHT);\n break;\n case PopoverContainerPosition.BOTTOM_LEFT:\n setCheckedPosition(value => [...value, [PopoverContainerPosition.BOTTOM, entry.intersectionRatio]]);\n setCurrentPosition(PopoverContainerPosition.RIGHT);\n break;\n case PopoverContainerPosition.RIGHT:\n setCheckedPosition(value => [...value, [PopoverContainerPosition.RIGHT, entry.intersectionRatio]]);\n setCurrentPosition(PopoverContainerPosition.LEFT);\n break;\n case PopoverContainerPosition.LEFT:\n setCheckedPosition(value => [...value, [PopoverContainerPosition.LEFT, entry.intersectionRatio]]);\n setCurrentPosition(PopoverContainerPosition.TOP);\n break;\n }\n }\n },\n [initialPosition, checkedPositions, currentPosition, fitPosition]\n );\n const observerCallbackRef = useRef(observerCallback);\n\n useEffect(() => {\n getIntersectionObserver(observerCallbackRef.current).remove();\n observerCallbackRef.current = observerCallback;\n }, [observerCallback]);\n\n return useReflex<Element>(\n useCallback(\n (current, previous) => {\n if (previous && (!position || fitPosition)) {\n const observer = getIntersectionObserver(observerCallback).observer;\n observer.unobserve(previous);\n }\n\n if (current && targetElement.current) {\n if (!position || fitPosition) {\n const observer = getIntersectionObserver(observerCallback).observer;\n observer.observe(current);\n }\n if (!(current instanceof Element)) return;\n const popoverStyle = calculateOffset({\n popover: current,\n offset,\n targetElement,\n position: currentPosition,\n variant,\n fullWidth: showOverlay ?? false,\n });\n const style = showPopover ? popoverStyle + ';visibility:visible' : popoverStyle;\n\n const styleWithWidth = setToTargetWidth\n ? style + ';min-width:fit-content;width:' + targetElement.current?.clientWidth + 'px'\n : style;\n current.setAttribute('style', `${styleWithWidth}`);\n\n if (initialPosition) setInitialPosition(false);\n\n if (variant && variant === PopoverContainerVariant.TOOLTIP && arrowRef) {\n arrowRef.current?.setAttribute('data-popover-placement', currentPosition);\n }\n }\n },\n [\n offset,\n targetElement,\n currentPosition,\n position,\n variant,\n observerCallback,\n showPopover,\n initialPosition,\n setToTargetWidth,\n arrowRef,\n showOverlay,\n fitPosition,\n ]\n ),\n ref\n );\n};\n\nexport default usePopoverPositioner;\n","import { uniqueId } from '../../utils';\nimport { useCallback, useRef } from 'preact/hooks';\nimport type { Reflexable } from '../../primitives/reactive/reflex';\nimport type { Nullable } from '../../utils/types';\nimport useReflex from '../useReflex';\n\nconst useUniqueIdentifier = (ref?: Nullable<Reflexable<Element>>) => {\n const id = useRef<string>();\n\n return useReflex<Element>(\n useCallback(\n (current, previous) => {\n if (previous instanceof Element && previous.id === id.current) previous.id = '';\n if (!(current instanceof Element)) return;\n current.id = id.current || (id.current = uniqueId());\n },\n [ref]\n ),\n ref\n );\n};\n\nexport default useUniqueIdentifier;\n","import ButtonActions from '../Button/ButtonActions/ButtonActions';\nimport { ButtonActionsLayoutBasic } from '../Button/ButtonActions/types';\nimport {\n DEFAULT_POPOVER_CLASSNAME,\n DEFAULT_TOOLTIP_CLASSNAME,\n POPOVER_CONTAINER_CLASSNAME,\n POPOVER_CONTENT_CLASSNAME,\n POPOVER_FOOTER_CLASSNAME,\n POPOVER_HEADER_CLASSNAME,\n POPOVER_HEADER_TITLE_CLASSNAME,\n TOOLTIP_CONTENT_CLASSNAME,\n} from './constants';\nimport PopoverDismissButton from './PopoverDismissButton/PopoverDismissButton';\nimport PopoverTitle from './PopoverTitle/PopoverTitle';\nimport { PopoverContainerSize, PopoverContainerVariant, PopoverProps } from './types';\nimport { InteractionKeyCode } from '../../types';\nimport { ClickOutsideVariant, useClickOutside } from '../../../hooks/element/useClickOutside';\nimport useFocusTrap from '../../../hooks/element/useFocusTrap';\nimport usePopoverPositioner from '../../../hooks/element/usePopoverPositioner';\nimport useUniqueIdentifier from '../../../hooks/element/useUniqueIdentifier';\nimport useReflex from '../../../hooks/useReflex';\nimport { getModifierClasses } from '../../../utils/preact';\nimport { boolOrTrue, isFunction } from '../../../utils';\nimport { isFocusable, SELECTORS } from '../../../primitives/dom/tabbableRoot/tabbable';\nimport classNames from 'classnames';\nimport { createPortal, PropsWithChildren } from 'preact/compat';\nimport { Ref, useCallback, useEffect, useMemo, useRef } from 'preact/hooks';\nimport './Popover.scss';\n\nconst findFirstFocusableElement = (root: Element) => {\n let focusable: HTMLElement | undefined;\n const elements = root.querySelector(`.${TOOLTIP_CONTENT_CLASSNAME}`)?.querySelectorAll(SELECTORS);\n if (elements) {\n Array.prototype.some.call(elements, elem => {\n if (isFocusable(elem)) return (focusable = elem);\n });\n return focusable;\n }\n return null;\n};\n\nconst getGapByVariant = (variant: PopoverContainerVariant): [number, number, number, number] => {\n return variant === PopoverContainerVariant.TOOLTIP ? [10, 3, 5, 5] : [15, 15, 15, 15];\n};\n\nfunction Popover({\n actions,\n disableFocusTrap = false,\n actionsLayout = ButtonActionsLayoutBasic.SPACE_BETWEEN,\n variant = PopoverContainerVariant.TOOLTIP,\n title,\n open,\n dismissible,\n modifiers,\n divider,\n fitContent,\n withoutSpace,\n containerSize,\n position,\n targetElement,\n setToTargetWidth,\n dismiss,\n children,\n withContentPadding,\n classNameModifiers,\n showOverlay = false,\n fitPosition,\n ...uncontrolledProps\n}: PropsWithChildren<PopoverProps>) {\n const isDismissible = useMemo(() => isFunction(dismiss) && boolOrTrue(dismissible), [dismiss, dismissible]);\n const arrowRef = useUniqueIdentifier() as Ref<HTMLSpanElement> | undefined;\n const popoverOpen = useRef<boolean>();\n\n const onCloseFocusTrap = useCallback(\n (interactionKeyPressed: boolean) => {\n dismiss && dismiss();\n if (interactionKeyPressed) {\n (targetElement?.current as HTMLElement)?.focus();\n }\n },\n [dismiss, targetElement]\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.code === InteractionKeyCode.ESCAPE) {\n dismiss && dismiss();\n (targetElement?.current as HTMLElement).focus();\n }\n },\n [dismiss, targetElement]\n );\n\n const cachedOnKeyDown = useRef(onKeyDown);\n const autoFocusAnimFrame = useRef<ReturnType<typeof requestAnimationFrame>>();\n\n const popoverPositionAnchorElement = useClickOutside(\n usePopoverPositioner(getGapByVariant(variant), targetElement, variant, position, arrowRef, setToTargetWidth, showOverlay, fitPosition),\n dismiss,\n variant === PopoverContainerVariant.TOOLTIP && !open,\n ClickOutsideVariant.POPOVER\n );\n const popoverFocusTrapElement = useFocusTrap(disableFocusTrap ? null : popoverPositionAnchorElement, onCloseFocusTrap);\n\n const popoverElement = useReflex<Element>(\n useCallback(\n current => {\n if (current instanceof Element) {\n cancelAnimationFrame(autoFocusAnimFrame.current!);\n\n autoFocusAnimFrame.current = requestAnimationFrame(() => {\n if (popoverOpen.current === open) return;\n if (!(popoverOpen.current = open)) return;\n const focusable = findFirstFocusableElement(current) as HTMLElement;\n focusable?.focus();\n });\n }\n },\n [open]\n ),\n disableFocusTrap ? popoverPositionAnchorElement : popoverFocusTrapElement\n );\n\n const popoverElementWithId = useUniqueIdentifier(popoverElement);\n\n const conditionalClasses = useMemo(\n () => ({\n [`${DEFAULT_POPOVER_CLASSNAME}--medium`]: containerSize === PopoverContainerSize.MEDIUM,\n [`${DEFAULT_POPOVER_CLASSNAME}--with-divider`]: !!divider,\n [`${DEFAULT_POPOVER_CLASSNAME}--wide`]: containerSize === PopoverContainerSize.WIDE,\n [`${DEFAULT_POPOVER_CLASSNAME}--fit-content`]: fitContent,\n [`${DEFAULT_POPOVER_CLASSNAME}--without-space`]: withoutSpace,\n [`${DEFAULT_POPOVER_CLASSNAME}--auto-width`]: showOverlay,\n }),\n [containerSize, divider, withoutSpace, fitContent, showOverlay]\n );\n\n useEffect(() => {\n document.removeEventListener('keydown', cachedOnKeyDown.current);\n document.addEventListener('keydown', (cachedOnKeyDown.current = onKeyDown));\n return () => document.removeEventListener('keydown', cachedOnKeyDown.current);\n }, [onKeyDown]);\n\n const classNamesByVariant =\n variant === PopoverContainerVariant.TOOLTIP ? DEFAULT_TOOLTIP_CLASSNAME : `${DEFAULT_POPOVER_CLASSNAME} ${POPOVER_CONTAINER_CLASSNAME}`;\n const classNamesContentByVariant = variant === PopoverContainerVariant.TOOLTIP ? TOOLTIP_CONTENT_CLASSNAME : `${POPOVER_CONTENT_CLASSNAME}`;\n\n return createPortal(\n <>\n {open ? (\n <>\n {showOverlay && <div className=\"adyen-pe-popover__overlay\"></div>}\n <div\n id=\"popover\"\n ref={popoverElementWithId}\n {...uncontrolledProps}\n className={classNames(classNamesByVariant, conditionalClasses, classNameModifiers)}\n style={{ visibility: 'hidden' }}\n role={uncontrolledProps.role ?? (variant === PopoverContainerVariant.POPOVER ? 'dialog' : 'tooltip')}\n >\n {(title || isDismissible) && (\n <div className={getModifierClasses(POPOVER_HEADER_CLASSNAME, modifiers, [POPOVER_HEADER_CLASSNAME])}>\n {title && (\n <div className={POPOVER_HEADER_TITLE_CLASSNAME}>\n <PopoverTitle title={title} />\n </div>\n )}\n {isDismissible && <PopoverDismissButton onClick={dismiss!} />}\n </div>\n )}\n {children && (\n <>\n <div\n className={classNames(classNamesContentByVariant, {\n [`${POPOVER_CONTENT_CLASSNAME}--with-padding`]: withContentPadding,\n [`${POPOVER_CONTENT_CLASSNAME}--overlay`]: showOverlay,\n })}\n >\n {children}\n </div>\n {variant === PopoverContainerVariant.TOOLTIP && (\n <span data-popover-placement=\"hidden\" ref={arrowRef} className=\"adyen-pe-tooltip__arrow\" />\n )}\n </>\n )}\n {actions && (\n <div className={POPOVER_FOOTER_CLASSNAME}>\n <ButtonActions actions={actions} layout={actionsLayout} />\n </div>\n )}\n </div>\n </>\n ) : null}\n </>,\n document.getElementsByTagName('body')[0]!\n );\n}\nexport default Popover;\n","import { useCallback, useState } from 'preact/hooks';\n\nconst useBooleanState = (initialState = false) => {\n const [ state, setState ] = useState(initialState);\n const updateState = useCallback((state: boolean) => setState(state), []);\n const toggleState = useCallback(() => setState(state => !state), []);\n return [ state, updateState, toggleState ] as const;\n};\n\nexport default useBooleanState;\n","import { useCallback } from 'preact/hooks';\nimport { InteractionKeyCode } from '../../types';\nimport useBooleanState from '../../../hooks/useBooleanState';\n\nexport interface TooltipListeners {\n onfocusoutCapture(): void;\n onMouseLeave(): void;\n onKeyDown(evt: Event): void;\n onFocus(): void;\n onMouseEnter(): void;\n}\nexport const useTooltipListeners = (): {\n isVisible: boolean;\n listeners: TooltipListeners;\n} => {\n const [isVisible, setIsVisible] = useBooleanState();\n const showTooltip = useCallback(() => setIsVisible(true), [setIsVisible]);\n const hideTooltip = useCallback(() => setIsVisible(false), [setIsVisible]);\n\n const onKeyDown = useCallback(\n (evt: KeyboardEvent) => {\n switch (evt.code) {\n case InteractionKeyCode.ESCAPE:\n hideTooltip();\n break;\n default:\n break;\n }\n },\n [hideTooltip]\n );\n\n return {\n listeners: {\n onfocusoutCapture: hideTooltip,\n onMouseLeave: hideTooltip,\n onKeyDown,\n onFocus: showTooltip,\n onMouseEnter: showTooltip,\n },\n isVisible,\n };\n};\n","import { mediaQueries, useResponsiveViewport } from '../../external/TransactionsOverview/hooks/useResponsiveViewport';\nimport Popover from '../Popover/Popover';\nimport { PopoverContainerVariant } from '../Popover/types';\nimport { useTooltipListeners } from './useTooltipListeners';\nimport { TypographyVariant } from '../Typography/types';\nimport Typography from '../Typography/Typography';\nimport useUniqueIdentifier from '../../../hooks/element/useUniqueIdentifier';\nimport classNames from 'classnames';\nimport { cloneElement, VNode } from 'preact';\nimport { PropsWithChildren } from 'preact/compat';\nimport { MutableRef } from 'preact/hooks';\nimport { TooltipProps } from './types';\nimport './Tooltip.scss';\n\nconst isString = (content: string | VNode<any>) => {\n return typeof content === 'string';\n};\n\nexport const Tooltip = ({ content, children, triggerRef, showTooltip, position, isContainerHovered = false }: PropsWithChildren<TooltipProps>) => {\n const controllerRef = useUniqueIdentifier();\n const isMdViewport = useResponsiveViewport(mediaQueries.down.sm);\n const { isVisible, listeners } = useTooltipListeners();\n\n if (isMdViewport) return <>{children}</>;\n\n return (\n <>\n {children\n ? cloneElement(children, {\n ...children?.props,\n role: 'button',\n tabIndex: -1,\n ref: controllerRef,\n className: children?.props?.className\n ? classNames(`${children?.props?.className} adyen-pe__tooltip-target`, {\n ' adyen-pe__tooltip-target--hovered': isContainerHovered,\n })\n : classNames('adyen-pe__tooltip-target', { 'adyen-pe__tooltip-target--hovered': isContainerHovered }),\n ...listeners,\n 'aria-describedby': `tooltip-${controllerRef.current?.id}`,\n })\n : null}\n\n {(isVisible || showTooltip) && (\n <Popover\n variant={PopoverContainerVariant.TOOLTIP}\n targetElement={(triggerRef ?? controllerRef) as MutableRef<Element | null>}\n position={position}\n open={isVisible || showTooltip}\n >\n <>{content && isString(content) ? <Typography variant={TypographyVariant.CAPTION}>{content}</Typography> : { content }}</>\n </Popover>\n )}\n </>\n );\n};\n","import { SVGProps } from 'preact/compat';\n\nconst Copy = ({ ...props }: Omit<SVGProps<SVGElement>, 'ref'>) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M3.5 1.25C2.25736 1.25 1.25 2.25736 1.25 3.5V8.5C1.25 9.74264 2.25736 10.75 3.5 10.75H5.25V12.5C5.25 13.7426 6.25736 14.75 7.5 14.75H12.5C13.7426 14.75 14.75 13.7426 14.75 12.5V7.5C14.75 6.25736 13.7426 5.25 12.5 5.25H10.75V3.5C10.75 2.25736 9.74264 1.25 8.5 1.25H3.5ZM9.25 5.25H7.5C6.25736 5.25 5.25 6.25736 5.25 7.5V9.25H3.5C3.08579 9.25 2.75 8.91421 2.75 8.5V3.5C2.75 3.08579 3.08579 2.75 3.5 2.75H8.5C8.91421 2.75 9.25 3.08579 9.25 3.5V5.25ZM6.75 12.5V7.5C6.75 7.08579 7.08579 6.75 7.5 6.75H12.5C12.9142 6.75 13.25 7.08579 13.25 7.5V12.5C13.25 12.9142 12.9142 13.25 12.5 13.25H7.5C7.08579 13.25 6.75 12.9142 6.75 12.5Z\" />\n </svg>\n);\n\nexport default Copy;\n","import Button from '../Button';\nimport { ButtonVariant } from '../Button/types';\nimport { useCallback, useState } from 'preact/hooks';\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport Copy from '../SVGIcons/Copy';\nimport './CopyText.scss';\n\nconst CopyText = ({ text }: { text: string }) => {\n const [tooltipLabel, setTooltipLabel] = useState(text);\n\n const onClick = useCallback(async () => {\n if (text) {\n try {\n await navigator.clipboard.writeText(text);\n setTooltipLabel('Copied');\n } catch (e) {\n console.log(e);\n }\n }\n }, [text]);\n\n const resetTooltipLabel = useCallback(() => {\n setTooltipLabel(text);\n }, [setTooltipLabel, text]);\n\n return (\n <Tooltip content={tooltipLabel}>\n <Button\n variant={ButtonVariant.TERTIARY}\n className={'adyen-pe-copy-text'}\n onClick={onClick}\n onBlur={resetTooltipLabel}\n onMouseLeaveCapture={resetTooltipLabel}\n >\n <span className={'adyen-pe-copy-text__information'}>{text}</span>\n <Copy fill={'#0070f5'} />\n </Button>\n </Tooltip>\n );\n};\n\nexport default CopyText;\n","import { ErrorMessage, getCommonErrorMessage, UNDEFINED_ERROR } from './getCommonErrorCode';\nimport AdyenPlatformExperienceError from '../../core/Errors/AdyenPlatformExperienceError';\nimport CopyText from '../internal/CopyText/CopyText';\nimport { TranslationKey } from '../../core/Localization/types';\n\nexport const getErrorMessage = (\n error: AdyenPlatformExperienceError | undefined,\n errorMessage: TranslationKey,\n onContactSupport?: () => void\n): ErrorMessage => {\n if (!error) return UNDEFINED_ERROR;\n const commonError = getCommonErrorMessage(error, onContactSupport);\n if (commonError) return commonError;\n switch (error.errorCode) {\n case undefined:\n return {\n title: 'somethingWentWrong',\n message: [errorMessage, 'tryRefreshingThePageOrComeBackLater'],\n refreshComponent: true,\n };\n case '00_500': {\n const secondaryErrorMessage = onContactSupport ? 'theErrorCodeIs' : 'contactSupportForHelpAndShareErrorCode';\n return {\n title: 'somethingWentWrong',\n message: [errorMessage, secondaryErrorMessage],\n translationValues: {\n [secondaryErrorMessage]: error.requestId ? <CopyText text={error.requestId} /> : null,\n },\n onContactSupport,\n };\n }\n default:\n return UNDEFINED_ERROR;\n }\n};\n","import { WITH_ERROR_CLASS } from './constants';\nimport { ErrorMessageDisplay } from '../ErrorMessageDisplay/ErrorMessageDisplay';\nimport { useAuthContext } from '../../../core/Auth';\nimport { TranslationKey } from '../../../core/Localization/types';\nimport cx from 'classnames';\nimport { PropsWithChildren } from 'preact/compat';\nimport { getErrorMessage } from '../../utils/getErrorMessage';\nimport AdyenPlatformExperienceError from '../../../core/Errors/AdyenPlatformExperienceError';\n\ntype DataOverviewContainerProps = PropsWithChildren<{\n balanceAccountsError?: Error;\n className: string;\n errorMessage: TranslationKey;\n isBalanceAccountIdWrong: boolean;\n onContactSupport?: () => void;\n}>;\n\nfunction DataOverviewContainer({\n balanceAccountsError,\n children,\n className,\n errorMessage,\n isBalanceAccountIdWrong,\n onContactSupport,\n}: DataOverviewContainerProps) {\n const { hasError } = useAuthContext();\n\n // TODO: Verify if WITH_ERROR_CLASS should appended only for session setup error\n return (\n <div className={cx(className, { [WITH_ERROR_CLASS]: hasError })}>\n {hasError ? (\n <ErrorMessageDisplay\n withImage\n centered\n title={'somethingWentWrong'}\n message={[errorMessage, 'tryRefreshingThePageOrComeBackLater']}\n refreshComponent={true}\n />\n ) : balanceAccountsError ? (\n <ErrorMessageDisplay\n withImage\n centered\n {...getErrorMessage(balanceAccountsError as AdyenPlatformExperienceError, 'weCouldNotLoadYourBalanceAccounts', onContactSupport)}\n />\n ) : isBalanceAccountIdWrong ? (\n <ErrorMessageDisplay\n withImage\n centered\n title={'somethingWentWrong'}\n message={[errorMessage, 'theSelectedBalanceAccountIsIncorrect']}\n />\n ) : (\n <>{children}</>\n )}\n </div>\n );\n}\n\nexport default DataOverviewContainer;\n","import { SVGProps } from 'preact/compat';\n\nconst Close = ({ ...props }: Omit<SVGProps<SVGElement>, 'ref'>) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.6569 4.07112C14.0474 3.6806 14.0474 3.04743 13.6569 2.65691C13.2664 2.26638 12.6332 2.26638 12.2427 2.65691L8.00005 6.89954L3.75745 2.65694C3.36692 2.26641 2.73376 2.26641 2.34324 2.65694C1.95271 3.04746 1.95271 3.68063 2.34324 4.07115L6.58584 8.31375L2.34319 12.5564C1.95266 12.9469 1.95266 13.5801 2.34319 13.9706C2.73371 14.3611 3.36688 14.3611 3.7574 13.9706L8.00005 9.72796L12.2427 13.9706C12.6333 14.3612 13.2664 14.3612 13.6569 13.9706C14.0475 13.5801 14.0475 12.947 13.6569 12.5564L9.41426 8.31375L13.6569 4.07112Z\"\n />\n </svg>\n);\n\nexport default Close;\n","import Button from '../Button';\nimport { ButtonVariant } from '../Button/types';\nimport Close from '../SVGIcons/Close';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport { useCallback, useEffect, useRef } from 'preact/hooks';\nimport cx from 'classnames';\nimport { TargetedEvent } from 'preact/compat';\nimport './Modal.scss';\nimport { ModalProps } from './types';\n\nfunction targetIsNode(e: EventTarget | null): e is Node {\n if (!e || !('nodeType' in e)) {\n return false;\n }\n return true;\n}\nexport default function Modal({\n title,\n children,\n classNameModifiers = [],\n isOpen,\n onClose,\n isDismissible = true,\n headerWithBorder = true,\n size = 'fluid',\n ...props\n}: ModalProps) {\n const modalContainerRef = useRef<HTMLDivElement>(null);\n const { i18n } = useCoreContext();\n const handleClickOutside = useCallback(\n (e: TargetedEvent<Node, MouseEvent>) => {\n if (isDismissible && isOpen && targetIsNode(e.target) && !modalContainerRef?.current?.contains(e.target)) {\n onClose();\n }\n },\n [isDismissible, isOpen, onClose]\n );\n\n const handleEscKey = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape' && isOpen && isDismissible) {\n onClose();\n }\n },\n [isOpen, isDismissible, onClose]\n );\n\n useEffect(() => {\n if (isOpen) {\n window.addEventListener('keydown', handleEscKey);\n } else {\n window.removeEventListener('keydown', handleEscKey);\n }\n return () => window.removeEventListener('keydown', handleEscKey);\n }, [isOpen, handleEscKey]);\n\n return (\n <>\n {isOpen && (\n <div\n className={cx(\n 'adyen-pe-modal-wrapper',\n classNameModifiers.map(m => `adyen-pe-modal-wrapper--${m}`),\n { 'adyen-pe-modal-wrapper--open': isOpen, 'adyen-pe-modal-wrapper--dismissible': isDismissible }\n )}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={!open}\n onClick={handleClickOutside}\n {...props}\n >\n <div\n className={cx('adyen-pe-modal', {\n 'adyen-pe-modal--fluid': size === 'fluid',\n 'adyen-pe-modal--small': size === 'small',\n 'adyen-pe-modal--large': size === 'large',\n 'adyen-pe-modal--extra-large': size === 'extra-large',\n 'adyen-pe-modal--full-screen': size === 'full-screen',\n })}\n ref={modalContainerRef}\n >\n <div\n className={cx('adyen-pe-modal__header', {\n 'adyen-pe-modal__header--with-title': title,\n 'adyen-pe-modal__header--with-border-bottom': headerWithBorder,\n })}\n >\n {title && <div className={`adyen-pe-modal__header__title`}>{title}</div>}\n\n {isDismissible && (\n <Button\n onClick={onClose}\n variant={ButtonVariant.TERTIARY}\n iconButton\n classNameModifiers={['circle']}\n className={`adyen-pe-modal__header-icon`}\n aria-label={i18n.get('dismiss')}\n >\n <Close />\n </Button>\n )}\n </div>\n <div className={'adyen-pe-modal__content'}>{children}</div>\n </div>\n </div>\n )}\n </>\n );\n}\n","export const CARD_BASE_CLASS = 'adyen-pe-card';\nexport const CARD_BODY = `${CARD_BASE_CLASS}__body`;\nexport const CARD_HEADER = `${CARD_BASE_CLASS}__header`;\nexport const CARD_TITLE = `${CARD_BASE_CLASS}__title`;\nexport const CARD_SUBTITLE = `${CARD_BASE_CLASS}__subtitle`;\nexport const CARD_HEADER_CONTENT = `${CARD_HEADER}-content`;\nexport const CARD_BODY_WITH_TITLE = `${CARD_BODY}--with-title`;\nexport const CARD_NO_OUTLINE = `${CARD_BASE_CLASS}--no-outline`;\nexport const CARD_FILLED = `${CARD_BASE_CLASS}--filled`;\nexport const CARD_FOOTER = `${CARD_BASE_CLASS}__footer`;\n","import {\n CARD_BASE_CLASS,\n CARD_BODY,\n CARD_BODY_WITH_TITLE,\n CARD_FILLED,\n CARD_FOOTER,\n CARD_HEADER,\n CARD_HEADER_CONTENT,\n CARD_NO_OUTLINE,\n CARD_SUBTITLE,\n CARD_TITLE,\n} from './constants';\nimport { CardProps } from './types';\nimport { PropsWithChildren } from 'preact/compat';\nimport classNames from 'classnames';\nimport './Card.scss';\n\nconst Card = ({\n title,\n subTitle,\n children,\n footer,\n el,\n renderHeader,\n renderFooter,\n filled,\n noOutline,\n classNameModifiers,\n}: PropsWithChildren<CardProps>) => {\n const Tag = el || 'header';\n return (\n <section className={classNames(CARD_BASE_CLASS, { [CARD_FILLED]: filled, [CARD_NO_OUTLINE]: noOutline }, classNameModifiers)}>\n {(title || renderHeader) && (\n <Tag className={CARD_HEADER}>\n {(title || renderHeader) && (\n <div className={CARD_HEADER_CONTENT}>\n {renderHeader ? renderHeader : <span className={CARD_TITLE}>{title}</span>}\n {subTitle && <div className={CARD_SUBTITLE}>{subTitle}</div>}\n </div>\n )}\n </Tag>\n )}\n <div\n className={classNames(CARD_BODY, {\n [CARD_BODY_WITH_TITLE]: title || renderHeader,\n })}\n >\n {children}\n </div>\n {(footer || renderFooter) && <footer className={CARD_FOOTER}>{renderFooter ? renderFooter : footer}</footer>}\n </section>\n );\n};\n\nexport default Card;\n","export const DATE_FORMAT: Intl.DateTimeFormatOptions = {\n weekday: 'long',\n month: 'long',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n timeZoneName: 'shortOffset',\n};\n","export const SL_BASE_CLASS = 'adyen-pe-structured-list';\nexport const SL_ITEM_CLASS = `${SL_BASE_CLASS}__item`;\nexport const SL_GRID_CLASS = `${SL_BASE_CLASS}__grid`;\nexport const SL_CONTENT_CLASS = `${SL_BASE_CLASS}__content`;\nexport const SL_LABEL_CLASS = `${SL_BASE_CLASS}__label`;\nexport const SL_ITEM_WITH_HIGHLIGHT_CLASS = `${SL_ITEM_CLASS}--has-highlight`;\n","import { useMemo } from 'preact/hooks';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport { TranslationKey } from '../../../core/Localization/types';\nimport { uuid } from '../../../utils';\nimport { StructuredListItem, ListValue } from './types';\n\nexport const useStructuredListItems = (items: { [key in TranslationKey]?: ListValue | undefined }) => {\n const { i18n } = useCoreContext();\n return useMemo(() => {\n return (Object.keys(items) as (keyof typeof items)[]).reduce((list: StructuredListItem[], key) => {\n const value = items[key];\n value &&\n list.push({\n key,\n value,\n id: uuid(),\n label: i18n.get(key),\n });\n return list;\n }, []);\n }, [i18n, items]);\n};\n","import classNames from 'classnames';\nimport { useMemo } from 'preact/hooks';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport { TranslationKey } from '../../../core/Localization/types';\nimport { TypographyVariant } from '../Typography/types';\nimport Typography from '../Typography/Typography';\nimport { SL_BASE_CLASS, SL_CONTENT_CLASS, SL_GRID_CLASS, SL_ITEM_CLASS, SL_ITEM_WITH_HIGHLIGHT_CLASS, SL_LABEL_CLASS } from './constants';\nimport { StructuredListProps } from './types';\nimport './StructuredList.scss';\nimport { useStructuredListItems } from './useStructuredListItem';\n\nexport const StructuredListLayouts = ['3-9', '6-6', '4-8', '8-4', '5-7', '7-5'] as const satisfies ReadonlyArray<`${number}-${number}`>;\n\nconst DEFAULT_LAYOUT = '6-6';\nexport default function StructuredList({\n items,\n highlightable,\n renderValue,\n renderLabel,\n layout = DEFAULT_LAYOUT,\n grid = true,\n}: StructuredListProps) {\n const [LABEL_COL_CLASS, VALUE_COL_CLASS] = useMemo(() => {\n return layout.split('-').map(w => `${SL_GRID_CLASS}--width-${w}-of-12`);\n }, [layout]);\n const formattedItems = useStructuredListItems(items);\n const { i18n } = useCoreContext();\n\n return (\n <div aria-label={i18n.get('structuredList')} className={SL_BASE_CLASS}>\n {formattedItems.map(item => (\n <dl\n key={item.id}\n className={classNames(SL_ITEM_CLASS, {\n [SL_ITEM_WITH_HIGHLIGHT_CLASS]: highlightable,\n [SL_GRID_CLASS]: grid,\n })}\n >\n <dt className={classNames(SL_LABEL_CLASS, LABEL_COL_CLASS)}>\n {renderLabel ? renderLabel(item.label) : <Typography variant={TypographyVariant.BODY}>{item.label}</Typography>}\n </dt>\n <dd\n aria-label={`${i18n.get(item.key as TranslationKey)} ${i18n.get('value')}`}\n className={classNames(SL_CONTENT_CLASS, VALUE_COL_CLASS)}\n >\n {renderValue ? renderValue(item.value) : <Typography variant={TypographyVariant.BODY}>{item.value}</Typography>}\n </dd>\n </dl>\n ))}\n </div>\n );\n}\n","import cx from 'classnames';\nimport { useMemo } from 'preact/hooks';\n\nconst TransactionDataSkeleton = ({ isLoading, skeletonRowNumber = 0 }: { isLoading?: boolean; skeletonRowNumber?: number }) => {\n const skeletonRows = useMemo(() => Array.from({ length: skeletonRowNumber }, (_, index) => index), [skeletonRowNumber]);\n\n return (\n <>\n {skeletonRows.map(key => (\n <span\n className={cx({\n 'adyen-pe-transaction-data__skeleton': true,\n 'adyen-pe-transaction-data__skeleton-loading-content': isLoading,\n })}\n key={`transaction-data-skeleton-${key}`}\n />\n ))}\n </>\n );\n};\n\nexport default TransactionDataSkeleton;\n","export const PD_BASE_CLASS = 'adyen-pe-payout-data';\nexport const PD_TITLE_CLASS = `${PD_BASE_CLASS}__title`;\nexport const PD_CONTENT_CLASS = `${PD_BASE_CLASS}__content`;\nexport const PD_SECTION_CLASS = `${PD_CONTENT_CLASS}--section`;\nexport const PD_CARD_CLASS = `${PD_CONTENT_CLASS}--card`;\nexport const PD_CARD_TITLE_CLASS = `${PD_CARD_CLASS}-title`;\nexport const PD_SECTION_AMOUNT_CLASS = `${PD_SECTION_CLASS}-amount`;\nexport const PD_SECTION_GROSS_AMOUNT_CLASS = `${PD_SECTION_AMOUNT_CLASS}-gross`;\nexport const PD_SECTION_NET_AMOUNT_CLASS = `${PD_SECTION_AMOUNT_CLASS}-net`;\nexport const PD_UNPAID_AMOUNT = `${PD_BASE_CLASS}--unpaid-amount`;\n","import classnames from 'classnames';\nimport { useMemo } from 'preact/hooks';\nimport useCoreContext from '../../../../core/Context/useCoreContext';\nimport { TranslationKey } from '../../../../core/Localization/types';\nimport { IPayoutDetails } from '../../../../types';\nimport { components } from '../../../../types/api/resources/PayoutsResource';\nimport { EMPTY_OBJECT } from '../../../../utils';\nimport Card from '../../../internal/Card/Card';\nimport { DATE_FORMAT } from '../../../internal/DataOverviewDisplay/constants';\nimport StructuredList from '../../../internal/StructuredList';\nimport { ListValue } from '../../../internal/StructuredList/types';\nimport { TypographyVariant } from '../../../internal/Typography/types';\nimport Typography from '../../../internal/Typography/Typography';\nimport TransactionDataSkeleton from '../../TransactionDetails/components/TransactionDataSkeleton';\nimport './PayoutData.scss';\nimport {\n PD_BASE_CLASS,\n PD_CARD_CLASS,\n PD_CARD_TITLE_CLASS,\n PD_CONTENT_CLASS,\n PD_SECTION_AMOUNT_CLASS,\n PD_SECTION_CLASS,\n PD_SECTION_GROSS_AMOUNT_CLASS,\n PD_SECTION_NET_AMOUNT_CLASS,\n PD_TITLE_CLASS,\n PD_UNPAID_AMOUNT,\n} from './constants';\n\ntype Payout = components['schemas']['PayoutDTO'];\n\nexport const PayoutData = ({\n balanceAccountId,\n payout: payoutData,\n isFetching,\n}: {\n payout?: IPayoutDetails;\n isFetching?: boolean;\n balanceAccountId: string;\n}) => {\n const { payout }: { payout: Payout } = payoutData ?? EMPTY_OBJECT;\n const { i18n } = useCoreContext();\n const adjustments = useMemo(() => {\n return payoutData?.amountBreakdowns?.adjustmentBreakdown?.reduce(\n (accumulator, currentValue) => {\n const payoutValue =\n currentValue?.amount?.value && currentValue?.amount?.currency\n ? i18n.amount(currentValue?.amount?.value, currentValue?.amount?.currency)\n : (currentValue?.amount?.value ?? '').toString();\n const translationKey = `${currentValue?.category}` as TranslationKey;\n const categoryTranslation = i18n.get(translationKey);\n const categoryLabel = currentValue?.category && categoryTranslation !== translationKey ? categoryTranslation : currentValue?.category;\n\n if (currentValue?.category && payoutValue && categoryLabel) {\n const targetObj = accumulator[currentValue?.amount?.value && currentValue?.amount?.value < 0 ? 'subtractions' : 'additions'];\n targetObj[categoryLabel] = payoutValue;\n }\n\n return accumulator;\n },\n { subtractions: {} as Record<string, string>, additions: {} as Record<string, string> }\n );\n }, [i18n, payoutData]);\n\n const fundsCaptured = useMemo(() => {\n return payoutData?.amountBreakdowns?.fundsCapturedBreakdown?.reduce((items, breakdown) => {\n if (breakdown?.amount?.value === 0) return items;\n if (breakdown?.amount?.value) {\n items[breakdown.category as TranslationKey] = i18n.amount(breakdown?.amount?.value, breakdown?.amount?.currency);\n }\n return items;\n }, {} as { [key in TranslationKey]?: ListValue | undefined });\n }, [payoutData, i18n]);\n\n const creationDate = useMemo(() => (payout?.createdAt ? i18n.date(new Date(payout?.createdAt), DATE_FORMAT).toString() : ''), [payout, i18n]);\n\n return (\n <>\n {!payout ? (\n <TransactionDataSkeleton isLoading={isFetching} skeletonRowNumber={6} />\n ) : (\n <div className={PD_BASE_CLASS}>\n <div className={PD_TITLE_CLASS}>\n <Typography variant={TypographyVariant.SUBTITLE} stronger>\n {i18n.get('netPayout')}\n </Typography>\n <Typography variant={TypographyVariant.TITLE} large>\n {i18n.amount(payout.payoutAmount.value, payout.payoutAmount.currency)}\n </Typography>\n <Typography variant={TypographyVariant.BODY}>{creationDate}</Typography>\n <Typography variant={TypographyVariant.BODY} stronger>\n {`${i18n.get('balanceAccountId')}: ${balanceAccountId}`}\n </Typography>\n </div>\n <div className={PD_CONTENT_CLASS}>\n <div className={PD_SECTION_CLASS}>\n <div className={classnames(PD_SECTION_AMOUNT_CLASS, PD_SECTION_GROSS_AMOUNT_CLASS)}>\n <Typography variant={TypographyVariant.BODY}>{i18n.get('fundsCaptured')}</Typography>\n <Typography variant={TypographyVariant.BODY}>\n {i18n.amount(payout.fundsCapturedAmount.value, payout.fundsCapturedAmount.currency)}\n </Typography>\n </div>\n <div className={PD_SECTION_CLASS}>\n {fundsCaptured && Boolean(Object.keys(fundsCaptured).length) && (\n <div className={PD_CARD_CLASS}>\n <Card>\n <StructuredList items={fundsCaptured} />\n </Card>\n </div>\n )}\n </div>\n </div>\n <div className={PD_SECTION_CLASS}>\n <div className={classnames(PD_SECTION_AMOUNT_CLASS, PD_SECTION_GROSS_AMOUNT_CLASS)}>\n <Typography variant={TypographyVariant.BODY}>{i18n.get('adjustments')}</Typography>\n <Typography variant={TypographyVariant.BODY}>\n {i18n.amount(payout.adjustmentAmount.value, payout.adjustmentAmount.currency)}\n </Typography>\n </div>\n </div>\n <div className={PD_SECTION_CLASS}>\n {adjustments?.subtractions && Boolean(Object.keys(adjustments?.subtractions).length) && (\n <div className={PD_CARD_CLASS}>\n <Card\n renderHeader={\n <Typography className={PD_CARD_TITLE_CLASS} variant={TypographyVariant.CAPTION} stronger>\n {i18n.get('subtractions')}\n </Typography>\n }\n >\n <StructuredList items={adjustments?.subtractions} />\n </Card>\n </div>\n )}\n {adjustments?.additions && Boolean(Object.keys(adjustments?.additions).length) && (\n <div className={PD_CARD_CLASS}>\n <Card\n renderHeader={\n <Typography className={PD_CARD_TITLE_CLASS} variant={TypographyVariant.CAPTION} stronger>\n {i18n.get('additions')}\n </Typography>\n }\n >\n <StructuredList items={adjustments?.additions} />\n </Card>\n </div>\n )}\n </div>\n <div className={classnames(PD_SECTION_CLASS)}>\n <div className={classnames(PD_SECTION_AMOUNT_CLASS, PD_SECTION_NET_AMOUNT_CLASS)}>\n <Typography variant={TypographyVariant.BODY} stronger>\n {i18n.get('netPayout')}\n </Typography>\n <Typography variant={TypographyVariant.BODY} stronger>\n {i18n.amount(payout.payoutAmount.value, payout.payoutAmount.currency)}\n </Typography>\n </div>\n </div>\n </div>\n {payoutData?.payout?.unpaidAmount && (\n <div className={PD_UNPAID_AMOUNT}>\n <Typography variant={TypographyVariant.BODY}>{i18n.get('remainingAmount')}</Typography>\n <Typography variant={TypographyVariant.BODY}>\n {i18n.amount(payoutData.payout.unpaidAmount.value, payoutData.payout.unpaidAmount.currency)}\n </Typography>\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n","import useCoreContext from '../../core/Context/useCoreContext';\nimport { EMPTY_OBJECT } from '../../utils';\nimport { useMemo } from 'preact/hooks';\n\n// TODO - Remove once we define a strategy to handle images\nconst FALLBACK_CDN_CONTEXT = 'https://cdf6519016.cdn.adyen.com/checkoutshopper/';\n\nexport interface ImageOptions {\n extension?: string;\n imageFolder?: string;\n resourceContext?: string;\n name: string;\n parentFolder?: string;\n size?: string;\n subFolder?: string;\n}\n\nconst returnImage = ({\n name,\n resourceContext,\n imageFolder = 'logos/',\n parentFolder = '',\n extension = 'svg',\n size = '',\n subFolder = '',\n}: ImageOptions) => {\n const path = `/images/${imageFolder}/${subFolder}/${parentFolder}/${name}${size}.${extension}`.replace(/\\/+/g, '/');\n return `${resourceContext}${path}`;\n};\n\nexport const useImageUrl = ({ options = EMPTY_OBJECT, name }: { options: Partial<ImageOptions>; name: string }) => {\n const { loadingContext } = useCoreContext();\n\n // TODO - Get rid of FALLBACK_CDN_CONTEXT once we define our assets URL\n const image = useMemo(\n () =>\n returnImage({\n resourceContext: FALLBACK_CDN_CONTEXT || loadingContext,\n name,\n ...options,\n }),\n [loadingContext, name, options]\n );\n\n return image;\n};\n","import cx from 'classnames';\nimport { useImageUrl } from '../../../hooks/useImageUrl/useImageUrl';\nimport { useMemo } from 'preact/hooks';\n\ninterface ImageProps {\n name: string;\n alt: string;\n extension?: string;\n className?: string;\n folder?: string;\n}\n\nexport const Image = ({ folder = 'components/', className, alt, name, extension }: ImageProps) => {\n const imageUrl = useImageUrl({\n options: useMemo(() => ({ imageFolder: folder, extension }), [extension, folder]),\n name,\n });\n\n return <img className={cx('adyen-pe__image', className)} alt={alt} src={imageUrl} />;\n};\n","import { ITransaction } from '../../../../types';\n\nconst PAYMENT_METHODS = Object.freeze({\n klarna: 'Klarna',\n paypal: 'PayPal',\n});\n\nexport function parsePaymentMethodType(paymentMethod: NonNullable<ITransaction['paymentMethod']>, format?: 'detail' | 'fourDigit') {\n if (paymentMethod.lastFourDigits) return format === 'detail' ? '•••• •••• •••• ' + paymentMethod.lastFourDigits : paymentMethod.lastFourDigits;\n\n return PAYMENT_METHODS[paymentMethod.type as keyof typeof PAYMENT_METHODS] || paymentMethod.type;\n}\n","export enum TagVariant {\n DEFAULT = 'default',\n WARNING = 'warning',\n ERROR = 'error',\n SUCCESS = 'success',\n WHITE = 'white',\n}\n\nexport interface TagProps {\n variant?: TagVariant;\n label: string;\n}\n","import cx from 'classnames';\nimport { TagProps, TagVariant } from './types';\nimport './Tag.scss';\nimport { memo } from 'preact/compat';\nexport const Tag = memo(({ variant = TagVariant.DEFAULT, label }: TagProps) => {\n return (\n <div\n className={cx('adyen-pe-tag', {\n 'adyen-pe-tag--success': variant === TagVariant.SUCCESS,\n 'adyen-pe-tag--default': variant === TagVariant.DEFAULT,\n 'adyen-pe-tag--warning': variant === TagVariant.WARNING,\n 'adyen-pe-tag--error': variant === TagVariant.ERROR,\n 'adyen-pe-tag--primary': variant === TagVariant.WHITE,\n })}\n >\n {label}\n </div>\n );\n});\n","import { DATE_FORMAT } from '../../../internal/DataOverviewDisplay/constants';\nimport { TransactionDetailData } from '../types';\nimport TransactionDataSkeleton from './TransactionDataSkeleton';\nimport { Image } from '../../../internal/Image/Image';\nimport { parsePaymentMethodType } from '../../TransactionsOverview/components/utils';\nimport { Tag } from '../../../internal/Tag/Tag';\nimport { TagVariant } from '../../../internal/Tag/types';\nimport useCoreContext from '../../../../core/Context/useCoreContext';\nimport { useMemo } from 'preact/hooks';\nimport './TransactionData.scss';\n\nexport const TransactionData = ({ transaction, isFetching }: { transaction: TransactionDetailData; isFetching?: boolean }) => {\n const { i18n } = useCoreContext();\n const createdAt = useMemo(() => (transaction ? i18n.date(new Date(transaction.createdAt), DATE_FORMAT).toString() : ''), [transaction, i18n]);\n\n const amountStyle = transaction?.status === 'Booked' ? 'default' : transaction?.status === 'Reversed' ? 'error' : 'pending';\n\n return (\n <>\n {!transaction ? (\n <TransactionDataSkeleton isLoading={isFetching} skeletonRowNumber={6} />\n ) : (\n <div className={'adyen-pe-transaction-data'}>\n <div className={'adyen-pe-transaction-data__container'}>\n {(transaction?.status || transaction?.category) && (\n <div className={'adyen-pe-transaction-data__section adyen-pe-transaction-data__tag-container'}>\n {transaction?.status && (\n <Tag\n label={i18n.get(transaction.status)}\n variant={\n transaction.status === 'Booked'\n ? TagVariant.SUCCESS\n : transaction.status === 'Reversed'\n ? TagVariant.ERROR\n : TagVariant.DEFAULT\n }\n />\n )}\n {transaction.category && <Tag label={i18n.get(`txType.${transaction.category}`)} variant={TagVariant.DEFAULT} />}\n </div>\n )}\n <div\n className={`adyen-pe-transaction-data__section adyen-pe-transaction-data__amount adyen-pe-transaction-data__amount--${amountStyle}`}\n >\n {transaction.amount\n ? i18n.amount(transaction.amount.value, transaction.amount.currency, {\n currencyDisplay: 'symbol',\n })\n : null}\n </div>\n {(transaction?.paymentMethod || transaction?.bankAccount) && (\n <div className=\"adyen-pe-transaction-data__section adyen-pe-transaction-data__payment-method\">\n <div className=\"adyen-pe-transaction-data__payment-method-logo-container\">\n <Image\n name={transaction.paymentMethod ? transaction.paymentMethod.type : 'bankTransfer'}\n alt={transaction.paymentMethod ? transaction.paymentMethod.type : 'bankTransfer'}\n folder={'logos/'}\n className={'adyen-pe-transaction-data__payment-method-logo'}\n />\n </div>\n\n <div className={'adyen-pe-transaction-data__payment-method-detail'}>\n {transaction?.paymentMethod\n ? parsePaymentMethodType(transaction?.paymentMethod, 'detail')\n : transaction?.bankAccount?.accountNumberLastFourDigits}\n </div>\n </div>\n )}\n <div className={'adyen-pe-transaction-data__section adyen-pe-transaction-data__label'}>{createdAt}</div>\n </div>\n\n {transaction?.balanceAccountDescription && (\n <div className={'adyen-pe-transaction-data__container'}>\n <div className={'adyen-pe-transaction-data__label'}>{i18n.get('account')}</div>\n <div>{transaction.balanceAccountDescription}</div>\n </div>\n )}\n <div className={'adyen-pe-transaction-data__container'}>\n <div className={'adyen-pe-transaction-data__label'}>{i18n.get('referenceID')}</div>\n <div aria-label={i18n.get('referenceID')}>{transaction.id}</div>\n </div>\n </div>\n )}\n </>\n );\n};\n","import './DataOverviewDetails.scss';\nimport { useMemo } from 'preact/hooks';\nimport { useAuthContext } from '../../../core/Auth';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport AdyenPlatformExperienceError from '../../../core/Errors/AdyenPlatformExperienceError';\nimport { useFetch } from '../../../hooks/useFetch/useFetch';\nimport { IPayoutDetails } from '../../../types';\nimport { EMPTY_OBJECT } from '../../../utils';\nimport { PayoutData } from '../../external/PayoutDetails/components/PayoutData';\nimport { TransactionData } from '../../external/TransactionDetails/components/TransactionData';\nimport { ExternalUIComponentProps } from '../../types';\nimport { getErrorMessage } from '../../utils/getErrorMessage';\nimport { ErrorMessageDisplay } from '../ErrorMessageDisplay/ErrorMessageDisplay';\nimport { DetailsComponentProps, DetailsWithId, TransactionDetailData } from './types';\nimport Typography from '../Typography/Typography';\nimport { TypographyVariant } from '../Typography/types';\n\nconst ENDPOINTS_BY_TYPE = {\n transaction: 'getTransaction',\n payout: 'getPayout',\n} as const;\n\nconst isDetailsWithId = (props: DetailsComponentProps): props is DetailsWithId => !('data' in props);\n\nexport default function DataOverviewDetails(props: ExternalUIComponentProps<DetailsComponentProps>) {\n const details = useMemo(() => (isDetailsWithId(props) ? null : props.data), [props]);\n const dataId = useMemo(() => (isDetailsWithId(props) ? props.id : null), [props]);\n\n const { i18n } = useCoreContext();\n const getDetail = useAuthContext().endpoints[ENDPOINTS_BY_TYPE[props.type]] as any; // [TODO]: Fix type and remove 'as any'\n\n const { data, error, isFetching } = useFetch(\n useMemo(\n () => ({\n fetchOptions: { enabled: !!dataId && !!getDetail },\n queryFn: async () => {\n const queryParam =\n props.type === 'transaction'\n ? {\n path: { transactionId: dataId },\n }\n : {\n query: { balanceAccountId: dataId, createdAt: props.date },\n };\n\n return getDetail!(EMPTY_OBJECT, { ...queryParam });\n },\n }),\n [dataId, getDetail, props]\n )\n );\n\n const errorProps = useMemo(() => {\n if (error) {\n return getErrorMessage(error as AdyenPlatformExperienceError, 'weCouldNotLoadYourTransactions', props.onContactSupport);\n }\n }, [error, props.onContactSupport]);\n\n const detailsData = details ?? data;\n\n return (\n <div className=\"adyen-pe-overview-details\">\n {props.title && (\n <div className=\"adyen-pe-overview-details--title\">\n <Typography variant={TypographyVariant.TITLE} medium>\n {i18n.get(props.title)}\n </Typography>\n </div>\n )}\n\n {error && errorProps && (\n <div className=\"adyen-pe-overview-details--error-container\">\n <ErrorMessageDisplay centered withImage {...errorProps} />\n </div>\n )}\n\n {props.type === 'transaction' && detailsData && (\n <TransactionData transaction={detailsData as TransactionDetailData} isFetching={isFetching} />\n )}\n {props.type === 'payout' && detailsData && (\n <PayoutData balanceAccountId={dataId!} payout={detailsData as IPayoutDetails} isFetching={isFetching} />\n )}\n </div>\n );\n}\n","import { useMemo } from 'preact/hooks';\nimport { hasOwnProperty } from '../../../../utils';\nimport { TransactionDetailData } from '../../../external';\nimport DataOverviewDetails from '../../DataOverviewDetails/DataOverviewDetails';\nimport { DetailsComponentProps, DetailsWithId, PayoutDetailsWithIdProps, SelectedDetail } from '../../DataOverviewDetails/types';\nimport './ModalContent.scss';\n\nconst CLASSNAMES = {\n base: 'adyen-pe-modal-content',\n};\n\nconst isDetailsWithoutId = (data: string | TransactionDetailData): data is TransactionDetailData => hasOwnProperty(data, 'id');\n\nfunction ModalContent({ type, data }: SelectedDetail) {\n const detailProps: DetailsComponentProps = useMemo(() => {\n if (type === 'payout') {\n return { ...(data as PayoutDetailsWithIdProps), type: 'payout' };\n } else {\n return isDetailsWithoutId(data as string | TransactionDetailData)\n ? { data: data as TransactionDetailData, type: type }\n : ({ id: data, type: type } as DetailsWithId);\n }\n }, [data, type]);\n\n return (\n <>\n {detailProps && (\n <div className={CLASSNAMES.base}>\n <DataOverviewDetails {...(detailProps as DetailsComponentProps)} />\n </div>\n )}\n </>\n );\n}\n\nexport default ModalContent;\n","import Modal from '../Modal';\nimport { useEffect } from 'preact/hooks';\nimport { FC, PropsWithChildren } from 'preact/compat';\nimport { popoverUtil } from '../Popover/utils/popoverUtil';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport useModalDetails from '../../../hooks/useModalDetails/useModalDetails';\nimport ModalContent from '../Modal/ModalContent/ModalContent';\n\nexport interface DataOverviewDisplayProps {\n onContactSupport?: () => void;\n balanceAccountDescription?: string;\n selectedDetail: ReturnType<typeof useModalDetails>['selectedDetail'];\n resetDetails: ReturnType<typeof useModalDetails>['resetDetails'];\n className: string;\n}\n\nexport const DataDetailsModal: FC<DataOverviewDisplayProps> = ({\n children,\n className,\n selectedDetail,\n resetDetails,\n}: PropsWithChildren<DataOverviewDisplayProps>) => {\n const { i18n } = useCoreContext();\n const isModalOpen = !!selectedDetail;\n\n useEffect(() => {\n if (isModalOpen) {\n popoverUtil.closeAll();\n }\n }, [isModalOpen]);\n\n return (\n <div className={className}>\n {children}\n {selectedDetail && (\n <Modal\n title={selectedDetail?.title ? i18n.get(selectedDetail.title) : undefined}\n isOpen={!!selectedDetail}\n aria-label={i18n.get('payoutDetails')}\n onClose={resetDetails}\n isDismissible={true}\n headerWithBorder={false}\n size={selectedDetail?.modalSize ?? 'large'}\n >\n {selectedDetail && <ModalContent {...selectedDetail?.selection} />}\n </Modal>\n )}\n </div>\n );\n};\n","import { CategoryProps } from './types';\nimport { Tooltip } from '../../../../internal/Tooltip/Tooltip';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\n\nfunction Category({ value, isContainerHovered }: CategoryProps) {\n const { i18n } = useCoreContext();\n\n const tooltipKey = `tooltip.${value}`;\n\n return (\n <>\n {i18n.has(tooltipKey) && (\n <Tooltip content={i18n.get(tooltipKey)} isContainerHovered={isContainerHovered}>\n <span>{value}</span>\n </Tooltip>\n )}\n </>\n );\n}\n\nexport default Category;\n","import { ErrorMessageDisplay } from '../ErrorMessageDisplay/ErrorMessageDisplay';\nimport { getErrorMessage } from '../../utils/getErrorMessage';\nimport AdyenPlatformExperienceError from '../../../core/Errors/AdyenPlatformExperienceError';\nimport { TranslationKey } from '../../../core/Localization/types';\n\nconst DataOverviewError = ({\n error,\n errorMessage,\n onContactSupport,\n}: {\n error: AdyenPlatformExperienceError | undefined;\n errorMessage: TranslationKey;\n onContactSupport?: () => void;\n}) => {\n const {\n title,\n message,\n refreshComponent,\n translationValues,\n onContactSupport: ContactSupport,\n } = getErrorMessage(error, errorMessage, onContactSupport);\n\n return (\n <ErrorMessageDisplay\n title={title}\n message={message}\n translationValues={translationValues}\n withImage\n centered\n refreshComponent={refreshComponent}\n onContactSupport={ContactSupport}\n />\n );\n};\n\nexport default DataOverviewError;\n","const labels = {\n id: 'paymentId',\n transactionType: 'transactionType',\n createdAt: 'date',\n balanceAccountId: 'balanceAccount',\n accountHolderId: 'account',\n amount: 'txAmount',\n description: 'description',\n status: 'status',\n category: 'category',\n paymentMethod: 'paymentMethod',\n currency: 'currency',\n fundsCapturedAmount: 'fundsCaptured',\n payoutAmount: 'netPayout',\n adjustmentAmount: 'adjustments',\n dateAndPaymentMethod: 'date',\n} as const;\n\nexport const getLabel = (key: keyof typeof labels) => {\n return labels[key] || key;\n};\n","import { createContext } from 'preact';\nimport { useContext } from 'preact/hooks';\nimport { DataGridContextProps } from '../types';\nimport { EMPTY_OBJECT } from '../../../../utils';\n\nexport const DataGridContext = createContext<DataGridContextProps>(EMPTY_OBJECT as any);\n\nexport const useDataGridContext = () => useContext(DataGridContext);\n","import { ComponentChildren, VNode } from 'preact';\nimport { CustomCell } from './DataGrid';\nimport { TranslationKey } from '../../../core/Localization/types';\n\nexport enum CellTextPosition {\n CENTER = 'center',\n RIGHT = 'right',\n}\n\nexport interface DataGridColumn<Item> {\n label: string;\n key: Item | string;\n position?: CellTextPosition;\n visible?: boolean;\n minWidth?: number;\n flex?: number;\n}\n\nexport interface DataGridProps<\n Item extends Array<any>,\n Columns extends Array<DataGridColumn<Extract<keyof Item[number], string>>>,\n ClickedField extends keyof Item[number],\n CustomCells extends CustomCell<Item, Columns, Columns[number]>\n> {\n children?: ComponentChildren;\n columns: Columns;\n condensed: boolean;\n data: Item | undefined;\n loading: boolean;\n outline: boolean;\n scrollable: boolean;\n Footer?: any;\n onRowClick?: {\n callback: (\n value: Item[number][ClickedField] extends NonNullable<Item[number][ClickedField]> ? Item[number][ClickedField] : Item[number]\n ) => void;\n retrievedField?: ClickedField;\n };\n onRowHover?: (index?: number) => void;\n customCells?: CustomCells;\n emptyTableMessage?: {\n title: TranslationKey;\n message?: TranslationKey | TranslationKey[];\n };\n error?: Error | undefined;\n errorDisplay?: () => VNode<any>;\n}\n\nexport interface InteractiveBodyProps<\n Items extends any[],\n Columns extends Array<DataGridColumn<Extract<keyof Items[number], string>>>,\n ClickedField extends keyof Items[number],\n CustomCells extends CustomCell<Items, Columns, Columns[number]>\n> {\n onRowClick?: DataGridProps<Items, Columns, ClickedField, CustomCells>['onRowClick'];\n data: DataGridProps<Items, Columns, ClickedField, CustomCells>['data'];\n columns: DataGridProps<Items, Columns, ClickedField, CustomCells>['columns'];\n customCells: DataGridProps<Items, Columns, ClickedField, CustomCells>['customCells'];\n onRowHover?: (index?: number) => void;\n}\n\nexport interface DataGridContextProps {\n registerCells: (props: { column: string; width: number }) => void;\n getMinWidthByColumn: (column: string) => number | undefined;\n}\n","import { HTMLAttributes, PropsWithChildren } from 'preact/compat';\nimport { useDataGridContext } from './hooks/useDataGridContext';\nimport { useEffect, useRef } from 'preact/hooks';\nimport { cloneElement, isValidElement } from 'preact';\nimport cx from 'classnames';\nimport { CellTextPosition } from './types';\n\nexport default function DataGridCell({\n children,\n column,\n position,\n ...props\n}: PropsWithChildren<HTMLAttributes<HTMLDivElement>> & { column: string; position?: string }) {\n const { registerCells } = useDataGridContext();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (ref.current) {\n registerCells({\n column,\n width: ref.current?.getBoundingClientRect().width,\n });\n }\n }, [column, registerCells]);\n\n return (\n <div\n role=\"cell\"\n className={cx('adyen-pe-data-grid__cell', {\n 'adyen-pe-data-grid__cell--right': position === CellTextPosition.RIGHT,\n 'adyen-pe-data-grid__cell--center': position === CellTextPosition.CENTER,\n })}\n {...props}\n >\n {children && isValidElement(children)\n ? cloneElement(children, {\n ...children?.props,\n ref: ref,\n style: { width: 'min-content' },\n })\n : null}\n </div>\n );\n}\n","import DataGridCell from '../DataGridCell';\nimport { DataGridColumn } from '../types';\nimport { CustomCell } from '../DataGrid';\n\nexport const TableCells = <\n Items extends Array<any>,\n Columns extends Array<DataGridColumn<Extract<keyof Items[number], string>>>,\n CustomCells extends CustomCell<Items, Columns, Columns[number]>\n>({\n columns,\n customCells,\n item,\n rowIndex,\n}: {\n columns: Columns;\n customCells?: CustomCells;\n item: Items[number];\n rowIndex: number;\n}) => {\n return (\n <>\n {columns.map(({ key, position }) => {\n if (customCells?.[key])\n return (\n <DataGridCell aria-labelledby={String(key)} key={key} column={key} position={position}>\n <div style={{ width: 'min-content' }}>\n {\n // TODO create safeguard to remove \"as any\" assertion\n customCells[key]!({\n key,\n value: item[key],\n item,\n rowIndex,\n } as any)\n }\n </div>\n </DataGridCell>\n );\n\n return (\n <DataGridCell aria-labelledby={String(key)} key={key} column={key} position={position}>\n <div>{item[key]}</div>\n </DataGridCell>\n );\n })}\n </>\n );\n};\n","import useCoreContext from '../../../../core/Context/useCoreContext';\nimport { noop } from '../../../../utils';\nimport { TableCells } from './TableCells';\nimport { DataGridColumn, InteractiveBodyProps } from '../types';\nimport { CustomCell } from '../DataGrid';\n\nexport const TableBody = <\n Items extends Array<any>,\n Columns extends Array<DataGridColumn<Extract<keyof Items[number], string>>>,\n ClickedField extends keyof Items[number],\n CustomCells extends CustomCell<Items, Columns, Columns[number]>\n>({\n data,\n columns,\n customCells,\n onRowHover,\n}: Omit<InteractiveBodyProps<Items, Columns, ClickedField, CustomCells>, 'onRowClick'>) => {\n const { i18n } = useCoreContext();\n return (\n <>\n {data?.map((item, index) => (\n <div\n role=\"row\"\n tabIndex={0}\n className=\"adyen-pe-data-grid__row\"\n key={item}\n onMouseEnter={i18n.has(`tooltip.${item?.category}`) && onRowHover ? () => onRowHover(index) : noop}\n onFocus={i18n.has(`tooltip.${item?.category}`) && onRowHover ? () => onRowHover(index) : noop}\n onMouseLeave={i18n.has(`tooltip.${item?.category}`) && onRowHover ? () => onRowHover() : noop}\n onBlur={i18n.has(`tooltip.${item?.category}`) && onRowHover ? () => onRowHover() : noop}\n >\n <TableCells<Items, Columns, CustomCells> columns={columns} customCells={customCells} item={item} rowIndex={index} />\n </div>\n ))}\n </>\n );\n};\n","import { useCallback, useReducer } from 'preact/hooks';\nimport useReflex from '../../../../hooks/useReflex';\nimport { InteractionKeyCode } from '../../../types';\nimport { INITIAL_STATE } from '../DataGrid';\n\nexport const useInteractiveDataGrid = ({ totalRows }: { totalRows: number }) => {\n const [state, dispatch] = useReducer<Readonly<{ activeIndex: number; index: number }>, { type: 'ACTIVE' | 'CURRENT'; index: number }>(\n (currentState, action) => {\n const total = totalRows;\n\n if (total > 1) {\n const nextIndex = action.index;\n\n if (nextIndex < total && nextIndex! >= 0) {\n if (action.type === 'ACTIVE') {\n return Object.freeze({ ...currentState, index: action.index ?? 0, activeIndex: action.index });\n } else {\n return Object.freeze({ ...currentState, index: action.index ?? 0, activeIndex: -1 });\n }\n }\n }\n return currentState;\n },\n INITIAL_STATE\n );\n\n const ref = useReflex<Element>(\n useCallback(\n current => {\n if (!(current instanceof Element)) return;\n\n const optionIndex = Number((current as HTMLElement).dataset?.index);\n\n if ((state.activeIndex === -1 && optionIndex === 0) || optionIndex === state.index) {\n current.setAttribute('tabindex', '0');\n } else {\n current.setAttribute('tabindex', '-1');\n }\n if (optionIndex === state.activeIndex) {\n (current as HTMLElement)?.focus();\n }\n },\n [state.activeIndex, state.index]\n )\n );\n\n const onKeyDownCapture = useCallback(\n (evt: KeyboardEvent) => {\n const isRow = (evt.target as HTMLElement)?.localName === 'tr';\n if (!isRow) {\n if (evt.code === InteractionKeyCode.ARROW_LEFT) {\n dispatch({\n type: 'ACTIVE',\n index: state.index,\n });\n }\n return;\n }\n switch (evt.code) {\n case InteractionKeyCode.ARROW_DOWN:\n case InteractionKeyCode.ARROW_UP:\n dispatch({\n type: 'ACTIVE',\n index: evt.code === InteractionKeyCode.ARROW_DOWN ? state.index + 1 : state.index - 1,\n });\n break;\n case InteractionKeyCode.HOME:\n dispatch({\n type: 'ACTIVE',\n index: 0,\n });\n break;\n case InteractionKeyCode.END:\n dispatch({\n type: 'ACTIVE',\n index: totalRows - 1,\n });\n break;\n case InteractionKeyCode.ENTER:\n (evt.currentTarget as HTMLElement)?.click();\n break;\n default:\n return;\n }\n evt.stopPropagation();\n },\n\n [totalRows, state.index]\n );\n\n const onFocusCapture = useCallback(\n (index: number) => (evt: Event) => {\n const isRow = (evt.target as HTMLElement)?.localName === 'tr';\n if (!isRow || state.index === -1) dispatch({ type: 'CURRENT', index: index });\n },\n [state.index]\n );\n\n return { listeners: { onKeyDownCapture, onFocusCapture }, ref, activeIndex: state.activeIndex, currentIndex: state.index };\n};\n","import { TableCells } from './TableCells';\nimport useCoreContext from '../../../../core/Context/useCoreContext';\nimport { noop } from '../../../../utils';\nimport { useCallback } from 'preact/hooks';\nimport { useInteractiveDataGrid } from '../hooks/useInteractiveDataGrid';\nimport { DataGridColumn, InteractiveBodyProps } from '../types';\nimport { CustomCell } from '../DataGrid';\n\nexport const InteractiveBody = <\n Items extends any[],\n Columns extends Array<DataGridColumn<Extract<keyof Items[number], string>>>,\n ClickedField extends keyof Items[number],\n CustomCells extends CustomCell<Items, Columns, Columns[number]>\n>({\n data,\n columns,\n onRowClick,\n customCells,\n onRowHover,\n}: InteractiveBodyProps<Items, Columns, ClickedField, CustomCells>) => {\n const onClickCallBack = useCallback(\n (item: Items[number]) => () => onRowClick?.callback(onRowClick?.retrievedField ? item[onRowClick.retrievedField] : item),\n [onRowClick]\n );\n\n const { i18n } = useCoreContext();\n\n const { currentIndex, listeners, ref } = useInteractiveDataGrid({ totalRows: data?.length ?? 0 });\n\n return (\n <>\n {data?.map((item, index) => (\n <div\n role=\"row\"\n tabIndex={0}\n onMouseEnter={i18n.has(`tooltip.${item?.category}`) && onRowHover ? () => onRowHover(index) : noop}\n onFocus={i18n.has(`tooltip.${item?.category}`) && onRowHover ? () => onRowHover(index) : noop}\n onMouseLeave={i18n.has(`tooltip.${item?.category}`) && onRowHover ? () => onRowHover() : noop}\n onBlur={i18n.has(`tooltip.${item?.category}`) && onRowHover ? () => onRowHover() : noop}\n ref={ref}\n aria-selected={index === currentIndex}\n data-index={index}\n className=\"adyen-pe-data-grid__row adyen-pe-data-grid__row--clickable\"\n key={item}\n onClick={onClickCallBack(item)}\n onFocusCapture={listeners.onFocusCapture(index)}\n onKeyDownCapture={listeners.onKeyDownCapture}\n >\n <TableCells columns={columns} customCells={customCells} item={item} rowIndex={index} />\n </div>\n ))}\n </>\n );\n};\n","import cx from 'classnames';\nimport '../DataGrid.scss';\nimport { VNode } from 'preact';\n\nconst SkeletonBody = ({ columnsNumber, loading, emptyMessageDisplay }: { columnsNumber: number; loading: boolean; emptyMessageDisplay?: VNode }) => {\n const rows = Array.from({ length: 10 }, (_, index) => index);\n const columns = Array.from({ length: columnsNumber }, (_, index) => index);\n return (\n <>\n {rows.map((_, i) => (\n <div className=\"adyen-pe-data-grid__row\" key={`adyen-pe-data-grid-skeleton-row-${i}`}>\n {columns.map((_, index) => (\n <div key={`adyen-pe-data-grid-skeleton-cell-${index}`} className=\"adyen-pe-data-grid__cell adyen-pe-data-grid__skeleton-cell\">\n <span\n className={cx({\n 'adyen-pe-data-grid__skeleton-cell-content adyen-pe-data-grid__skeleton-cell-content--loading': loading,\n 'adyen-pe-data-grid__empty-cell': !loading,\n })}\n />\n </div>\n ))}\n </div>\n ))}\n {!loading && emptyMessageDisplay && emptyMessageDisplay}\n </>\n );\n};\n\nexport default SkeletonBody;\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMjAwIiB2aWV3Qm94PSIwIDAgMzAwIDIwMCIgZmlsbD0ibm9uZSI+CiAgICA8ZyBjbGlwLXBhdGg9InVybCgjYSkiPgogICAgICAgIDxwYXRoIGZpbGw9IiNCRjdDNkEiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0xODkuMyAxMTMuN2MtMS0uMyAzNi4zIDI4LjYgNDcuNyAyNi40IDkuMy0xLjggMTQuMy01OSAxNC4zLTU5aC05LjlsLTEwLjggMzYuM3MtMzAuNC0yMi4zLTMxLjgtMjIuM2MtMS40IDAtOCAxOS4xLTkuNSAxOC42WiIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Im0yMzAuMSAxMTYuNyAyIDMuMiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNCRjdDNkEiIGQ9Im0yNTkuOCA3NC42IDEwLTMuNi43LTguMWMuMS0uOS0uNi0xLjYtMS40LTEuNy0uOC0uMS0xLjUuNS0xLjcgMS4zbC0xLjMgNi42LTEyLjYgNC44Ii8+CiAgICAgICAgPHBhdGggc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgZD0ibTI1OS44IDc0LjYgMTAtMy42LjctOC4xYy4xLS45LS42LTEuNi0xLjQtMS43LS44LS4xLTEuNS41LTEuNyAxLjNsLTEuMyA2LjYtMTIuNiA0LjgiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjQkY3QzZBIiBkPSJtMjYwLjUgNzUuNSAxMS4xLTMuNSAyLjktNy4xYy4zLS44LS4xLTEuNy0uOS0yLjEtLjgtLjMtMS42IDAtMiAuN2wtMy4yIDUuOS0xMC4yIDMuMiIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Im0yNjAuNSA3NS41IDExLjEtMy41IDIuOS03LjFjLjMtLjgtLjEtMS43LS45LTIuMS0uOC0uMy0xLjYgMC0yIC43bC0zLjIgNS45LTEwLjIgMy4yIi8+CiAgICAgICAgPHBhdGggZmlsbD0iI0JGN0M2QSIgZD0ibTI1NCA3Ni41IDcuNC03LjhjLjctLjYuOC0xLjUuMi0yLjItLjUtLjctMS41LS44LTIuMi0uNC0yIDEuMy02LjIgNS0xMC43IDcuMS0zLjEgMS40LTUuMiA1LjgtNS44IDcuMyIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Im0yNTQgNzYuNSA3LjQtNy44Yy43LS42LjgtMS41LjItMi4yLS41LS43LTEuNS0uOC0yLjItLjQtMiAxLjMtNi4yIDUtMTAuNyA3LjEtMy4xIDEuNC01LjIgNS44LTUuOCA3LjMiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjQkY3QzZBIiBkPSJNMjUwLjMgODIuMmMxLjItLjMgMjEuNi04LjYgMjYuNy0xMC4zLjktLjMgMS40LTEuMiAxLjEtMi4xLS4yLS45LTEtMS4xLTEuOS0xLTQuNC44LTE3LjkgMy45LTE5LjUgNC4yLTEuNS4yLTUuMy42LTEwLjkgMy4xYTkgOSAwIDAgMC01LjIgOCIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0yNTAuMyA4Mi4yYzEuMi0uMyAyMS42LTguNiAyNi43LTEwLjMuOS0uMyAxLjQtMS4yIDEuMS0yLjEtLjItLjktMS0xLjEtMS45LTEtNC40LjgtMTcuOSAzLjktMTkuNSA0LjItMS41LjItNS4zLjYtMTAuOSAzLjFhOSA5IDAgMCAwLTUuMiA4Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzAwMTEyQyIgZD0iTTEzMC45IDYzLjFjLjggNy4zIDQuNyAxNC4xIDEwLjMgMThsLTMuMS02LjRjLS41LTEtLjktMi0xLTMuMWwtLjEtLjNjLS4xLS4xLS4xLjIgMCAuMSIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0xMzAuOSA2My4xYy44IDcuMyA0LjcgMTQuMSAxMC4zIDE4bC0zLjEtNi40Yy0uNS0xLS45LTItMS0zLjFsLS4xLS4zYy0uMS0uMS0uMS4yIDAgLjEiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjQkY3QzZBIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBkPSJtMTU4LjkgNzQuOC0xMy4yLjItMS41IDE4IDguNCAzLjYgNy45LTMuOC0xLjYtMThaIi8+CiAgICAgICAgPHBhdGggZmlsbD0iIzAwMTEyQyIgc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgZD0iTTE1MS45IDgzLjljLTQuNyAwLTYuNC0yLjctNi40LTIuN3YtNC42aDEzLjRsLjMgNmMtLjEuMS0yLjUgMS4zLTcuMyAxLjNaIi8+CiAgICAgICAgPHBhdGggZmlsbD0iIzAwMTEyQyIgc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgZD0iTTEzNC41IDcwLjdjMi40IDMgNi4zIDUuNyA5LjggNy4zIDMuNiAxLjYgMTUuMyAxLjcgMTkuNS0xLjEgOC44LTUuOSAxMC41LTIwLjMgOC4yLTMwLjYtLjctMy40LTEuOC02LjgtMy43LTkuN2EyMiAyMiAwIDAgMC0xOS44LTkuM2MtNy41LjUtMTkuMyA1LjktMjAuOCAxNC4yLTEuNyA5LjYuOCAyMS42IDYuOCAyOS4yWiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNCRjdDNkEiIGQ9Ik0xMzMuMiA1OC45cy01LjEtNy03LjgtMS42IDQuOCAxMy40IDEwLjggMTEuMiIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0xMzMuMiA1OC45cy01LjEtNy03LjgtMS42IDQuOCAxMy40IDEwLjggMTEuMiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNCRjdDNkEiIGQ9Ik0xNjkuNSA1Mi40czIuMy04LjMgNi43LTQuMmM0LjQgNC4xLjIgMTQuMi02LjIgMTQuMyIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0xNjkuNSA1Mi40czIuMy04LjMgNi43LTQuMmM0LjQgNC4xLjIgMTQuMi02LjIgMTQuMyIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNCRjdDNkEiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0xNjYuOSA0MS4yYy02LjMtMTItMzMuNC04LjItMzQuOSA2LjNBMzguMiAzOC4yIDAgMCAwIDE0MiA3N2M1LjcgNS4yIDEyIDQuNSAxNC4xIDQuMSAyLjEtLjMgOC4yLTEuOCAxMS43LTguOGEzNy4yIDM3LjIgMCAwIDAtLjktMzEuMVoiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjMDAxMTJDIiBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBkPSJNMTM0LjEgNTVjNy44LTEuMSAxNS41LTIuNiAyMy4xLTQuNGwtLjQtNC44YzEgMS42IDEuOCAyLjcgMi40IDQuNSAzLTEuMyA2LjMtMS41IDkuNS0xLjYgMy4xLS4xLTQuMi0xNC4zLTYuMS0xNS42YTE2LjIgMTYuMiAwIDAgMC03LjEtMi4xYy01LjctLjYtMTEuNy0uNC0xNi43IDIuMy00IDIuMi03LjMgNi40LTcuNiAxMSAwIDEuNS41IDExIDIuOSAxMC43WiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNCRjdDNkEiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0xMTQuNSAxMTMuN2MxLS4zLTM2LjMgMjguNi00Ny43IDI2LjQtOS4zLTEuOC0xNC4zLTU5LTE0LjMtNTloOS45bDEwLjggMzYuM3MzMC40LTIyLjMgMzEuOC0yMi4zYzEuNS0uMSA4LjEgMTkuMSA5LjUgMTguNloiLz4KICAgICAgICA8cGF0aCBzdHJva2U9IiMwMDExMkMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBkPSJtNzMuOCAxMTYuNy0yLjEgMy4yIi8+CiAgICAgICAgPHBhdGggZmlsbD0iI0JGN0M2QSIgZD0iTTQ0IDc0LjYgMzQgNzFsLS43LTguMWMtLjEtLjkuNi0xLjYgMS40LTEuNy44LS4xIDEuNS41IDEuNyAxLjNsMS4zIDYuNiAxMi42IDQuOCIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik00NCA3NC42IDM0IDcxbC0uNy04LjFjLS4xLS45LjYtMS42IDEuNC0xLjcuOC0uMSAxLjUuNSAxLjcgMS4zbDEuMyA2LjYgMTIuNiA0LjgiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjQkY3QzZBIiBkPSJNNDMuMyA3NS41IDMyLjIgNzJsLTIuOS03Yy0uMy0uOC4xLTEuNy45LTIuMS44LS4zIDEuNiAwIDIgLjdsMy4yIDUuOSAxMC4yIDMuMiIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik00My4zIDc1LjUgMzIuMiA3MmwtMi45LTdjLS4zLS44LjEtMS43LjktMi4xLjgtLjMgMS42IDAgMiAuN2wzLjIgNS45IDEwLjIgMy4yIi8+CiAgICAgICAgPHBhdGggZmlsbD0iI0JGN0M2QSIgZD0ibTQ5LjggNzYuNS03LjQtNy44Yy0uNy0uNi0uOC0xLjUtLjItMi4yLjUtLjcgMS41LS44IDIuMi0uNCAyIDEuMyA2LjIgNSAxMC43IDcuMSAzLjEgMS40IDUuMiA1LjggNS44IDcuMyIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Im00OS44IDc2LjUtNy40LTcuOGMtLjctLjYtLjgtMS41LS4yLTIuMi41LS43IDEuNS0uOCAyLjItLjQgMiAxLjMgNi4yIDUgMTAuNyA3LjEgMy4xIDEuNCA1LjIgNS44IDUuOCA3LjMiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjQkY3QzZBIiBkPSJNNTMuNSA4Mi4yQzUyLjQgODEuOSAzMiA3My43IDI2LjggNzJhMS42IDEuNiAwIDAgMS0xLjEtMi4xYy4yLS45IDEtMS4xIDEuOS0xIDQuNC44IDE3LjkgMy45IDE5LjUgNC4yIDEuNS4yIDUuMy42IDEwLjkgMy4xYTkgOSAwIDAgMSA1LjIgOCIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik01My41IDgyLjJDNTIuNCA4MS45IDMyIDczLjcgMjYuOCA3MmExLjYgMS42IDAgMCAxLTEuMS0yLjFjLjItLjkgMS0xLjEgMS45LTEgNC40LjggMTcuOSAzLjkgMTkuNSA0LjIgMS41LjIgNS4zLjYgMTAuOSAzLjFhOSA5IDAgMCAxIDUuMiA4Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzAwMTEyQyIgc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgZD0iTTEzOS45IDg3LjZjLTEuNC0zLjQtNi4zLTEyLjUtOS44LTExLjdhOTAuNyA5MC43IDAgMCAwLTQ2LjIgMjkuN2MtNC40IDUuNC0yIDguNy0yIDguN2w3LjEgMTguOHMzLjYgMiAxNS40IDEuN2MxNy40LS41IDM4LjgtMjYuOCAzOS41LTMwLjYuNC0yLjYtMS43LTEwLjgtNC0xNi42WiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiMzMzAwQzIiIGQ9Im0xOTYuNiAyMzIuOC0xOC43LTU4LjFoLTUxbC0yMC4yIDU4LjEiLz4KICAgICAgICA8cGF0aCBzdHJva2U9IiMwQzExMkMiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgZD0ibTE5Ni42IDIzMi44LTE4LjctNTguMWgtNTFsLTIwLjIgNTguMSIvPgogICAgICAgIDxwYXRoIGZpbGw9IiMwMDExMkMiIHN0cm9rZT0iIzAwMTEyQyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Im0xNTkuMSA5MS44LTE2LjguMXMtMjAuNCAxLTIxLjMgNi44Yy0xLjYgMTAuNiA2LjEgNTIuNiA1LjkgNTYuMmwtNC44IDIwLjQuMi4xYzEwLjcgNSAyMi43IDcuMiAzNC42IDYuMmwyMy4xLTEuOS0zLjItMTguMmMtLjItMi43IDcuMy00NiA2LjktNjEuMy0uMS03LjEtMjQuNi04LjQtMjQuNi04LjRaIi8+CiAgICAgICAgPHBhdGggZmlsbD0iIzAwMTEyQyIgc3Ryb2tlPSIjMDAxMTJDIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgZD0ibTE0MS40IDkyIDEuNi01LjZoMTguN2wxLjEgNC45Yy0uMS4xLTguOSAxMS0yMS40LjdabTIzLjEtNC40YzEuNC0zLjQgNi4zLTEyLjUgOS44LTExLjdhOTAuNyA5MC43IDAgMCAxIDQ2LjIgMjkuN2M0LjQgNS40IDIgOC43IDIgOC43bC03LjEgMTguOHMtMy42IDItMTUuNCAxLjdjLTE3LjQtLjUtMzguOC0yNi44LTM5LjUtMzAuNmE0OC4zIDQ4LjMgMCAwIDEgNC0xNi42Wk0xMTkuOSAxOGMwLTIuNSAxLjEtNC45IDIuNy02LjggMS45LTIuMiA0LjUtMy44IDcuNC00LjIgMi45LS40IDUuOS42IDcuOSAyLjdhNC44IDQuOCAwIDAgMC0zLTQuMXM1LS4yIDcuMS40YTE0LjcgMTQuNyAwIDAgMSAxMSAxNy44Yy0yLjMgOC44LTE0LjIgNy0yMSA1LjYtNS42LTEuMi0xMi00LjktMTIuMS0xMS40WiIvPgogICAgPC9nPgogICAgPGRlZnM+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJhIj4KICAgICAgICAgICAgPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgzMDB2MjAwSDB6Ii8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgIDwvZGVmcz4KPC9zdmc+\"","import { DataGridContext } from '../hooks/useDataGridContext';\nimport { ComponentChildren, toChildArray } from 'preact';\nimport { useCallback, useMemo } from 'preact/hooks';\n\ntype ColumnWidth = { column: string; width: number };\n\nexport const DataGridProvider = ({ children }: { children: ComponentChildren }) => {\n const minWidthByColumn = useMemo(() => new Map<string, number>(), []);\n const registerCells: (props: ColumnWidth) => void = useCallback(\n ({ column, width }) => {\n if (minWidthByColumn.has(column)) {\n const existingWidth = minWidthByColumn.get(column)!;\n if (width > existingWidth) {\n minWidthByColumn.set(column, width);\n }\n } else {\n minWidthByColumn.set(column, width);\n }\n },\n [minWidthByColumn]\n );\n\n const getMinWidthByColumn = useCallback(\n (column: string) => {\n return minWidthByColumn.get(column);\n },\n [minWidthByColumn]\n );\n\n return <DataGridContext.Provider value={{ registerCells, getMinWidthByColumn }}>{toChildArray(children)}</DataGridContext.Provider>;\n};\n","import classnames from 'classnames';\nimport { CellTextPosition, DataGridColumn } from '../types';\nimport { useDataGridContext } from '../hooks/useDataGridContext';\nimport { useEffect, useRef } from 'preact/hooks';\n\nexport const TableHeaderCell = ({ cellKey, position, label }: DataGridColumn<Extract<string, string>> & { cellKey: string }) => {\n const { registerCells } = useDataGridContext();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (ref.current) {\n registerCells({\n column: cellKey,\n width: ref.current?.getBoundingClientRect().width,\n });\n }\n }, [cellKey, registerCells]);\n\n return (\n <div\n role=\"columnheader\"\n id={String(cellKey)}\n className={classnames('adyen-pe-data-grid__cell adyen-pe-data-grid__cell--heading', {\n 'adyen-pe-data-grid__cell--right': position === CellTextPosition.RIGHT,\n 'adyen-pe-data-grid__cell--center': position === CellTextPosition.CENTER,\n })}\n >\n <div ref={ref} className={'adyen-pe-data-grid__cell--heading-content'}>\n {label}\n </div>\n </div>\n );\n};\n","import { ComponentChild, toChildArray } from 'preact';\nimport classnames from 'classnames';\nimport './DataGrid.scss';\nimport { TableBody } from './components/TableBody';\nimport { InteractiveBody } from './components/InteractiveBody';\nimport { DataGridColumn, DataGridProps } from './types';\nimport SkeletonBody from './components/SkeletonBody';\nimport { ErrorMessageDisplay } from '../ErrorMessageDisplay/ErrorMessageDisplay';\nimport { useMemo } from 'preact/hooks';\nimport emptyTableIcon from '../../../images/no-data-female.svg';\nimport { DataGridProvider } from './utils/DataGridProvider';\nimport { useDataGridContext } from './hooks/useDataGridContext';\nimport { TableHeaderCell } from './components/TableHeaderCell';\n\nexport const INITIAL_STATE = Object.freeze({\n activeIndex: -1,\n index: -1,\n});\n\ntype CellKey<\n Item extends Array<any>,\n Columns extends Array<DataGridColumn<Extract<keyof Item[number], string>>>,\n Column extends DataGridColumn<Extract<keyof Item[number], string>>,\n T extends Columns[number]['key']\n> = {\n [k in Column['key']]: k;\n}[T];\n\nexport type CustomCell<\n Item extends Array<any>,\n Columns extends Array<DataGridColumn<Extract<keyof Item[number], string>>>,\n T extends Columns[number]\n> = {\n [k in T['key']]?: (\n props: Item[0][k] extends NonNullable<Item[0][k]>\n ? { key: CellKey<Item, Columns, Columns[number], k>; value: Item[number][k]; item: Item[number]; rowIndex: number }\n : { key: CellKey<Item, Columns, Columns[number], k>; item: Item[number]; rowIndex: number }\n ) => ComponentChild;\n};\n\nfunction DataGrid<\n Items extends Array<any>,\n Columns extends Array<DataGridColumn<Extract<keyof Items[number], string>>>,\n ClickedField extends keyof Items[number],\n CustomCells extends CustomCell<Items, Columns, Columns[number]>\n>({ errorDisplay, ...props }: DataGridProps<Items, Columns, ClickedField, CustomCells>) {\n return (\n <div style={{ width: '100%' }}>\n <DataGridProvider>\n <DataGridTable {...props} />\n </DataGridProvider>\n </div>\n );\n}\n\nfunction DataGridTable<\n Items extends Array<any>,\n Columns extends Array<DataGridColumn<Extract<keyof Items[number], string>>>,\n ClickedField extends keyof Items[number],\n CustomCells extends CustomCell<Items, Columns, Columns[number]>\n>({ errorDisplay, ...props }: DataGridProps<Items, Columns, ClickedField, CustomCells>) {\n const children = useMemo(() => toChildArray(props.children), [props.children]);\n const footer = useMemo(() => children.find((child: ComponentChild) => (child as any)?.['type'] === DataGridFooter), [children]);\n const emptyBody = useMemo(() => props.data?.length === 0, [props.data]);\n const showMessage = useMemo(() => !props.loading && (emptyBody || props.error), [emptyBody, props.error, props.loading]);\n const { getMinWidthByColumn } = useDataGridContext();\n\n const visibleCols = props.columns\n .filter(column => column.visible !== false)\n .map(column => ({ ...column, minWidth: getMinWidthByColumn(column.key) }));\n\n const cellWidths = visibleCols.map(col => `minmax(${(col.minWidth || 100) + 40}px, ${col.flex || 1}fr)`).join(' ');\n return (\n <div\n className={classnames('adyen-pe-data-grid', {\n 'adyen-pe-data-grid--condensed': props.condensed,\n 'adyen-pe-data-grid--outline': props.outline,\n 'adyen-pe-data-grid--scrollable': props.scrollable,\n 'adyen-pe-data-grid--loading': props.loading,\n 'adyen-pe-data-grid--empty': emptyBody || props.error,\n })}\n style={`--adyen-pe-data-grid-cols: ${visibleCols.length}; --adyen-pe-data-grid-cells: ${cellWidths};`}\n >\n <>\n <div className=\"adyen-pe-data-grid__table-wrapper\">\n <div role=\"table\" className=\"adyen-pe-data-grid__table\">\n <div className=\"adyen-pe-data-grid__head\" role=\"rowgroup\">\n <div role=\"rowheader\" className=\"adyen-pe-data-grid__header\" style={props.loading ? { width: '100%' } : {}}>\n {visibleCols.map(item => (\n <TableHeaderCell key={item.key} label={item.label} position={item.position} cellKey={item.key} />\n ))}\n </div>\n </div>\n\n <DataGridBody<Items, Columns, ClickedField, CustomCells> {...props} columns={visibleCols as Columns} emptyBody={emptyBody} />\n </div>\n {showMessage &&\n (emptyBody ? (\n <ErrorMessageDisplay\n title={props.emptyTableMessage?.title ?? 'thereAreNoResults'}\n message={props.emptyTableMessage?.message}\n imageDesktop={emptyTableIcon}\n centered\n />\n ) : props.error && errorDisplay ? (\n errorDisplay()\n ) : null)}\n </div>\n {footer}\n </>\n </div>\n );\n}\n\nfunction DataGridBody<\n Items extends Array<any>,\n Columns extends Array<DataGridColumn<Extract<keyof Items[number], string>>>,\n ClickedField extends keyof Items[number],\n CustomCells extends CustomCell<Items, Columns, Columns[number]>\n>(props: DataGridProps<Items, Columns, ClickedField, CustomCells> & { emptyBody: boolean }) {\n const showSkeleton = useMemo(() => props.loading || props.emptyBody || props.error, [props.emptyBody, props.error, props.loading]);\n\n return (\n <div\n role=\"rowgroup\"\n className={classnames('adyen-pe-data-grid__body')}\n style={showSkeleton && { display: 'grid', gridTemplateColumns: '1fr' }}\n >\n {showSkeleton ? (\n <SkeletonBody columnsNumber={props.columns.length} loading={props.loading} />\n ) : props.onRowClick ? (\n <InteractiveBody<Items, Columns, ClickedField, CustomCells>\n onRowHover={props.onRowHover}\n data={props.data}\n columns={props.columns}\n onRowClick={props.onRowClick}\n customCells={props.customCells}\n />\n ) : (\n <TableBody<Items, Columns, ClickedField, CustomCells>\n onRowHover={props.onRowHover}\n data={props.data}\n customCells={props.customCells}\n columns={props.columns}\n />\n )}\n </div>\n );\n}\n\nDataGrid.Footer = DataGridFooter;\n\nfunction DataGridFooter({ children }: { children: ComponentChild }) {\n return <div className=\"adyen-pe-data-grid__footer\">{children}</div>;\n}\n\nDataGrid.defaultProps = {\n condensed: false,\n outline: true,\n scrollable: true,\n};\n\nexport default DataGrid;\n","export const ARIA_ERROR_SUFFIX = '-ariaError';\nexport const ERROR_MSG_INCOMPLETE_FIELD = 'incompleteField';\n","import { ButtonActionObject } from '../../components/internal/Button/ButtonActions/types';\n\nexport enum CommitAction {\n NONE = 0,\n APPLY = 1,\n CLEAR = 2,\n}\n\nexport interface UseCommitActionConfig {\n applyDisabled?: boolean;\n applyTitle?: string;\n resetDisabled?: boolean;\n resetTitle?: string;\n}\n\nexport interface CommitActionProperties {\n readonly commitAction: CommitAction;\n readonly commitActionButtons: readonly [ButtonActionObject, ButtonActionObject];\n readonly committing: boolean;\n readonly resetCommitAction: () => void;\n}\n","import { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport { ButtonVariant } from '../../components/internal/Button/types';\nimport { ButtonActionObject } from '../../components/internal/Button/ButtonActions/types';\nimport { CommitAction, CommitActionProperties, UseCommitActionConfig } from './types';\nimport useCoreContext from '../../core/Context/useCoreContext';\nimport { boolOrFalse, EMPTY_OBJECT } from '../../utils';\n\nconst useCommitAction = ({ applyDisabled, applyTitle, resetDisabled, resetTitle }: UseCommitActionConfig = EMPTY_OBJECT): CommitActionProperties => {\n const { i18n } = useCoreContext();\n const [commitAction, setCommitAction] = useState(CommitAction.NONE);\n const [committing, setCommitting] = useState(commitAction !== CommitAction.NONE);\n\n const applyAction = useCallback(() => setCommitAction(CommitAction.APPLY), [setCommitAction]);\n const resetAction = useCallback(() => setCommitAction(CommitAction.CLEAR), [setCommitAction]);\n const resetCommitAction = useCallback(() => setCommitAction(CommitAction.NONE), [setCommitAction]);\n\n const applyButtonAction = useMemo(\n () =>\n ({\n disabled: boolOrFalse(applyDisabled),\n event: applyAction,\n title: applyTitle?.trim() || i18n.get('apply'),\n variant: ButtonVariant.PRIMARY,\n } as ButtonActionObject),\n [i18n, applyAction, applyDisabled, applyTitle]\n );\n\n const resetButtonAction = useMemo(\n () =>\n ({\n disabled: boolOrFalse(resetDisabled),\n event: resetAction,\n title: resetTitle?.trim() || i18n.get('reset'),\n variant: ButtonVariant.SECONDARY,\n } as ButtonActionObject),\n [i18n, resetAction, resetDisabled, resetTitle]\n );\n\n const commitActionButtons = useMemo(() => [applyButtonAction, resetButtonAction] as const, [applyButtonAction, resetButtonAction]);\n\n useEffect(() => {\n setCommitting(commitAction !== CommitAction.NONE);\n switch (commitAction) {\n case CommitAction.APPLY:\n case CommitAction.CLEAR:\n resetCommitAction();\n break;\n }\n }, [commitAction, setCommitting, resetCommitAction]);\n\n return { commitAction, commitActionButtons, committing, resetCommitAction } as const;\n};\n\nexport default useCommitAction;\n","import { JSX } from 'preact';\nimport { useRef, useState, useEffect } from 'preact/hooks';\nimport cx from 'classnames';\nimport './Img.scss';\nimport { ImgProps } from './types';\n\nexport default function Img(props: ImgProps) {\n const { backgroundUrl = '', className = '', classNameModifiers = [], src = '', alt = '', showOnError = false } = props;\n const [loaded, setLoaded] = useState(false);\n const imageRef = useRef(null);\n\n const handleLoad = () => {\n setLoaded(true);\n };\n\n const handleError = () => {\n setLoaded(showOnError);\n };\n\n const classNames = cx(\n [className],\n 'adyen-pe-image',\n { 'adyen-pe-image--loaded': loaded },\n ...classNameModifiers.map(modifier => `adyen-pe-image--${modifier}`)\n );\n\n useEffect(() => {\n const image = backgroundUrl ? new Image() : imageRef.current;\n if (image) {\n image.src = backgroundUrl || src;\n image.onload = handleLoad;\n }\n setLoaded(!!image?.complete);\n }, []);\n\n if (backgroundUrl) {\n return <div style={{ backgroundUrl } as JSX.CSSProperties} {...props} className={classNames} />;\n }\n\n return <img {...props} alt={alt} ref={imageRef} className={classNames} onError={handleError} />;\n}\n","import { Ref } from 'preact';\nimport { SVGProps } from 'preact/compat';\nimport { fixedForwardRef } from '../../../utils/preact';\n\nconst ChevronDown = fixedForwardRef(({ title, ...props }: Omit<SVGProps<SVGElement>, 'ref'>, ref: Ref<SVGSVGElement>) => (\n <svg {...props} ref={ref} xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n {title && <title>{title}</title>}\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M2.47 4.97c.3-.3.77-.3 1.06 0L8 9.44l4.47-4.47a.75.75 0 1 1 1.06 1.06l-5 5c-.3.3-.77.3-1.06 0l-5-5a.75.75 0 0 1 0-1.06Z\"\n clipRule=\"evenodd\"\n />\n </svg>\n));\n\nexport default ChevronDown;\n","import { DEFAULT_BUTTON_CLASSNAME } from '../../Button/constants';\nimport { ButtonVariant } from '../../Button/types';\nimport { getModifierClasses } from '../../../../utils/preact';\n\nexport const DROPDOWN_BASE_CLASS = 'adyen-pe-dropdown';\nexport const DROPDOWN_BUTTON_CLASSNAME = getModifierClasses(DEFAULT_BUTTON_CLASSNAME, [ButtonVariant.SECONDARY], [DEFAULT_BUTTON_CLASSNAME]);\nexport const DROPDOWN_BUTTON_CLASS = `${DROPDOWN_BASE_CLASS}__button`;\nexport const DROPDOWN_BUTTON_ACTIVE_CLASS = `${DROPDOWN_BUTTON_CLASS}--active`;\nexport const DROPDOWN_BUTTON_COLLAPSE_INDICATOR_CLASS = `${DROPDOWN_BUTTON_CLASS}-collapse-indicator`;\nexport const DROPDOWN_BUTTON_HAS_SELECTION_CLASS = `${DROPDOWN_BUTTON_CLASS}--has-selection`;\nexport const DROPDOWN_BUTTON_ICON_CLASS = `${DROPDOWN_BUTTON_CLASS}-icon`;\nexport const DROPDOWN_BUTTON_MULTI_SELECT_COUNTER_CLASS = `${DROPDOWN_BUTTON_CLASS}-multiselect-counter`;\nexport const DROPDOWN_BUTTON_READONLY_CLASS = `${DROPDOWN_BUTTON_CLASS}--readonly`;\nexport const DROPDOWN_BUTTON_TEXT_CLASS = `${DROPDOWN_BUTTON_CLASS}-text`;\nexport const DROPDOWN_BUTTON_VALID_CLASS = `${DROPDOWN_BUTTON_CLASS}--valid`;\nexport const DROPDOWN_BUTTON_INVALID_CLASS = `${DROPDOWN_BUTTON_CLASS}--invalid`;\nexport const DROPDOWN_ELEMENT_CLASS = `${DROPDOWN_BASE_CLASS}__element`;\nexport const DROPDOWN_ELEMENT_ACTIVE_CLASS = `${DROPDOWN_ELEMENT_CLASS}--active`;\nexport const DROPDOWN_ELEMENT_CHECKBOX_CLASS = `${DROPDOWN_ELEMENT_CLASS}-checkbox`;\nexport const DROPDOWN_ELEMENT_CHECKMARK_CLASS = `${DROPDOWN_ELEMENT_CLASS}-checkmark`;\nexport const DROPDOWN_ELEMENT_CONTENT_CLASS = `${DROPDOWN_ELEMENT_CLASS}-content`;\nexport const DROPDOWN_ELEMENT_DISABLED_CLASS = `${DROPDOWN_ELEMENT_CLASS}--disabled`;\nexport const DROPDOWN_ELEMENT_ICON_CLASS = `${DROPDOWN_ELEMENT_CLASS}-icon`;\nexport const DROPDOWN_ELEMENT_NO_OPTION_CLASS = `${DROPDOWN_ELEMENT_CLASS}--no-option`;\nexport const DROPDOWN_LIST_CLASS = `${DROPDOWN_BASE_CLASS}__list`;\nexport const DROPDOWN_LIST_ACTIVE_CLASS = `${DROPDOWN_LIST_CLASS}--active`;\nexport const DROPDOWN_MULTI_SELECT_CLASS = `${DROPDOWN_BASE_CLASS}--multiselect`;\n","import cx from 'classnames';\nimport { Ref } from 'preact';\nimport { MutableRef, useMemo } from 'preact/hooks';\nimport { HTMLAttributes, PropsWithChildren } from 'preact/compat';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport Img from '../../../Img';\nimport Button from '../../../Button';\nimport { ButtonVariant } from '../../../Button/types';\nimport Typography from '../../../Typography/Typography';\nimport ChevronDown from '../../../SVGIcons/ChevronDown';\nimport { TypographyElement, TypographyVariant } from '../../../Typography/types';\nimport { boolOrFalse } from '../../../../../utils';\nimport {\n DROPDOWN_BUTTON_ACTIVE_CLASS,\n DROPDOWN_BUTTON_CLASS,\n DROPDOWN_BUTTON_CLASSNAME,\n DROPDOWN_BUTTON_COLLAPSE_INDICATOR_CLASS,\n DROPDOWN_BUTTON_HAS_SELECTION_CLASS,\n DROPDOWN_BUTTON_ICON_CLASS,\n DROPDOWN_BUTTON_INVALID_CLASS,\n DROPDOWN_BUTTON_MULTI_SELECT_COUNTER_CLASS,\n DROPDOWN_BUTTON_READONLY_CLASS,\n DROPDOWN_BUTTON_TEXT_CLASS,\n DROPDOWN_BUTTON_VALID_CLASS,\n} from '../constants';\nimport type { SelectButtonProps, SelectItem } from '../types';\n\nconst SelectButtonElement = <T extends SelectItem>({\n active,\n disabled,\n className,\n filterable,\n toggleButtonRef,\n ...props\n}: PropsWithChildren<SelectButtonProps<T> & Partial<HTMLAttributes<HTMLButtonElement | HTMLDivElement>>>) => {\n const baseClassName = useMemo(() => (filterable ? cx(DROPDOWN_BUTTON_CLASSNAME, className) : className), [className, filterable]);\n return filterable ? (\n <div {...props} className={baseClassName} ref={toggleButtonRef as Ref<HTMLDivElement>} />\n ) : (\n <Button\n {...props}\n className={baseClassName}\n disabled={disabled}\n variant={ButtonVariant.SECONDARY}\n ref={toggleButtonRef as MutableRef<HTMLButtonElement>}\n />\n );\n};\n\nconst SelectButton = <T extends SelectItem>(props: SelectButtonProps<T> & { appliedFilterNumber: number }) => {\n const { i18n } = useCoreContext();\n const { active, filterable, multiSelect, placeholder, readonly, showList, withoutCollapseIndicator } = props;\n const placeholderText = useMemo(() => placeholder?.trim() || i18n.get('select.filter.placeholder'), [i18n, placeholder]);\n const buttonActiveItem = useMemo(() => (boolOrFalse(multiSelect) ? undefined : active[0]), [active, multiSelect]);\n const buttonTitleText = useMemo(() => buttonActiveItem?.name?.trim() || placeholderText, [buttonActiveItem, placeholderText]);\n\n return (\n <SelectButtonElement\n active={active}\n disabled={readonly}\n aria-disabled={readonly}\n aria-expanded={showList}\n aria-haspopup=\"listbox\"\n className={cx(DROPDOWN_BUTTON_CLASS, {\n [DROPDOWN_BUTTON_ACTIVE_CLASS]: showList,\n [DROPDOWN_BUTTON_HAS_SELECTION_CLASS]: !!active.length,\n [DROPDOWN_BUTTON_READONLY_CLASS]: readonly,\n [DROPDOWN_BUTTON_INVALID_CLASS]: props.isInvalid,\n [DROPDOWN_BUTTON_VALID_CLASS]: props.isValid,\n })}\n filterable={filterable}\n onClick={!readonly ? props.toggleList : undefined}\n onKeyDown={!readonly ? props.onButtonKeyDown : undefined}\n role={filterable ? 'button' : undefined}\n tabIndex={0}\n title={buttonTitleText}\n toggleButtonRef={props.toggleButtonRef}\n type={!filterable ? 'button' : ''}\n aria-describedby={props.ariaDescribedBy}\n id={props.id ?? ''}\n >\n {showList && filterable ? (\n <input\n aria-autocomplete=\"list\"\n aria-controls={props.selectListId}\n aria-expanded={showList}\n aria-owns={props.selectListId}\n autoComplete=\"off\"\n className=\"adyen-pe-filter-input\"\n onInput={props.onInput}\n placeholder={placeholderText}\n ref={props.filterInputRef}\n role=\"combobox\"\n type=\"text\"\n />\n ) : (\n <>\n {buttonActiveItem?.icon && (\n <Img className={DROPDOWN_BUTTON_ICON_CLASS} src={buttonActiveItem.icon} alt={buttonActiveItem.name.trim()} />\n )}\n <span className={DROPDOWN_BUTTON_TEXT_CLASS}>\n {buttonActiveItem?.selectedOptionName?.trim() || buttonActiveItem?.name.trim() || placeholderText}\n </span>\n {multiSelect && props.appliedFilterNumber > 0 && (\n <div className={DROPDOWN_BUTTON_MULTI_SELECT_COUNTER_CLASS}>\n <Typography el={TypographyElement.SPAN} variant={TypographyVariant.BODY} stronger={true}>\n {props.appliedFilterNumber}\n </Typography>\n </div>\n )}\n </>\n )}\n {!withoutCollapseIndicator && (\n <span className={DROPDOWN_BUTTON_COLLAPSE_INDICATOR_CLASS}>\n <ChevronDown role=\"presentation\" />\n </span>\n )}\n </SelectButtonElement>\n );\n};\n\nexport default SelectButton;\n","import { Ref } from 'preact';\nimport { SVGProps } from 'preact/compat';\nimport { fixedForwardRef } from '../../../utils/preact';\n\nconst CheckedBox = fixedForwardRef(({ title, ...props }: Omit<SVGProps<SVGElement>, 'ref'>, ref: Ref<SVGSVGElement>) => (\n <svg {...props} ref={ref} xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n {title && <title>{title}</title>}\n <path\n fill=\"currentColor\"\n d=\"M1.25 3.5c0-1.24 1-2.25 2.25-2.25h9c1.24 0 2.25 1 2.25 2.25v9c0 1.24-1 2.25-2.25 2.25h-9c-1.24 0-2.25-1-2.25-2.25v-9ZM12.06 6 11 4.94l-4 4-2-2L3.94 8 7 11.06 12.06 6Z\"\n />\n </svg>\n));\n\nexport default CheckedBox;\n","import { Ref } from 'preact';\nimport { SVGProps } from 'preact/compat';\nimport { fixedForwardRef } from '../../../utils/preact';\n\nconst UncheckedBox = fixedForwardRef(({ title, ...props }: Omit<SVGProps<SVGElement>, 'ref'>, ref: Ref<SVGSVGElement>) => (\n <svg {...props} ref={ref} xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n {title && <title>{title}</title>}\n <path stroke=\"currentColor\" d=\"M.5 4C.5 2 2.1.5 4 .5h8c2 0 3.5 1.6 3.5 3.5v8c0 2-1.6 3.5-3.5 3.5H4C2 15.5.5 13.9.5 12V4Z\" />\n </svg>\n));\n\nexport default UncheckedBox;\n","import { Ref } from 'preact';\nimport { SVGProps } from 'preact/compat';\nimport { fixedForwardRef } from '../../../utils/preact';\n\nconst Checkmark = fixedForwardRef(({ title, ...props }: Omit<SVGProps<SVGElement>, 'ref'>, ref: Ref<SVGSVGElement>) => (\n <svg {...props} ref={ref} xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" width=\"16\" viewBox=\"0 0 16 16\" height=\"16\">\n {title && <title>{title}</title>}\n <path\n fill=\"currentColor\"\n fill-rule=\"evenodd\"\n d=\"M14.5 4.5a.7.7 0 0 0-1-1L6 10.9 2.5 7.5a.8.8 0 0 0-1 1l4 4a.8.8 0 0 0 1 0l8-8Z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n));\n\nexport default Checkmark;\n","import cx from 'classnames';\nimport { memo } from 'preact/compat';\nimport Img from '../../../Img';\nimport type { SelectItem, SelectItemProps } from '../types';\nimport CheckedBox from '../../../SVGIcons/CheckedBox';\nimport UncheckedBox from '../../../SVGIcons/UncheckedBox';\nimport Checkmark from '../../../SVGIcons/Checkmark';\nimport { boolOrFalse } from '../../../../../utils';\nimport {\n DROPDOWN_ELEMENT_ACTIVE_CLASS,\n DROPDOWN_ELEMENT_CHECKBOX_CLASS,\n DROPDOWN_ELEMENT_CHECKMARK_CLASS,\n DROPDOWN_ELEMENT_CLASS,\n DROPDOWN_ELEMENT_CONTENT_CLASS,\n DROPDOWN_ELEMENT_DISABLED_CLASS,\n DROPDOWN_ELEMENT_ICON_CLASS,\n} from '../constants';\n\ntype _RenderSelectOptionResult<T extends SelectItem> = ReturnType<SelectItemProps<T>['renderListItem']>;\ntype _RenderSelectOptionData<T extends SelectItem> = Parameters<SelectItemProps<T>['renderListItem']>[0];\n\nexport const renderDefaultMultiSelectionCheckedness = <T extends SelectItem>(data: _RenderSelectOptionData<T>): _RenderSelectOptionResult<T> =>\n data.multiSelect ? (\n <span className={DROPDOWN_ELEMENT_CHECKBOX_CLASS}>\n {data.selected ? <CheckedBox role=\"presentation\" /> : <UncheckedBox role=\"presentation\" />}\n </span>\n ) : null;\n\nexport const renderDefaultSingleSelectionCheckedness = <T extends SelectItem>(data: _RenderSelectOptionData<T>): _RenderSelectOptionResult<T> =>\n data.multiSelect ? null : <span className={DROPDOWN_ELEMENT_CHECKMARK_CLASS}>{data.selected && <Checkmark role=\"presentation\" />}</span>;\n\nexport const renderListItemDefault = <T extends SelectItem>(data: _RenderSelectOptionData<T>): _RenderSelectOptionResult<T> => (\n <>\n {renderDefaultMultiSelectionCheckedness(data)}\n <div className={data.contentClassName as string}>\n {data.item.icon && <Img className={data.iconClassName as string} alt={data.item.name} src={data.item.icon} />}\n <span>{data.item.name}</span>\n </div>\n {renderDefaultSingleSelectionCheckedness(data)}\n </>\n);\n\nconst SelectListItem = <T extends SelectItem>({ item, multiSelect, onKeyDown, onSelect, renderListItem, selected }: SelectItemProps<T>) => {\n const disabled = !!item.disabled;\n\n // A change in Preact v10.11.1 means that all falsy values are assessed and set on data attributes.\n // In the case of `data-disabled` we only ever want it set if item.disabled is actually true, since the presence\n // of the `data-disabled` attr, regardless of its value, will disable the select list item.\n const dataDisabled = boolOrFalse(item.disabled) || null;\n\n const itemClassName = cx(DROPDOWN_ELEMENT_CLASS, {\n [DROPDOWN_ELEMENT_ACTIVE_CLASS]: selected,\n [DROPDOWN_ELEMENT_DISABLED_CLASS]: disabled,\n });\n\n return (\n <li\n aria-disabled={disabled}\n aria-selected={selected}\n className={itemClassName}\n data-disabled={dataDisabled}\n data-value={item.id}\n onClick={onSelect}\n onKeyDown={onKeyDown}\n title={item.name}\n role=\"option\"\n tabIndex={-1}\n >\n {renderListItem({\n item,\n multiSelect,\n selected,\n contentClassName: DROPDOWN_ELEMENT_CONTENT_CLASS,\n iconClassName: DROPDOWN_ELEMENT_ICON_CLASS,\n })}\n </li>\n );\n};\n\nexport default memo(SelectListItem);\n","import { mediaQueries, useResponsiveViewport } from '../../../../external/TransactionsOverview/hooks/useResponsiveViewport';\nimport Popover from '../../../Popover/Popover';\nimport { PopoverContainerPosition, PopoverContainerSize, PopoverContainerVariant, PopoverProps } from '../../../Popover/types';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport { boolOrFalse, isFunction } from '../../../../../utils';\nimport { fixedForwardRef } from '../../../../../utils/preact';\nimport cx from 'classnames';\nimport { ForwardedRef, memo } from 'preact/compat';\nimport { useMemo } from 'preact/hooks';\nimport { DROPDOWN_ELEMENT_CLASS, DROPDOWN_ELEMENT_NO_OPTION_CLASS, DROPDOWN_LIST_ACTIVE_CLASS, DROPDOWN_LIST_CLASS } from '../constants';\nimport type { SelectItem, SelectListProps } from '../types';\nimport SelectListItem, { renderListItemDefault } from './SelectListItem';\n\nconst SelectList = fixedForwardRef(\n <T extends SelectItem>(\n {\n active,\n commitActions,\n items,\n multiSelect,\n onKeyDown,\n onSelect,\n renderListItem,\n selectListId,\n showList,\n textFilter,\n toggleButtonRef,\n dismissPopover,\n setToTargetWidth,\n popoverClassNameModifiers,\n showOverlay,\n fitPosition,\n }: SelectListProps<T>,\n ref: ForwardedRef<HTMLUListElement>\n ) => {\n const { i18n } = useCoreContext();\n const isSmViewport = useResponsiveViewport(mediaQueries.down.xs);\n const filteredItems = items.filter(item => !textFilter || item.name.toLowerCase().includes(textFilter));\n const listClassName = cx(DROPDOWN_LIST_CLASS, { [DROPDOWN_LIST_ACTIVE_CLASS]: showList });\n const noOptionsClassName = cx(DROPDOWN_ELEMENT_CLASS, DROPDOWN_ELEMENT_NO_OPTION_CLASS);\n const renderSelectOption = useMemo(() => (isFunction(renderListItem) ? renderListItem : renderListItemDefault), [renderListItem]);\n const multipleSelection = useMemo(() => boolOrFalse(multiSelect), [multiSelect]);\n\n return showList ? (\n <Popover\n classNameModifiers={popoverClassNameModifiers}\n actions={multipleSelection ? commitActions : undefined}\n disableFocusTrap={true}\n divider={true}\n dismiss={dismissPopover}\n dismissible={false}\n open={showList}\n setToTargetWidth={setToTargetWidth}\n containerSize={PopoverContainerSize.MEDIUM}\n variant={PopoverContainerVariant.POPOVER}\n targetElement={toggleButtonRef as PopoverProps['targetElement']}\n withContentPadding={false}\n position={PopoverContainerPosition.BOTTOM}\n showOverlay={showOverlay && isSmViewport}\n fitPosition={fitPosition}\n >\n <ul className={listClassName} id={selectListId} ref={ref} role=\"listbox\" aria-multiselectable={multipleSelection}>\n {filteredItems.length ? (\n filteredItems.map(item => {\n return (\n <SelectListItem\n item={item}\n key={item.id}\n multiSelect={multipleSelection}\n onKeyDown={onKeyDown}\n onSelect={onSelect}\n renderListItem={renderSelectOption}\n selected={active.includes(item)}\n />\n );\n })\n ) : (\n <div className={noOptionsClassName}>{i18n.get('select.noOptionsFound')}</div>\n )}\n </ul>\n </Popover>\n ) : null;\n }\n);\n\nexport default memo(SelectList);\n","import { useCallback, useEffect, useState } from 'preact/hooks';\nimport { EMPTY_ARRAY } from '../../../../../utils';\nimport { SelectItem, SelectProps } from '../types';\n\nconst useSelect = <T extends SelectItem>({ items, multiSelect, selected }: Pick<SelectProps<T>, 'items' | 'multiSelect' | 'selected'>) => {\n const getSelectedItems = useCallback(\n (selectedItems: typeof selected = EMPTY_ARRAY) => {\n const _selected = (EMPTY_ARRAY as readonly T['id'][]).concat(selectedItems ?? EMPTY_ARRAY).filter(Boolean);\n const _selectedItems = items.filter(item => _selected.includes(item.id));\n const selection = multiSelect ? _selectedItems : _selectedItems.slice(0, 1);\n return selection.length ? Object.freeze(selection) : EMPTY_ARRAY;\n },\n [items, multiSelect]\n );\n\n const [selection, setSelection] = useState(getSelectedItems(selected));\n\n const resetSelection = useCallback(\n (selection: readonly T[] | T[] = EMPTY_ARRAY) => {\n const nextSelection = selection.filter(item => items.includes(item));\n setSelection(nextSelection.length ? Object.freeze(nextSelection) : EMPTY_ARRAY);\n },\n [items, setSelection]\n );\n\n const select = useCallback(\n (item: T) => {\n setSelection(currentSelection => {\n const index = currentSelection.indexOf(item);\n\n // Item not already selected\n if (index < 0) return Object.freeze(((multiSelect ? currentSelection : EMPTY_ARRAY) as readonly T[]).concat(item));\n\n // Item is current selection\n if (!multiSelect) return currentSelection;\n\n // Item should be deselected\n const nextSelection = [...currentSelection];\n nextSelection.splice(index, 1);\n return nextSelection.length ? Object.freeze(nextSelection) : EMPTY_ARRAY;\n });\n },\n [multiSelect, setSelection]\n );\n\n useEffect(() => setSelection(getSelectedItems(selected)), [getSelectedItems, selected, setSelection]);\n\n return { resetSelection, select, selection } as const;\n};\n\nexport default useSelect;\n","import cx from 'classnames';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { InteractionKeyCode } from '../../../types';\nimport { ARIA_ERROR_SUFFIX } from '../../../../core/Errors/constants';\nimport { boolOrFalse, EMPTY_ARRAY, noop, uuid } from '../../../../utils';\nimport useCommitAction, { CommitAction } from '../../../../hooks/useCommitAction';\nimport SelectButton from './components/SelectButton';\nimport SelectList from './components/SelectList';\nimport useSelect from './hooks/useSelect';\nimport { DROPDOWN_BASE_CLASS, DROPDOWN_MULTI_SELECT_CLASS } from './constants';\nimport { SelectItem, SelectProps } from './types';\nimport './Select.scss';\n\n// [TODO]: Revisit this component logic — for handling user interaction\nconst Select = <T extends SelectItem>({\n className,\n classNameModifiers = EMPTY_ARRAY as [],\n popoverClassNameModifiers,\n items = EMPTY_ARRAY as readonly T[],\n filterable = false,\n multiSelect = false,\n readonly = false,\n onChange = noop,\n selected,\n name,\n isInvalid,\n isValid,\n placeholder,\n uniqueId,\n renderListItem,\n isCollatingErrors,\n setToTargetWidth,\n withoutCollapseIndicator = false,\n showOverlay = false,\n fitPosition,\n}: SelectProps<T>) => {\n const { resetSelection, select, selection } = useSelect({ items, multiSelect, selected });\n const [showList, setShowList] = useState<boolean>(false);\n const [textFilter, setTextFilter] = useState<string>('');\n const filterInputRef = useRef<HTMLInputElement>(null);\n const selectListRef = useRef<HTMLUListElement>(null);\n const toggleButtonRef = useRef<HTMLButtonElement>(null);\n const selectListId = useRef(`select-${uuid()}`);\n const [appliedFilterNumber, setAppliedFilterNumber] = useState(0);\n\n const autoFocusAnimFrame = useRef<ReturnType<typeof requestAnimationFrame>>();\n const pendingClickOutsideTriggeredHideList = useRef(true);\n const clearSelectionInProgress = useRef(false);\n const cachedSelectedItems = useRef(selection);\n const selectedItems = useRef(selection);\n\n const dismissPopover = useCallback(() => {\n setTextFilter('');\n setShowList(false);\n if (showList) {\n resetSelection(cachedSelectedItems.current);\n pendingClickOutsideTriggeredHideList.current = true;\n }\n }, [resetSelection, setShowList, setTextFilter, showList]);\n\n //TODO: Clarify and delete this\n // const selectContainerRef = useClickOutside(\n // useRef<HTMLDivElement>(null),\n // useCallback(() => {\n // setTextFilter('');\n // setShowList(false);\n // if (showList) {\n // resetSelection(cachedSelectedItems.current);\n // pendingClickOutsideTriggeredHideList.current = true;\n // }\n // }, [resetSelection, showList, setShowList, setTextFilter])\n // );\n\n const dropdownClassName = useMemo(\n () =>\n cx([\n DROPDOWN_BASE_CLASS,\n { [DROPDOWN_MULTI_SELECT_CLASS]: boolOrFalse(multiSelect) },\n ...classNameModifiers.map(mod => `${DROPDOWN_BASE_CLASS}--${mod}`),\n className,\n ]),\n [className, classNameModifiers, multiSelect]\n );\n\n const { commitAction, commitActionButtons, committing, resetCommitAction } = useCommitAction({\n resetDisabled: !selection.length,\n });\n\n /**\n * Closes the select list:\n * - empties the text filter\n * - restores focus to the select button element (?)\n */\n const closeList = useCallback(() => {\n setTextFilter('');\n setShowList(false);\n resetCommitAction();\n\n if (!pendingClickOutsideTriggeredHideList.current) {\n toggleButtonRef.current?.focus();\n } else pendingClickOutsideTriggeredHideList.current = false;\n }, [resetCommitAction, setShowList, setTextFilter]);\n\n const commitSelection = useCallback(() => {\n cachedSelectedItems.current = selection;\n const value = `${selection.map(({ id }) => id)}`;\n onChange({ target: { value, name } });\n }, [name, onChange, selection]);\n\n useEffect(() => {\n switch (commitAction) {\n case CommitAction.APPLY:\n commitSelection();\n break;\n case CommitAction.CLEAR:\n resetSelection();\n clearSelectionInProgress.current = true;\n break;\n }\n }, [commitAction, commitSelection, resetSelection]);\n\n /**\n * Closes the select list and fires an onChange\n * @param e - Event\n */\n const handleSelect = useCallback(\n (e: Event) => {\n e.preventDefault();\n\n // If the target is not one of the list items, select the first list item\n const target: HTMLUListElement | undefined | null =\n e.currentTarget && selectListRef?.current?.contains(e.currentTarget as HTMLUListElement)\n ? (e.currentTarget as HTMLUListElement)\n : null; // (selectListRef?.current?.firstElementChild as HTMLUListElement);\n\n if (target && !target.getAttribute('data-disabled')) {\n const value = target.getAttribute('data-value');\n const item = items.find(item => item.id === value)!;\n select(item);\n }\n },\n [items, select]\n );\n\n useEffect(() => {\n if (selectedItems.current !== selection) {\n selectedItems.current = selection;\n if (!multiSelect || clearSelectionInProgress.current) {\n commitSelection();\n closeList();\n }\n }\n clearSelectionInProgress.current = false;\n }, [closeList, commitSelection, multiSelect, selection]);\n\n useEffect(() => {\n if (committing) {\n setAppliedFilterNumber(selection.length);\n closeList();\n }\n }, [committing, closeList, setAppliedFilterNumber, selection.length]);\n\n /**\n * Handle keyDown events on the selectList button\n * Opens the selectList and focuses the first element if available\n * @param evt {KeyboardEvent}\n */\n const handleButtonKeyDown = useCallback(\n (evt: KeyboardEvent) => {\n switch (evt.code) {\n case InteractionKeyCode.ESCAPE:\n case InteractionKeyCode.TAB:\n /**\n * Implementation notes ({@link https://w3c.github.io/aria-practices/examples/disclosure/disclosure-navigation.html article}):\n * - When user has focused select button but not yet moved into select list, close list and keep focus on the select button\n * - Shift+Tab out of select should close list\n */\n showList && closeList();\n pendingClickOutsideTriggeredHideList.current = evt.key === InteractionKeyCode.TAB;\n return;\n case InteractionKeyCode.ENTER:\n case InteractionKeyCode.SPACE:\n if (filterable && showList) {\n if (evt.key === InteractionKeyCode.ENTER) {\n if (textFilter) handleSelect(evt);\n else break;\n }\n return;\n }\n break;\n case InteractionKeyCode.ARROW_DOWN:\n case InteractionKeyCode.ARROW_UP:\n break;\n default:\n return;\n }\n\n evt.preventDefault();\n setShowList(true);\n },\n [closeList, filterable, handleSelect, showList, setShowList, textFilter]\n );\n\n useEffect(() => {\n if (showList) {\n cancelAnimationFrame(autoFocusAnimFrame.current!);\n\n autoFocusAnimFrame.current = requestAnimationFrame(() => {\n focus: {\n let item = selectListRef.current?.firstElementChild as HTMLLIElement;\n let firstAvailableItem: typeof item | undefined;\n\n while (item) {\n if (!(item.dataset.disabled && item.dataset.disabled === 'true')) {\n if (item.getAttribute('aria-selected') === 'true') {\n item.focus();\n break focus;\n }\n firstAvailableItem = firstAvailableItem || item;\n }\n item = item.nextElementSibling as HTMLLIElement;\n }\n\n if (firstAvailableItem) firstAvailableItem.focus();\n }\n });\n }\n }, [showList]);\n\n /**\n * Handle keyDown events on the list elements\n * Navigates through the list, or select an element, or focus the filter input, or close the menu.\n * @param e - KeyDownEvent\n */\n const handleListKeyDown = useCallback(\n (evt: KeyboardEvent) => {\n const target = evt.target as HTMLInputElement;\n\n switch (evt.code) {\n case InteractionKeyCode.ESCAPE:\n evt.preventDefault();\n // When user is actively navigating through list with arrow keys - close list and keep focus on the Select Button re. a11y guidelines (above)\n closeList();\n break;\n case InteractionKeyCode.ENTER:\n case InteractionKeyCode.SPACE:\n handleSelect(evt);\n break;\n case InteractionKeyCode.ARROW_DOWN: {\n evt.preventDefault();\n let item = target.nextElementSibling as HTMLLIElement;\n while (item) {\n if (!(item.dataset.disabled && item.dataset.disabled === 'true')) {\n item.focus();\n break;\n }\n item = item.nextElementSibling as HTMLLIElement;\n }\n break;\n }\n case InteractionKeyCode.ARROW_UP: {\n evt.preventDefault();\n focus: {\n let item = target.previousElementSibling as HTMLLIElement;\n while (item) {\n if (!(item.dataset.disabled && item.dataset.disabled === 'true')) {\n item.focus();\n break focus;\n }\n item = item.previousElementSibling as HTMLLIElement;\n }\n if (filterable && filterInputRef.current) {\n filterInputRef.current.focus();\n }\n }\n break;\n }\n case InteractionKeyCode.TAB:\n closeList();\n break;\n default:\n }\n },\n [closeList, filterable, handleSelect]\n );\n\n /**\n * Updates the state with the current text filter value\n * @param e - KeyboardEvent\n */\n const handleTextFilter = useCallback(\n (e: Event) => {\n const value: string = (e.target as HTMLInputElement).value;\n setTextFilter(value.toLowerCase());\n },\n [setTextFilter]\n );\n\n /**\n * Toggles the selectList and focuses in either the filter input or in the selectList button\n * @param e - Event\n */\n const toggleList = useCallback(\n (e: Event) => {\n e.preventDefault();\n setShowList(showList => !showList);\n showList && resetSelection(cachedSelectedItems.current);\n },\n [setShowList, showList, resetSelection]\n );\n\n useEffect(() => {\n if (showList && filterable) {\n filterInputRef.current?.focus();\n }\n }, [filterable, showList]);\n\n return (\n <div className={dropdownClassName}>\n <SelectButton\n id={uniqueId ?? undefined}\n appliedFilterNumber={appliedFilterNumber}\n active={selection}\n filterInputRef={filterInputRef}\n filterable={filterable}\n isInvalid={isInvalid}\n isValid={isValid}\n onButtonKeyDown={handleButtonKeyDown}\n onInput={handleTextFilter}\n multiSelect={multiSelect}\n placeholder={placeholder}\n readonly={readonly}\n selectListId={selectListId.current}\n showList={showList}\n toggleButtonRef={toggleButtonRef}\n toggleList={toggleList}\n withoutCollapseIndicator={withoutCollapseIndicator}\n ariaDescribedBy={!isCollatingErrors && uniqueId ? `${uniqueId}${ARIA_ERROR_SUFFIX}` : ''}\n />\n <SelectList\n popoverClassNameModifiers={popoverClassNameModifiers}\n setToTargetWidth={setToTargetWidth}\n dismissPopover={dismissPopover}\n active={selection}\n commitActions={commitActionButtons}\n items={items}\n multiSelect={multiSelect}\n onKeyDown={handleListKeyDown}\n onSelect={handleSelect}\n selectListId={selectListId.current}\n ref={selectListRef}\n toggleButtonRef={toggleButtonRef}\n renderListItem={renderListItem}\n showList={showList}\n showOverlay={showOverlay}\n textFilter={textFilter}\n fitPosition={fitPosition}\n />\n </div>\n );\n};\n\nexport default Select;\n","import { Ref } from 'preact';\nimport { SVGProps } from 'preact/compat';\nimport { fixedForwardRef } from '../../../utils/preact';\n\nconst ChevronLeft = fixedForwardRef(({ title, ...props }: Omit<SVGProps<SVGElement>, 'ref'>, ref: Ref<SVGSVGElement>) => (\n <svg {...props} ref={ref} width=\"7\" height=\"10\" viewBox=\"0 0 6 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n {title && <title>{title}</title>}\n\n <path\n d=\"M5.56077 2.00011L2.56077 5.00011L5.56077 8.00011L4.50011 9.06077L0.439453 5.00011L4.50011 0.939453L5.56077 2.00011Z\"\n fill={props.disabled ? '#8D95A3' : '#00112C'}\n />\n </svg>\n));\n\nexport default ChevronLeft;\n","import { Ref } from 'preact';\nimport { SVGProps } from 'preact/compat';\nimport { fixedForwardRef } from '../../../utils/preact';\n\nconst ChevronRight = fixedForwardRef(({ title, ...props }: Omit<SVGProps<SVGElement>, 'ref'>, ref: Ref<SVGSVGElement>) => (\n <svg {...props} ref={ref} width=\"7\" height=\"10\" viewBox=\"0 0 6 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n {title && <title>{title}</title>}\n <path\n d=\"M0.439453 7.9999L3.43945 4.9999L0.439454 1.9999L1.50011 0.93924L5.56077 4.9999L1.50011 9.06056L0.439453 7.9999Z\"\n fill={props.disabled ? '#8D95A3' : '#00112C'}\n />\n </svg>\n));\n\nexport default ChevronRight;\n","import { ButtonVariant } from '../Button/types';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport { EMPTY_ARRAY, isNullish } from '../../../utils';\nimport classnames from 'classnames';\nimport { useCallback, useMemo } from 'preact/hooks';\nimport Button from '../Button';\nimport './Pagination.scss';\nimport { PaginationProps } from './types';\nimport Select from '../FormFields/Select';\nimport { SelectItem } from '../FormFields/Select/types';\nimport ChevronLeft from '../SVGIcons/ChevronLeft';\nimport ChevronRight from '../SVGIcons/ChevronRight';\n\nexport default function Pagination({ next, hasNext, hasPrev, page, prev, limit, limitOptions, onLimitSelection }: PaginationProps) {\n const { i18n } = useCoreContext();\n\n const _limitOptions = useMemo(\n () => limitOptions && Object.freeze(limitOptions.map(option => ({ id: `${option}`, name: `${option}` } as SelectItem))),\n [limitOptions]\n );\n\n const _onLimitChanged = useCallback(\n ({ target }: any) => {\n if (isNullish(target?.value)) return;\n onLimitSelection?.(+target.value);\n },\n [onLimitSelection]\n );\n\n return (\n <div aria-label={i18n.get('paginatedNavigation')} className={`adyen-pe-pagination ${classnames({})}`}>\n <div className=\"adyen-pe-pagination__context\">\n <span>\n {i18n.get('pagination.showing')} {page}\n </span>\n {_limitOptions && onLimitSelection && (\n <div className=\"adyen-pe-pagination__limit-selector\">\n <Select\n setToTargetWidth={true}\n filterable={false}\n multiSelect={false}\n items={_limitOptions}\n onChange={_onLimitChanged}\n selected={`${limit ?? ''}`}\n />\n </div>\n )}\n </div>\n\n <div className=\"adyen-pe-pagination__controls\">\n <Button\n aria-label={i18n.get('pagination.previousPage')}\n variant={ButtonVariant.TERTIARY}\n disabled={!hasPrev}\n iconButton={true}\n classNameModifiers={['circle'].concat(hasPrev ? EMPTY_ARRAY : 'disabled')}\n onClick={prev}\n >\n <ChevronLeft disabled={!hasPrev} />\n </Button>\n <Button\n aria-label={i18n.get('pagination.nextPage')}\n variant={ButtonVariant.TERTIARY}\n disabled={!hasNext}\n iconButton={true}\n classNameModifiers={['circle'].concat(hasNext ? EMPTY_ARRAY : 'disabled')}\n onClick={next}\n >\n <ChevronRight disabled={!hasNext} />\n </Button>\n </div>\n </div>\n );\n}\n","export const BASE_CLASS = 'adyen-pe-transactions-table';\nexport const AMOUNT_CLASS = BASE_CLASS + '__amount';\nexport const PAYMENT_METHOD_CLASS = BASE_CLASS + '__payment-method';\nexport const PAYMENT_METHOD_LOGO_CONTAINER_CLASS = BASE_CLASS + '__payment-method-logo-container';\nexport const PAYMENT_METHOD_LOGO_CLASS = BASE_CLASS + '__payment-method-logo';\nexport const DATE_AND_PAYMENT_METHOD_CLASS = BASE_CLASS + '__date-and-payment-method';\n","import { PAYMENT_METHOD_CLASS, PAYMENT_METHOD_LOGO_CLASS, PAYMENT_METHOD_LOGO_CONTAINER_CLASS } from './constants';\nimport { Image } from '../../../../internal/Image/Image';\nimport { parsePaymentMethodType } from '../utils';\nimport { ITransaction } from '../../../../../types';\nimport { Tag } from '../../../../internal/Tag/Tag';\nimport { TagVariant } from '../../../../internal/Tag/types';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\n\nconst PaymentMethodCell = ({\n paymentMethod,\n bankAccount,\n}: {\n paymentMethod?: ITransaction['paymentMethod'];\n bankAccount?: ITransaction['bankAccount'];\n}) => {\n const { i18n } = useCoreContext();\n return (\n <div className={PAYMENT_METHOD_CLASS}>\n {paymentMethod || bankAccount ? (\n <>\n <div className={PAYMENT_METHOD_LOGO_CONTAINER_CLASS}>\n <Image\n name={paymentMethod ? paymentMethod.type : 'bankTransfer'}\n alt={paymentMethod ? paymentMethod.type : 'bankTransfer'}\n folder={'logos/'}\n className={PAYMENT_METHOD_LOGO_CLASS}\n />\n </div>\n {paymentMethod ? parsePaymentMethodType(paymentMethod) : bankAccount?.accountNumberLastFourDigits}\n </>\n ) : (\n <Tag label={i18n.get('noData')} variant={TagVariant.WHITE} />\n )}\n </div>\n );\n};\n\nexport default PaymentMethodCell;\n","import Category from '../Category/Category';\nimport DataOverviewError from '../../../../internal/DataOverviewError/DataOverviewError';\nimport { getLabel } from '../../../../utils/getLabel';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport { useCallback, useMemo, useState } from 'preact/hooks';\nimport DataGrid from '../../../../internal/DataGrid';\nimport Pagination from '../../../../internal/Pagination';\nimport { CellTextPosition } from '../../../../internal/DataGrid/types';\nimport { TranslationKey } from '../../../../../core/Localization/types';\nimport { getCurrencyCode } from '../../../../../core/Localization/amount/amount-util';\nimport { AMOUNT_CLASS, BASE_CLASS, DATE_AND_PAYMENT_METHOD_CLASS } from './constants';\nimport './TransactionTable.scss';\nimport { mediaQueries, useResponsiveViewport } from '../../hooks/useResponsiveViewport';\nimport { FC } from 'preact/compat';\nimport { TransactionTableProps } from './types';\nimport PaymentMethodCell from './PaymentMethodCell';\n\n// Remove status column temporarily\n// const FIELDS = ['createdAt', 'status', 'paymentMethod', 'transactionType', 'amount'] as const;\nconst FIELDS = ['dateAndPaymentMethod', 'createdAt', 'paymentMethod', 'transactionType', 'amount'] as const;\ntype FieldsType = (typeof FIELDS)[number];\n\nexport const TransactionsTable: FC<TransactionTableProps> = ({\n availableCurrencies,\n error,\n hasMultipleCurrencies,\n loading,\n onContactSupport,\n onRowClick,\n showDetails,\n showPagination,\n transactions,\n ...paginationProps\n}) => {\n const { i18n } = useCoreContext();\n const [hoveredRow, setHoveredRow] = useState<undefined | number>();\n const isSmAndUpViewport = useResponsiveViewport(mediaQueries.up.sm);\n const isMdAndUpViewport = useResponsiveViewport(mediaQueries.up.md);\n const isXsAndDownViewport = useResponsiveViewport(mediaQueries.down.xs);\n\n const fieldsVisibility: Partial<Record<FieldsType, boolean>> = useMemo(\n () => ({\n dateAndPaymentMethod: isXsAndDownViewport,\n createdAt: isSmAndUpViewport,\n transactionType: isMdAndUpViewport,\n paymentMethod: isSmAndUpViewport,\n }),\n [isXsAndDownViewport, isSmAndUpViewport, isMdAndUpViewport]\n );\n\n const columns = useMemo(\n () =>\n FIELDS.map(key => {\n const label = i18n.get(getLabel(key));\n if (key === 'amount') {\n return {\n key,\n label: hasMultipleCurrencies\n ? label\n : `${label} ${availableCurrencies && availableCurrencies[0] ? `(${getCurrencyCode(availableCurrencies[0])})` : ''}`,\n position: key === 'amount' ? CellTextPosition.RIGHT : undefined,\n flex: isSmAndUpViewport ? 1.5 : undefined,\n };\n }\n\n return { key, label, visible: fieldsVisibility[key] };\n }),\n [availableCurrencies, fieldsVisibility, hasMultipleCurrencies, i18n, isSmAndUpViewport]\n );\n\n const EMPTY_TABLE_MESSAGE = {\n title: 'noTransactionsFound',\n message: ['tryDifferentSearchOrResetYourFiltersAndWeWillTryAgain'],\n } satisfies { title: TranslationKey; message: TranslationKey | TranslationKey[] };\n\n const onHover = useCallback(\n (index?: number) => {\n setHoveredRow(index ?? undefined);\n },\n [setHoveredRow]\n );\n\n const errorDisplay = useMemo(\n () => () => <DataOverviewError error={error} onContactSupport={onContactSupport} errorMessage={'weCouldNotLoadYourTransactions'} />,\n [error, onContactSupport]\n );\n\n return (\n <div className={BASE_CLASS}>\n <DataGrid\n errorDisplay={errorDisplay}\n error={error}\n columns={columns}\n data={transactions}\n loading={loading}\n outline={false}\n onRowClick={{ callback: onRowClick }}\n onRowHover={onHover}\n emptyTableMessage={EMPTY_TABLE_MESSAGE}\n customCells={{\n // Remove status column temporarily\n /* status: ({ value }) => {\n return (\n <Tag\n label={i18n.get(value)}\n variant={value === 'Booked' ? TagVariant.SUCCESS : value === 'Reversed' ? TagVariant.ERROR : TagVariant.DEFAULT}\n />\n );\n },*/\n dateAndPaymentMethod: ({ item }) => {\n return (\n <div className={DATE_AND_PAYMENT_METHOD_CLASS}>\n <PaymentMethodCell paymentMethod={item.paymentMethod} bankAccount={item.bankAccount} />\n <span className={DATE_AND_PAYMENT_METHOD_CLASS}>\n {i18n.date(item.createdAt, {\n month: 'short',\n day: 'numeric',\n year: undefined,\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n })}\n </span>\n </div>\n );\n },\n transactionType: ({ item, rowIndex }) => {\n const tooltipKey = `tooltip.${item.category}`;\n return item.category ? (\n i18n.has(tooltipKey) ? (\n <Category value={item.category} isContainerHovered={rowIndex === hoveredRow} />\n ) : (\n item.category\n )\n ) : null;\n },\n createdAt: ({ value }) => <span>{i18n.fullDate(value)}</span>,\n amount: ({ value }) => {\n const amount = i18n.amount(value.value, value.currency, { hideCurrency: !hasMultipleCurrencies });\n return <span className={AMOUNT_CLASS}>{amount}</span>;\n },\n paymentMethod: ({ item }) => <PaymentMethodCell paymentMethod={item.paymentMethod} bankAccount={item.bankAccount} />,\n }}\n >\n {showPagination && (\n <DataGrid.Footer>\n <Pagination {...paginationProps} />\n </DataGrid.Footer>\n )}\n </DataGrid>\n </div>\n );\n};\n","import { capitalize } from '../../utils';\nimport { useCallback, useMemo, useState } from 'preact/hooks';\nimport type { SelectItem } from '../internal/FormFields/Select/types';\nimport type { IBalanceAccountBase } from '../../types';\n\nconst useBalanceAccountSelection = (balanceAccounts?: IBalanceAccountBase[]) => {\n const [selectedBalanceAccountIndex, setSelectedBalanceAccountIndex] = useState(0);\n const resetBalanceAccountSelection = useCallback(() => setSelectedBalanceAccountIndex(0), [setSelectedBalanceAccountIndex]);\n\n const activeBalanceAccount = useMemo(() => {\n return balanceAccounts?.[selectedBalanceAccountIndex];\n }, [balanceAccounts, selectedBalanceAccountIndex]);\n\n const balanceAccountSelectionOptions = useMemo(\n () =>\n balanceAccounts && balanceAccounts.length > 1\n ? Object.freeze(balanceAccounts.map(({ description, id }) => ({ id, name: capitalize(description) } as SelectItem)))\n : undefined,\n [balanceAccounts]\n );\n\n const onBalanceAccountSelection = useCallback(\n ({ target }: any) => {\n const balanceAccountId = target?.value;\n const index = balanceAccounts?.findIndex(({ id }) => id === balanceAccountId);\n if (index! >= 0) setSelectedBalanceAccountIndex(index!);\n },\n [balanceAccounts, setSelectedBalanceAccountIndex]\n );\n\n return { activeBalanceAccount, balanceAccountSelectionOptions, onBalanceAccountSelection, resetBalanceAccountSelection } as const;\n};\n\nexport default useBalanceAccountSelection;\n","import useBalanceAccountSelection from '../../../../hooks/useBalanceAccountSelection';\nimport { memo } from 'preact/compat';\nimport { useCallback } from 'preact/hooks';\nimport Select from '../../Select';\nimport { mediaQueries, useResponsiveViewport } from '../../../../external/TransactionsOverview/hooks/useResponsiveViewport';\nimport { renderDefaultSingleSelectionCheckedness } from '../components/SelectListItem';\nimport { SelectItem, SelectProps } from '../types';\nimport './BalanceAccountSelector.scss';\n\ntype _GetRenderListItemType<T> = T extends Readonly<SelectItem[]> ? NonNullable<SelectProps<T[number]>['renderListItem']> : never;\n\nconst BA_SELECTOR_CLASS = 'adyen-pe-balance-account-selector';\nconst BA_SELECTOR_ACCOUNT_ID_CLASS = `${BA_SELECTOR_CLASS}__account-id` as const;\nconst BA_SELECTOR_ACCOUNT_LABEL_CLASS = `${BA_SELECTOR_CLASS}__account-label` as const;\n\nconst BalanceAccountSelector = memo(\n ({\n activeBalanceAccount,\n balanceAccountSelectionOptions,\n onBalanceAccountSelection,\n }: Omit<ReturnType<typeof useBalanceAccountSelection>, 'resetBalanceAccountSelection'>) => {\n const isSmViewport = useResponsiveViewport(mediaQueries.down.xs);\n\n const renderListItem = useCallback<_GetRenderListItemType<typeof balanceAccountSelectionOptions>>(\n data => (\n <>\n <div className={data.contentClassName}>\n {data.item.name && <span className={BA_SELECTOR_ACCOUNT_LABEL_CLASS}>{data.item.name}</span>}\n <span className={BA_SELECTOR_ACCOUNT_ID_CLASS}>{data.item.id}</span>\n </div>\n {renderDefaultSingleSelectionCheckedness(data)}\n </>\n ),\n []\n );\n\n return balanceAccountSelectionOptions && balanceAccountSelectionOptions.length > 1 ? (\n <Select\n popoverClassNameModifiers={[BA_SELECTOR_CLASS]}\n onChange={onBalanceAccountSelection}\n filterable={false}\n multiSelect={false}\n selected={activeBalanceAccount?.id}\n withoutCollapseIndicator={true}\n items={balanceAccountSelectionOptions}\n renderListItem={renderListItem}\n showOverlay={isSmViewport}\n />\n ) : null;\n }\n);\n\nexport default BalanceAccountSelector;\n","import { useMemo, useRef, useState } from 'preact/hooks';\nimport restamper, { RestampContext } from '../../../../core/Localization/datetime/restamper';\nimport { getGMTSuffixForTimezoneOffset, getTimezoneOffsetFromFormattedDateString } from '../../../../core/Localization/datetime/restamper/utils';\nimport { isWatchlistUnsubscribeToken } from '../../../../primitives/reactive/watchlist';\nimport { boolOrFalse, EMPTY_ARRAY, EMPTY_OBJECT, noop } from '../../../../utils';\nimport clock from '../../../../primitives/time/clock';\n\nexport type UseTimezoneConfig = {\n timezone?: RestampContext['TIMEZONE'];\n withClock?: boolean;\n};\n\nexport const { getTimezoneTime, getUsedTimezone } = (() => {\n const REGEX_CLOCK_TIME_MATCHER = /(\\d{2}):(\\d{2})(?=:\\d{2}(?:\\.\\d+)?\\s+([AP]M))/i;\n const REGEX_GMT_OFFSET_UNWANTED_SUBSTRINGS = /^GMT|0(?=\\d:00)|:00/g;\n const $restamper = restamper();\n\n const getTimezoneTime = (timezone: RestampContext['TIMEZONE'], timestamp = Date.now()) => {\n $restamper.tz = timezone!; // switch restamper to this timezone\n\n const { formatted } = $restamper(timestamp);\n const [time = '', , , meridian = ''] = formatted?.match(REGEX_CLOCK_TIME_MATCHER) ?? EMPTY_ARRAY;\n const offset = getTimezoneOffsetFromFormattedDateString(formatted);\n const clockTime = `${time}${meridian && ` ${meridian}`}`;\n const GMTOffsetString = getGMTSuffixForTimezoneOffset(offset).replace(REGEX_GMT_OFFSET_UNWANTED_SUBSTRINGS, '');\n\n return [clockTime, GMTOffsetString] as const;\n };\n\n const getUsedTimezone = (timezone?: RestampContext['TIMEZONE']) => {\n $restamper.tz = timezone;\n return $restamper.tz.current!;\n };\n\n return { getTimezoneTime, getUsedTimezone } as const;\n})();\n\nconst useTimezone = ({ timezone: tz, withClock = false }: UseTimezoneConfig = EMPTY_OBJECT) => {\n const shouldWatchClock = useMemo(() => boolOrFalse(withClock), [withClock]);\n const timezone = useMemo(() => getUsedTimezone(tz), [tz]);\n const unwatchClock = useRef(noop);\n\n const [timestamp, setTimestamp] = useState(Date.now());\n const [clockTime, GMTOffset] = useMemo(() => getTimezoneTime(timezone, timestamp), [timestamp, timezone]);\n\n useMemo(() => {\n unwatchClock.current();\n\n unwatchClock.current = shouldWatchClock\n ? clock.subscribe(snapshot => {\n if (!isWatchlistUnsubscribeToken(snapshot)) setTimestamp(snapshot.now);\n })\n : noop;\n }, [setTimestamp, shouldWatchClock]);\n\n return { clockTime, GMTOffset, timestamp, timezone } as const;\n};\n\nexport default useTimezone;\n","import { clamp, enumerable, getter, hasOwnProperty, isBitSafeInteger, isFunction, isNullish, isUndefined, struct } from '../../../../../utils';\nimport type { WeekDay } from '../types';\nimport type {\n RangeTimestamp,\n RangeTimestampOffsets,\n RangeTimestamps,\n RangeTimestampsConfig,\n RangeTimestampsConfigContext,\n RangeTimestampsConfigParameter,\n RangeTimestampsConfigParameterValue,\n RangeTimestampsConfigRestampingContext,\n RangeTimestampsConfigWithFromOffsets,\n RangeTimestampsConfigWithoutOffsets,\n} from './types';\nimport { Restamper, RestamperWithTimezone, systemToTimezone, timezoneToSystem } from '../../../../../core/Localization/datetime/restamper';\n\nexport const createRangeTimestampsConfigRestampingContext = (restamper: RestamperWithTimezone) =>\n Object.freeze({\n systemToTimezone: enumerable((time?: Parameters<Restamper>[0]) => systemToTimezone(restamper, time)),\n timezoneToSystem: enumerable((time?: Parameters<Restamper>[0]) => timezoneToSystem(restamper, time)),\n timezoneOffset: enumerable((time?: Parameters<Restamper>[0]) => restamper(time).offset),\n }) as { [P in keyof RangeTimestampsConfigRestampingContext]: TypedPropertyDescriptor<RangeTimestampsConfigRestampingContext[P]> };\n\nexport const getRangeTimestampsContextIntegerPropertyFactory = <T extends number = number>(\n minInteger: T,\n maxInteger: T,\n defaultInteger: T = minInteger\n) => {\n const _getNormalizedValue = (value?: T | null, fallbackValue?: T) => {\n let normalizedValue = value as T;\n\n if (isNullish(value)) normalizedValue = defaultInteger;\n else if (!isBitSafeInteger(value)) normalizedValue = fallbackValue ?? defaultInteger;\n\n const clampedValue = clamp(minInteger, normalizedValue, maxInteger) as T;\n return clampedValue === normalizedValue ? clampedValue : fallbackValue ?? defaultInteger;\n };\n\n return (initialValue?: T) => {\n const valueGetter = getter(() => normalizedValue);\n let normalizedValue = _getNormalizedValue(initialValue);\n\n return struct({\n value: valueGetter,\n descriptor: enumerable({\n ...valueGetter,\n set(this: RangeTimestamps, value?: T | null) {\n const currentValue = normalizedValue;\n normalizedValue = _getNormalizedValue(value, normalizedValue);\n if (currentValue !== normalizedValue) this.now = this.now;\n },\n }),\n }) as Readonly<{\n value: T;\n descriptor: TypedPropertyDescriptor<T>;\n }>;\n };\n};\n\nexport const getRangeTimestampsConfigParameterUnwrapper =\n (config: RangeTimestampsConfig, context: RangeTimestampsConfigContext) =>\n <T = {}>(value: T): RangeTimestampsConfigParameterValue<T> =>\n isFunction(value) ? value.call(config, context) : value;\n\nexport const isRangeTimestampsConfigWithoutOffsets = (config: RangeTimestampsConfig): config is RangeTimestampsConfigWithoutOffsets =>\n !hasOwnProperty(config, 'offsets');\n\nexport const isRangeTimestampsConfigWithFromOffsets = (\n config: Exclude<RangeTimestampsConfig, RangeTimestampsConfigWithoutOffsets>\n): config is RangeTimestampsConfigWithFromOffsets => hasOwnProperty(config, 'from');\n\nexport const nowTimestamp = (({ now }) => now) satisfies RangeTimestampsConfigParameter<RangeTimestamp>;\n\nexport const offsetsForNDays = (() => {\n const _cache = new Map<number, RangeTimestampOffsets>();\n\n return (numberOfDays: number) => {\n let offsets = _cache.get(numberOfDays);\n\n if (isUndefined(offsets)) {\n offsets = Object.freeze([0, 0, numberOfDays, 0, 0, 0, -1] as const);\n _cache.set(numberOfDays, offsets);\n }\n\n return offsets;\n };\n})();\n\nexport const parseRangeTimestamp = (timestamp: Date | RangeTimestamp): RangeTimestamp | undefined => {\n try {\n const normalizedTimestamp = timestamp instanceof Date || +timestamp === timestamp ? timestamp : undefined;\n const parsedTimestamp = new Date(normalizedTimestamp as RangeTimestamp).getTime();\n return isNaN(parsedTimestamp) ? undefined : parsedTimestamp;\n } catch {\n /* ignore any parsing exception and implicitly return `undefined` */\n }\n};\n\nexport const startOfDay = (date: Date) => date.setHours(0, 0, 0, 0);\n\nexport const startOfMonth = (date: Date) => {\n startOfDay(date);\n return date.setDate(1);\n};\n\nexport const startOfYear = (date: Date) => {\n startOfDay(date);\n return date.setMonth(0, 1);\n};\n\nexport const startOfWeekOffset = (firstWeekDay: WeekDay, weekDay: WeekDay = firstWeekDay) => {\n const offset = (((-weekDay % 7) + (firstWeekDay - 7)) % 7) as 0 | -1 | -2 | -3 | -4 | -5 | -6;\n return 0 + offset; // {0 + expression} => corrects -0 to 0\n};\n","import { asPlainObject, EMPTY_OBJECT, getter, struct } from '../../../../../utils';\nimport restamper, { RestamperWithTimezone } from '../../../../../core/Localization/datetime/restamper';\nimport type { RangeTimestamp, RangeTimestamps, RangeTimestampsConfig, RangeTimestampsConfigContext } from './types';\nimport {\n createRangeTimestampsConfigRestampingContext,\n getRangeTimestampsConfigParameterUnwrapper,\n isRangeTimestampsConfigWithFromOffsets,\n isRangeTimestampsConfigWithoutOffsets,\n parseRangeTimestamp,\n} from './utils';\n\nconst createRangeTimestampsFactory = <T extends Record<any, any> = {}>(\n config: RangeTimestampsConfig = EMPTY_OBJECT,\n additionalContext: { [P in keyof T]: TypedPropertyDescriptor<T[P]> } = EMPTY_OBJECT\n) => {\n const _config = asPlainObject(config);\n const _additionalContext = asPlainObject(additionalContext);\n\n return () => {\n const _restamper = restamper();\n const nowDescriptor = getter(() => NOW);\n const tzDescriptor = getter(() => _restamper.tz.current);\n const configContext = struct({\n now: nowDescriptor,\n timezone: tzDescriptor,\n ...createRangeTimestampsConfigRestampingContext(_restamper),\n }) as RangeTimestampsConfigContext;\n const unwrap = getRangeTimestampsConfigParameterUnwrapper(_config, configContext);\n\n let { from, to, now: NOW } = EMPTY_OBJECT as RangeTimestamps;\n\n const nowSetter = (timestamp?: Date | RangeTimestamp | null) => {\n NOW = parseRangeTimestamp((timestamp ?? Date.now()) as RangeTimestamp) ?? NOW;\n\n parsing: {\n if (isRangeTimestampsConfigWithoutOffsets(_config)) {\n from = parseRangeTimestamp(unwrap(_config.from)) ?? NOW;\n to = parseRangeTimestamp(unwrap(_config.to)) ?? NOW;\n break parsing;\n }\n\n let date: Date;\n let direction: 1 | -1;\n let withRangeFrom: boolean;\n\n if ((withRangeFrom = isRangeTimestampsConfigWithFromOffsets(_config))) {\n date = new Date((from = parseRangeTimestamp(unwrap(_config.from)) ?? NOW));\n direction = 1;\n } else {\n date = new Date((to = parseRangeTimestamp(unwrap(_config.to)) ?? NOW));\n direction = -1;\n }\n\n // revert timestamp to system timezone ahead of offset operations\n date = new Date(configContext.timezoneToSystem(date));\n\n const [years = 0, months = 0, days = 0, hours = 0, minutes = 0, seconds = 0, ms = 0] = unwrap(_config.offsets);\n\n date.setFullYear(date.getFullYear() + years * direction, date.getMonth() + months * direction, date.getDate() + days * direction);\n\n date.setHours(\n date.getHours() + hours * direction,\n date.getMinutes() + minutes * direction,\n date.getSeconds() + seconds * direction,\n date.getMilliseconds() + ms * direction\n );\n\n // restamp timestamp to current target timezone before update range\n const timestamp = parseRangeTimestamp(configContext.systemToTimezone(date)) ?? NOW;\n\n withRangeFrom ? (to = timestamp) : (from = timestamp);\n }\n\n if (from > to) [from, to] = [to, from];\n };\n\n const tzSetter = (timezone?: RestamperWithTimezone['tz']['current'] | null) => {\n const tz = _restamper.tz;\n const currentTimezone = tz.current;\n _restamper.tz = timezone;\n if (tz.current !== currentTimezone) nowSetter(NOW);\n };\n\n nowSetter();\n\n return struct<RangeTimestamps<T>>({\n ..._additionalContext,\n from: getter(() => from),\n now: { ...nowDescriptor, set: nowSetter },\n timezone: { ...tzDescriptor, set: tzSetter },\n to: getter(() => to),\n });\n };\n};\n\nexport default createRangeTimestampsFactory;\n","import { clamp } from '../../../../../../../utils';\nimport createRangeTimestampsFactory from '../../factory';\nimport { getRangeTimestampsContextIntegerPropertyFactory, nowTimestamp, offsetsForNDays, startOfDay, startOfWeekOffset } from '../../utils';\nimport type { WeekDay } from '../../../types';\n\nexport const DEFAULT_FIRST_WEEK_DAY = 1;\nexport const ONE_WEEK_OFFSETS = offsetsForNDays(7);\n\nconst _getFirstWeekDayContext = getRangeTimestampsContextIntegerPropertyFactory<WeekDay>(0, 6, DEFAULT_FIRST_WEEK_DAY);\n\nconst offsetWeek = (weekCount: number = 0) => {\n const weeks = ~~clamp(0, weekCount as number, Infinity) || 0;\n\n return (firstWeekDay: WeekDay = DEFAULT_FIRST_WEEK_DAY) => {\n const restConfig = weeks ? { offsets: ONE_WEEK_OFFSETS } : { to: nowTimestamp };\n const firstWeekDayContext = _getFirstWeekDayContext(firstWeekDay);\n\n return createRangeTimestampsFactory(\n {\n from: ({ now, systemToTimezone, timezoneToSystem }) => {\n const date = new Date(now);\n const restampedDate = new Date(timezoneToSystem(now));\n const dayDiff = (date.getDay() - restampedDate.getDay()) as -1 | 1 | 0;\n\n startOfDay(date);\n\n if (dayDiff) {\n // Correction for difference between first (0) and last (6) week day\n const dateDiff = dayDiff > 1 ? -1 : dayDiff < -1 ? 1 : dayDiff;\n date.setDate(date.getDate() - dateDiff);\n }\n\n const dateOffset = startOfWeekOffset(firstWeekDayContext.value, date.getDay() as WeekDay) - weeks * 7;\n date.setDate(date.getDate() + dateOffset);\n\n return systemToTimezone(date);\n },\n ...restConfig,\n },\n { firstWeekDay: firstWeekDayContext.descriptor }\n )();\n };\n};\n\nexport default offsetWeek;\n","import { clamp } from '../../../../../../../utils';\nimport createRangeTimestampsFactory from '../../factory';\nimport type { RangeTimestampOffsets } from '../../types';\nimport { nowTimestamp, startOfMonth } from '../../utils';\n\nexport const ONE_MONTH_OFFSETS = Object.freeze([0, 1, 0, 0, 0, 0, -1] as const) as RangeTimestampOffsets;\n\nconst offsetMonth = (monthCount: number = 0) => {\n const months = ~~clamp(0, monthCount as number, Infinity) || 0;\n const restConfig = months ? { offsets: ONE_MONTH_OFFSETS } : { to: nowTimestamp };\n\n return createRangeTimestampsFactory({\n from: ({ now, systemToTimezone, timezoneToSystem }) => {\n const date = new Date(now);\n const restampedDate = new Date(timezoneToSystem(now));\n const monthDiff = (date.getMonth() - restampedDate.getMonth()) as -1 | 1 | 0;\n\n let monthOffset = months;\n\n if (monthDiff) {\n // Correction for difference between first (0) and last (11) month\n monthOffset += monthDiff > 1 ? -1 : monthDiff < -1 ? 1 : monthDiff;\n }\n\n startOfMonth(date);\n date.setMonth(date.getMonth() - monthOffset);\n return systemToTimezone(date);\n },\n ...restConfig,\n });\n};\n\nexport default offsetMonth;\n","import offsetMonth from './shared/offsetMonth';\nconst lastMonth = offsetMonth(1);\nexport default lastMonth;\n","import createRangeTimestampsFactory from '../factory';\nimport { getRangeTimestampsContextIntegerPropertyFactory, nowTimestamp, startOfDay } from '../utils';\n\nexport const MAX_NUM_DAYS = 365;\nexport const MIN_NUM_DAYS = 1;\nexport const DEFAULT_NUM_DAYS = 1;\n\nconst _getNumberOfDaysContext = getRangeTimestampsContextIntegerPropertyFactory<number>(MIN_NUM_DAYS, MAX_NUM_DAYS, DEFAULT_NUM_DAYS);\n\nconst lastNDays = (numberOfDays?: number) => {\n const numberOfDaysContext = _getNumberOfDaysContext(numberOfDays);\n\n return createRangeTimestampsFactory(\n {\n from: ({ now, systemToTimezone, timezoneToSystem }) => {\n const date = new Date(now);\n const restampedDate = new Date(timezoneToSystem(now));\n const dateDiff = (date.getDate() - restampedDate.getDate()) as -1 | 1 | 0;\n\n let dateOffset = numberOfDaysContext.value - 1;\n\n if (dateDiff) {\n // Correction for difference between first (1) and last (28, 29, 30, 31) day of month\n dateOffset += dateDiff > 1 ? -1 : dateDiff < -1 ? 1 : dateDiff;\n }\n\n startOfDay(date);\n date.setDate(date.getDate() - dateOffset);\n return systemToTimezone(date);\n },\n to: nowTimestamp,\n },\n { numberOfDays: numberOfDaysContext.descriptor }\n )();\n};\n\nexport default lastNDays;\n","import offsetWeek from './shared/offsetWeek';\nconst lastWeek = offsetWeek(1);\nexport default lastWeek;\n","import offsetMonth from './shared/offsetMonth';\nconst thisMonth = offsetMonth(0);\nexport default thisMonth;\n","import offsetWeek from './shared/offsetWeek';\nconst thisWeek = offsetWeek(0);\nexport default thisWeek;\n","import createRangeTimestampsFactory from '../factory';\nimport { nowTimestamp, startOfYear } from '../utils';\n\nconst yearToDate = createRangeTimestampsFactory({\n from: ({ now, systemToTimezone, timezoneToSystem }) => {\n const date = new Date(now);\n const restampedDate = new Date(timezoneToSystem(now));\n const yearOffset = (date.getFullYear() - restampedDate.getFullYear()) as -1 | 1 | 0;\n\n startOfYear(date);\n date.setFullYear(date.getFullYear() - yearOffset);\n return systemToTimezone(date);\n },\n to: nowTimestamp,\n});\n\nexport default yearToDate;\n","import { useCallback, useMemo, useRef, useState } from 'preact/hooks';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport type { RestampContext } from '../../../../../core/Localization/datetime/restamper';\nimport type { TranslationKey } from '../../../../../core/Localization/types';\nimport { RangeTimestamp, RangeTimestamps } from '../../../Calendar/calendar/timerange';\nimport * as RangePreset from '../../../Calendar/calendar/timerange/presets';\n\nexport type UseTimeRangeSelectionConfig = {\n now?: RangeTimestamp;\n options: Readonly<Partial<{ [P in TranslationKey]: RangeTimestamps }>>;\n selectedOption?: string;\n timezone?: RestampContext['TIMEZONE'];\n};\n\nexport type UseTimeRangeSelectionData = ReturnType<typeof useTimeRangeSelection>;\n\nexport const getTimeRangeSelectionDefaultPresetOptions = () =>\n Object.freeze({\n 'rangePreset.last7Days': RangePreset.lastNDays(7),\n 'rangePreset.last30Days': RangePreset.lastNDays(30),\n 'rangePreset.thisWeek': RangePreset.thisWeek(),\n 'rangePreset.lastWeek': RangePreset.lastWeek(),\n 'rangePreset.thisMonth': RangePreset.thisMonth(),\n 'rangePreset.lastMonth': RangePreset.lastMonth(),\n 'rangePreset.yearToDate': RangePreset.yearToDate(),\n } as const);\n\nexport const useTimeRangeSelection = ({\n now = Date.now(),\n options: presetOptions,\n selectedOption: selectedPresetOption,\n timezone,\n}: UseTimeRangeSelectionConfig) => {\n const { i18n } = useCoreContext();\n const [from, setFrom] = useState<string>();\n const [to, setTo] = useState<string>();\n const [selectedOption, setSelectedOption] = useState<string>();\n const NOW = useRef<typeof now>();\n const TZ = useRef<typeof timezone>();\n\n const [customOption, getRangesForOption, selectionOptions] = useMemo(() => {\n const customOption = i18n.get('rangePreset.custom');\n const optionKeys = Object.keys(presetOptions);\n const selectionOptions = Object.freeze(optionKeys.map(key => i18n.get(key as TranslationKey)));\n\n const getRangesForOption = (option: string, options: readonly string[] = selectionOptions) => {\n const optionIndex = options.findIndex(currentOption => currentOption === option);\n return presetOptions[optionKeys[optionIndex] as keyof typeof presetOptions];\n };\n\n return [customOption, getRangesForOption, selectionOptions] as const;\n }, [i18n, presetOptions]);\n\n const [isCustomSelection, setIsCustomSelection] = useState(selectedPresetOption === customOption);\n const selectionOptionsWithCustomOption = useMemo(() => Object.freeze([...selectionOptions, customOption]), [customOption, selectionOptions]);\n\n const options = useMemo(\n () => (isCustomSelection ? selectionOptionsWithCustomOption : selectionOptions),\n [isCustomSelection, selectionOptions, selectionOptionsWithCustomOption]\n );\n\n const onSelection = useCallback(\n (option: string) => {\n const ranges = getRangesForOption(option, selectionOptions);\n if (!ranges) return;\n\n setFrom(i18n.fullDate(ranges.from));\n setTo(i18n.fullDate(ranges.to));\n setIsCustomSelection(false);\n setSelectedOption(option);\n },\n [i18n, customOption, getRangesForOption, selectedOption, selectionOptions]\n );\n\n const customSelection = useCallback(() => {\n setFrom(undefined);\n setTo(undefined);\n setIsCustomSelection(true);\n setSelectedOption(customOption);\n }, [customOption]);\n\n useMemo(() => {\n selectedPresetOption === customOption ? setSelectedOption(customOption) : onSelection(selectedPresetOption!);\n }, []);\n\n useMemo(() => {\n if (NOW.current !== now || TZ.current !== timezone) {\n const options = Object.values(presetOptions);\n\n options.forEach(ranges => {\n ranges.now = now;\n ranges.timezone = timezone;\n });\n\n NOW.current = now;\n TZ.current = options[0]?.timezone;\n\n onSelection(selectedOption!);\n }\n }, [now, timezone, presetOptions]);\n\n return {\n customSelection,\n from,\n onSelection,\n options,\n selectedOption,\n to,\n } as const;\n};\n\nexport default useTimeRangeSelection;\n","import { useCallback, useEffect, useMemo, useRef } from 'preact/hooks';\nimport Select from '../../../FormFields/Select';\nimport { SelectItem } from '../../../FormFields/Select/types';\nimport { useTimeRangeSelection, UseTimeRangeSelectionConfig } from './useTimeRangeSelection';\n\nconst TimeRangeSelector = ({\n calendarRef,\n onTimeRangeSelected,\n timestamp,\n ...useTimeRangeSelectionConfig\n}: UseTimeRangeSelectionConfig & {\n calendarRef?: any;\n onTimeRangeSelected?: (option: string) => any;\n timestamp: DOMHighResTimeStamp;\n}) => {\n const { customSelection, from, onSelection, options, selectedOption, to } = useTimeRangeSelection(useTimeRangeSelectionConfig);\n const selectOptions = useMemo(() => Object.freeze(options.map(id => ({ id, name: id } as SelectItem))), [options]);\n const onSelectedOptionChanged = useCallback(({ target }: any) => onSelection(target?.value), [onSelection]);\n const rangeSelectionInProgress = useRef(true);\n const cachedTimestamp = useRef(timestamp);\n\n useEffect(() => {\n if (calendarRef?.current && from && to) {\n rangeSelectionInProgress.current = true;\n calendarRef.current.from = new Date(from as string);\n calendarRef.current.to = new Date(to as string);\n }\n }, [calendarRef, from, to]);\n\n useEffect(() => {\n if (cachedTimestamp.current !== timestamp) {\n cachedTimestamp.current = timestamp;\n\n if (rangeSelectionInProgress.current) {\n rangeSelectionInProgress.current = false;\n } else customSelection();\n }\n }, [customSelection, timestamp]);\n\n useEffect(() => {\n selectedOption && onTimeRangeSelected?.(selectedOption);\n }, [selectedOption, onTimeRangeSelected]);\n\n return (\n <Select\n setToTargetWidth={true}\n items={selectOptions}\n filterable={false}\n multiSelect={false}\n onChange={onSelectedOptionChanged}\n selected={selectedOption}\n />\n );\n};\n\nexport default TimeRangeSelector;\n","import { boolOrTrue, EMPTY_OBJECT, enumerable, isPlainObject, struct, structFrom } from '../../../../../utils';\n\ntype PropertyDescriptor<T = any> = {\n configurable?: boolean;\n enumerable?: boolean;\n value?: T;\n writable?: boolean;\n get?(): T | undefined;\n set?(v?: T): void;\n};\n\ntype PropertyFactory = {\n <T = any>(setter?: false | ((value?: T) => T | undefined), value?: T): PropertyDescriptor<T>;\n is: (value: any) => value is PropertyDescriptor;\n isObject: (value: any) => value is Record<any, any>;\n immutable: <T = any>(value?: T) => PropertyDescriptor<T>;\n mutable: <T = any>(value?: T) => PropertyDescriptor<T>;\n restricted: () => PropertyDescriptor<undefined>;\n};\n\nexport const property = (() => {\n const descriptor = <T>(descriptor: PropertyDescriptor<T>) =>\n Object.freeze(\n structFrom(EMPTY_OBJECT, Object.fromEntries(Object.entries(descriptor).map(([field, value]) => [field, { value }])))\n ) as PropertyDescriptor<T>;\n\n const isPropDescriptor = (value: any): value is PropertyDescriptor => {\n try {\n return Object.getPrototypeOf(value) === EMPTY_OBJECT;\n } catch {\n return false;\n }\n };\n\n const prop = <T = any>(setter?: false | ((value?: T) => T | undefined), value?: T) => {\n if (!setter) return descriptor(enumerable(value, boolOrTrue(setter)));\n\n let currentValue = value;\n\n return descriptor({\n enumerable: true,\n get: () => currentValue,\n set: (value?: T) => {\n currentValue = setter(value);\n },\n });\n };\n\n return Object.defineProperties(prop, {\n is: { value: isPropDescriptor },\n isObject: { value: isPlainObject },\n immutable: { value: <T = any>(value?: T) => prop(false, value) },\n mutable: { value: <T = any>(value?: T) => prop(undefined, value) },\n restricted: { value: () => prop<undefined>(false) },\n }) as PropertyFactory;\n})();\n\nexport const propsProperty = (() => {\n type UnwrappedProps<T extends Record<string, any>> = {\n [K in keyof T]:\n | (T[K] extends PropertyDescriptor<infer U> ? (U extends Record<string, any> ? UnwrappedProps<U> : U) : T[K])\n | PropertyDescriptor<T[K]>;\n } & Record<string, any>;\n\n const propsProperty = <T extends Record<string, any> = {}>(props = {} as UnwrappedProps<T>, deepImmutable = false) => {\n const $props = struct() as UnwrappedProps<T>;\n\n for (const [prop, maybeDescriptor] of Object.entries<UnwrappedProps<T>[keyof T]>(props)) {\n try {\n const isDescriptor = property.is(maybeDescriptor);\n const isPlainObject = property.isObject(maybeDescriptor);\n\n if (isDescriptor || isPlainObject) {\n Object.defineProperty($props, prop, isDescriptor ? maybeDescriptor : propsProperty(maybeDescriptor, deepImmutable));\n continue;\n } else if (deepImmutable) {\n Object.defineProperty($props, prop, property.immutable(maybeDescriptor));\n continue;\n }\n } catch {\n /* no empty catch block */\n }\n\n $props[prop as keyof T] = maybeDescriptor;\n }\n\n return property((props = {} as UnwrappedProps<T>) => Object.assign($props, props), $props);\n };\n\n const unwrapped = <T extends Record<string, any> = {}>(props = {} as UnwrappedProps<T>, deepImmutable = false) => {\n const P = propsProperty(props, deepImmutable);\n return struct({ P }).P as T;\n };\n\n return Object.defineProperties(propsProperty, {\n unwrapped: { value: unwrapped },\n }) as {\n <T extends Record<string, any> = {}>(props?: UnwrappedProps<T>, deepImmutable?: boolean): PropertyDescriptor<UnwrappedProps<T>>;\n unwrapped: <T extends Record<string, any> = {}>(props?: UnwrappedProps<T>, deepImmutable?: boolean) => T;\n };\n})();\n","import { VNode } from 'preact';\nimport {\n CalendarConfig,\n CalendarGridControlRecord,\n CalendarSelection,\n CalendarShiftControls,\n FirstWeekDay,\n Time,\n TimeFrameSize,\n} from './calendar/types';\n\nexport const enum CalendarGridRenderToken {\n DATE,\n DAY_OF_WEEK,\n MONTH_HEADER,\n}\n\nexport interface CalendarGridCursorRootProps {\n onClickCapture: (evt: Event) => void;\n onMouseOverCapture: (evt: Event) => void;\n onPointerOverCapture: (evt: Event) => void;\n onKeyDownCapture: (evt: KeyboardEvent) => void;\n}\n\nexport interface CalendarHandle {\n clear: () => void;\n config: CalendarConfig;\n from?: Date;\n to?: Date;\n}\n\nexport interface CalendarProps {\n blocks?: TimeFrameSize;\n controls?: CalendarShiftControls;\n dynamicBlockRows?: boolean;\n firstWeekDay?: FirstWeekDay;\n highlight?: CalendarSelection | string;\n locale?: string;\n onHighlight?: (from?: number, to?: number) => any;\n onlyCellsWithin?: boolean;\n originDate?: Time | Time[];\n prepare?: (renderToken: CalendarGridRenderToken, renderContext: any) => any;\n renderControl?: (...args: CalendarGridControlRecord) => VNode | null;\n sinceDate?: Time;\n trackCurrentDay?: boolean;\n untilDate?: Time;\n useYearView?: boolean;\n}\n\nexport type CalendarRenderControl = Exclude<CalendarProps['renderControl'], undefined>;\nexport type CalendarControlRenderer = (targetElement: Element, ...args: CalendarGridControlRecord) => ReturnType<CalendarRenderControl>;\n","import { memo } from 'preact/compat';\nimport { property, propsProperty } from './utils';\nimport { CalendarGridDateProps, CalendarGridDateRenderProps } from './types';\nimport { fixedForwardRef, getClassName, memoComparator } from '../../../../../utils/preact';\nimport { EMPTY_OBJECT } from '../../../../../utils';\nimport { CalendarGridRenderToken } from '../../types';\n\nconst DEFAULT_DATE_CELL_CLASSNAME = 'adyen-pe-calendar__cell adyen-pe-calendar__cell--date';\nconst DEFAULT_DATE_TIME_CLASSNAME = 'adyen-pe-calendar__date';\n\nconst getGridDateRenderProps = (computedProps = EMPTY_OBJECT as any, prepare?: CalendarGridDateProps['prepare']) => {\n const renderProps = propsProperty.unwrapped<CalendarGridDateRenderProps>(\n {\n childClassName: property.mutable(DEFAULT_DATE_TIME_CLASSNAME),\n childProps: {\n children: property.restricted(),\n className: '',\n },\n className: property.mutable(DEFAULT_DATE_CELL_CLASSNAME),\n props: {\n ...computedProps,\n children: property.restricted(),\n className: '',\n },\n },\n true\n );\n\n prepare?.(CalendarGridRenderToken.DATE, renderProps);\n return renderProps;\n};\n\nconst CalendarGridDate = fixedForwardRef(\n ({ grid, prepare, datetime, flags, index, label, onlyCellsWithin }: CalendarGridDateProps, cursorElementRef) => {\n const withinMonth = flags.WITHIN_BLOCK;\n\n const props = {\n 'data-cursor-position': index,\n 'data-within-month': withinMonth,\n tabIndex: -1,\n } as any;\n\n if (withinMonth) {\n const withinRange = flags.WITHIN_RANGE;\n\n props['data-today'] = flags.CURRENT;\n props['data-first-week-day'] = flags.LINE_START;\n props['data-last-week-day'] = flags.LINE_END;\n props['data-weekend'] = flags.WEEKEND;\n props['data-first-month-day'] = flags.BLOCK_START;\n props['data-last-month-day'] = flags.BLOCK_END;\n\n props['data-within-range'] = withinRange;\n\n if (withinRange) {\n props['data-range-end'] = flags.RANGE_END;\n props['data-range-start'] = flags.RANGE_START;\n props['data-selection-end'] = flags.SELECTION_END;\n props['data-selection-start'] = flags.SELECTION_START;\n props['data-within-selection'] = flags.WITHIN_SELECTION;\n props['aria-selected'] = `${!!(flags.SELECTION_END || flags.SELECTION_START || flags.WITHIN_SELECTION)}`;\n }\n\n if (index === +grid.cursor) props.ref = cursorElementRef;\n }\n\n const renderProps = getGridDateRenderProps(props, prepare);\n const { children: _, className, ...extendedProps } = renderProps.props || EMPTY_OBJECT;\n const classes = getClassName(renderProps.className, DEFAULT_DATE_CELL_CLASSNAME, className);\n\n return (\n <td {...extendedProps} {...props} className={classes}>\n {(!onlyCellsWithin || withinMonth) &&\n (() => {\n const { children: _, className, ...extendedProps } = renderProps.childProps || EMPTY_OBJECT;\n const classes = getClassName(renderProps.childClassName, DEFAULT_DATE_TIME_CLASSNAME, className);\n return (\n <time {...extendedProps} className={classes} dateTime={datetime}>\n {label}\n </time>\n );\n })()}\n </td>\n );\n }\n);\n\nexport default memo(\n CalendarGridDate,\n memoComparator({\n block: memoComparator.exclude,\n flags: value => +(value as number),\n })\n);\n","import { memo } from 'preact/compat';\nimport { property, propsProperty } from './utils';\nimport { getClassName, memoComparator } from '../../../../../utils/preact';\nimport { CalendarGridDayOfWeekProps, CalendarGridDayOfWeekRenderProps } from './types';\nimport { EMPTY_OBJECT } from '../../../../../utils';\nimport { CalendarGridRenderToken } from '../../types';\n\nconst DEFAULT_CELL_CLASSNAME = 'adyen-pe-calendar__cell adyen-pe-calendar__cell--day-of-week';\nconst DEFAULT_CELL_ABBR_CLASSNAME = 'adyen-pe-calendar__day-of-week';\n\nconst getGridDayOfWeekRenderProps = (computedProps = EMPTY_OBJECT as any, prepare?: CalendarGridDayOfWeekProps['prepare']) => {\n const renderProps = propsProperty.unwrapped<CalendarGridDayOfWeekRenderProps>(\n {\n childClassName: property.mutable(DEFAULT_CELL_ABBR_CLASSNAME),\n childProps: {\n children: property.restricted(),\n className: '',\n },\n className: property.mutable(DEFAULT_CELL_CLASSNAME),\n props: {\n ...computedProps,\n children: property.restricted(),\n className: '',\n },\n },\n true\n );\n\n prepare?.(CalendarGridRenderToken.DAY_OF_WEEK, renderProps);\n return renderProps;\n};\n\nconst CalendarGridDayOfWeek = ({ prepare, flags, labels: { long: longLabel, short: shortLabel } }: CalendarGridDayOfWeekProps) => {\n const props = {\n 'aria-label': longLabel,\n 'data-first-week-day': flags.LINE_START,\n 'data-last-week-day': flags.LINE_END,\n 'data-weekend': flags.WEEKEND,\n scope: 'col',\n };\n\n const renderProps = getGridDayOfWeekRenderProps(props, prepare);\n const { children: _, className, ...extendedProps } = renderProps.props || EMPTY_OBJECT;\n const classes = getClassName(renderProps.className, DEFAULT_CELL_CLASSNAME, className);\n\n const { children: __, className: childClassName, ...extendedChildProps } = renderProps.childProps || EMPTY_OBJECT;\n const childClasses = getClassName(renderProps.childClassName, DEFAULT_CELL_ABBR_CLASSNAME, childClassName);\n\n return (\n <th {...extendedProps} {...props} className={classes}>\n <abbr {...extendedChildProps} className={childClasses}>\n {shortLabel}\n </abbr>\n </th>\n );\n};\n\nexport default memo(\n CalendarGridDayOfWeek,\n memoComparator({\n block: memoComparator.exclude,\n flags: value => +(value as number),\n })\n);\n","import { forwardRef, memo } from 'preact/compat';\nimport { CalendarGridProps } from './types';\nimport CalendarGridDate from './CalendarGridDate';\nimport CalendarGridDayOfWeek from './CalendarGridDayOfWeek';\nimport '../../Calendar.scss';\n\nconst CalendarGrid = forwardRef(({ cursorRootProps, onlyCellsWithin, prepare, grid }: CalendarGridProps, cursorElementRef) => (\n <ol className={'adyen-pe-calendar'} role=\"none\" {...cursorRootProps}>\n {grid.map(block => (\n <li key={block.datetime} className={'adyen-pe-calendar__month'} role=\"none\">\n <div className={'adyen-pe-calendar__month-name'} role=\"none\">\n <time dateTime={block.datetime} aria-hidden=\"true\">\n {block.label}\n </time>\n </div>\n\n <table\n role=\"grid\"\n aria-multiselectable={true}\n aria-label={`${block.label} calendar`}\n className={'adyen-pe-calendar__grid'}\n style={{ '--adyen-pe-calendar-rowspan': grid.rowspan }}\n >\n <thead>\n <tr className={'adyen-pe-calendar__row'}>\n {grid.weekdays.map((data, index) => (\n <CalendarGridDayOfWeek key={data.labels['long']} grid={grid} block={block} prepare={prepare} cell={index} {...data} />\n ))}\n </tr>\n </thead>\n <tbody>\n {block.map((row, rowindex) => (\n <tr key={`${block.month}:${rowindex}`} className={'adyen-pe-calendar__row'}>\n {row.map((data, index) => (\n <CalendarGridDate\n key={`${block.month}:${data.timestamp}`}\n ref={cursorElementRef}\n grid={grid}\n block={block}\n prepare={prepare}\n cell={index}\n onlyCellsWithin={onlyCellsWithin}\n row={rowindex}\n {...data}\n />\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </li>\n ))}\n </ol>\n));\n\nexport default memo(CalendarGrid);\n","export const DAY_MS = 86400000 as const;\nexport const DAY_OF_WEEK_FORMATS = ['narrow', 'short', 'long'] as const;\nexport const FIRST_WEEK_DAYS = [0, 1, 6] as const;\nexport const FRAME_SIZES = [1, 2, 3, 4, 6, 12] as const;\nexport const MAXIMUM_MONTH_UNITS = 42 as const;\nexport const WEEKEND_DAYS_SEED = [0, 1] as const;\nexport const YEAR_MONTHS = 12 as const;\nexport const CONTROLS_ALL: unique symbol = Symbol();\nexport const CONTROLS_MINIMAL: unique symbol = Symbol();\nexport const CONTROLS_NONE: unique symbol = Symbol();\nexport const CALENDAR_CONTROLS = [CONTROLS_NONE, CONTROLS_MINIMAL, CONTROLS_ALL] as const;\nexport const SELECT_MANY: unique symbol = Symbol();\nexport const SELECT_NONE: unique symbol = Symbol();\nexport const SELECT_ONE: unique symbol = Symbol();\nexport const CALENDAR_SELECTIONS = [SELECT_NONE, SELECT_ONE, SELECT_MANY] as const;\nexport const CURSOR_BACKWARD: unique symbol = Symbol();\nexport const CURSOR_BLOCK_END: unique symbol = Symbol();\nexport const CURSOR_BLOCK_START: unique symbol = Symbol();\nexport const CURSOR_DOWNWARD: unique symbol = Symbol();\nexport const CURSOR_FORWARD: unique symbol = Symbol();\nexport const CURSOR_LINE_END: unique symbol = Symbol();\nexport const CURSOR_LINE_START: unique symbol = Symbol();\nexport const CURSOR_NEXT_BLOCK: unique symbol = Symbol();\nexport const CURSOR_PREV_BLOCK: unique symbol = Symbol();\nexport const CURSOR_UPWARD: unique symbol = Symbol();\nexport const RANGE_FROM: unique symbol = Symbol();\nexport const RANGE_TO: unique symbol = Symbol();\nexport const SELECTION_COLLAPSE: unique symbol = Symbol();\nexport const SELECTION_FARTHEST: unique symbol = Symbol();\nexport const SELECTION_FROM: unique symbol = Symbol();\nexport const SELECTION_NEAREST: unique symbol = Symbol();\nexport const SELECTION_TO: unique symbol = Symbol();\nexport const SHIFT_BLOCK: unique symbol = Symbol();\nexport const SHIFT_FRAME: unique symbol = Symbol();\nexport const SHIFT_PERIOD: unique symbol = Symbol();\n","import { identity, isString } from '../../../utils';\nimport type { Indexed, IndexedMapIteratorFactory } from './types';\n\nexport const indexedProxyGetTrap =\n <V>(getter: (index: number) => V) =>\n (target: Indexed<V>, property: string | symbol, receiver: any) => {\n if (isString(property)) {\n const index = +property;\n if (index >= 0 && index < target.length) {\n return getter(index);\n }\n }\n return Reflect.get(target, property, receiver);\n };\n\nexport const mapIteratorFactory: IndexedMapIteratorFactory = function* (callback = identity, thisArg: any) {\n for (let i = 0; i < this.length; i++) {\n yield callback.call(thisArg, this[i], i, this);\n }\n};\n","import { isFunction, isNumber, struct, structFrom, truthify } from '../../../utils';\nimport { indexedProxyGetTrap, mapIteratorFactory } from './helpers';\nimport type { Indexed, IndexedMapIteratorCallback } from './types';\n\nconst __INDEXED_PROTO__ = Object.freeze(\n struct<\n Readonly<{\n [Symbol.iterator]: (this: Indexed) => Generator<any>;\n map: Indexed['map'];\n }>\n >({\n [Symbol.iterator]: {\n value(this: Indexed) {\n return mapIteratorFactory.call(this);\n },\n },\n map: {\n value(this: Indexed, callback?: IndexedMapIteratorCallback, thisArg?: any) {\n return [...mapIteratorFactory.call(this, callback, thisArg)];\n },\n },\n })\n);\n\nexport const createIndexed = <T extends Record<any, any> = {}, V = any>(\n iterablePropertyDescriptorsOrSize: PropertyDescriptorMap | (() => number) | number,\n iteratorValueGetter: (index: number) => V\n): Indexed<V> & T => {\n if (isFunction(iterablePropertyDescriptorsOrSize)) {\n return createIndexed<T, V>(\n {\n length: { get: iterablePropertyDescriptorsOrSize },\n },\n iteratorValueGetter\n );\n }\n\n if (isNumber(iterablePropertyDescriptorsOrSize)) {\n return createIndexed<T, V>(\n {\n length: { value: iterablePropertyDescriptorsOrSize },\n },\n iteratorValueGetter\n );\n }\n\n return new Proxy(structFrom(__INDEXED_PROTO__, iterablePropertyDescriptorsOrSize), {\n get: indexedProxyGetTrap(iteratorValueGetter),\n set: truthify,\n }) as Indexed<V> & T;\n};\n\nexport default createIndexed;\n","import { enumerable, struct } from '../../../utils';\nimport type { EffectStack } from './types';\n\nconst _NO_EXCEPTION = Symbol('<<NO_EXCEPTION>>');\n\nexport const createEffectStack = <Effect extends (...args: any[]) => any>(effect: Effect) => {\n const _stack: any[] = [];\n\n const _bindFn: EffectStack<Effect>['bind'] = fn =>\n function (this: unknown, ...args) {\n let exception: unknown = _NO_EXCEPTION;\n try {\n _stack.push(fn);\n return fn.call(this, ...args);\n } catch (ex) {\n throw (exception = ex);\n } finally {\n _stack.pop();\n if (_stack.length === 0 && exception === _NO_EXCEPTION) effect();\n }\n } as typeof fn;\n\n return struct<EffectStack<Effect>>({\n bind: enumerable(_bindFn),\n effect: enumerable(effect),\n });\n};\n\nexport default createEffectStack;\n","import $restamper, { RestamperWithTimezone, systemToTimezone, timezoneToSystem } from '../../../core/Localization/datetime/restamper';\nimport { createWatchlist, isWatchlistUnsubscribeToken } from '../../reactive/watchlist';\nimport { enumerable, getter, isNull, struct } from '../../../utils';\nimport type { Today, TodayWatchListEntries } from './types';\nimport { clock } from '../clock';\n\nexport const today = (() => {\n const timezones = new Map<NonNullable<RestamperWithTimezone['tz']['current']>, Today>();\n const restamper = $restamper();\n\n const getTimestampWithTomorrowOffset = (withTimestamp = Date.now()) => {\n const date = new Date(withTimestamp);\n const restampedDate = new Date(timezoneToSystem(restamper, withTimestamp));\n const dateDiff = (date.getDate() - restampedDate.getDate()) as -1 | 1 | 0;\n\n if (dateDiff) {\n // Correction for difference between first (1) and last (28, 29, 30, 31) day of month\n const dateOffset = dateDiff > 1 ? -1 : dateDiff < -1 ? 1 : dateDiff;\n date.setDate(date.getDate() - dateOffset);\n }\n\n const currentTimestamp = systemToTimezone(restamper, date.setHours(0, 0, 0, 0)); // current day start timestamp\n const nextTimestamp = systemToTimezone(restamper, date.setDate(date.getDate() + 1)); // next day start timestamp\n return [currentTimestamp, nextTimestamp - currentTimestamp] as const;\n };\n\n return (timezone?: RestamperWithTimezone['tz']['current']) => {\n restamper.tz = timezone;\n\n const tz = restamper.tz.current!;\n\n return (\n timezones.get(tz) ??\n (() => {\n let timestamp: number | null = null;\n let tomorrowOffset: number | null = null;\n let unsubscribeClock: ReturnType<Today['subscribe']> | null = null;\n\n const getTimestamp = () => {\n restamper.tz = tz; // switch restamper to this timezone\n return timestamp ?? getTimestampWithTomorrowOffset()[0];\n };\n\n const refreshTimestamps = (withTimestamp = Date.now()) => {\n restamper.tz = tz; // switch restamper to this timezone\n [timestamp, tomorrowOffset] = getTimestampWithTomorrowOffset(withTimestamp);\n };\n\n const { cancelSubscriptions, requestNotification, subscribe, on } = createWatchlist<TodayWatchListEntries>({\n timestamp: getTimestamp,\n });\n\n on.resume = () => {\n unsubscribeClock = clock.subscribe(snapshot => {\n if (isWatchlistUnsubscribeToken(snapshot)) return;\n\n const { now } = snapshot;\n\n if (isNull(timestamp) || isNull(tomorrowOffset)) return refreshTimestamps(now);\n if (now - timestamp < tomorrowOffset) return;\n\n refreshTimestamps(now);\n requestNotification();\n });\n };\n\n on.idle = () => {\n unsubscribeClock?.();\n timestamp = tomorrowOffset = unsubscribeClock = null;\n };\n\n const instance = struct<Today>({\n cancelSubscriptions: enumerable(cancelSubscriptions),\n timestamp: getter(getTimestamp),\n timezone: enumerable(tz),\n subscribe: enumerable(subscribe),\n });\n\n timezones.set(tz, instance);\n return instance;\n })()\n );\n };\n})();\n\nexport default today;\n","import { FRAME_SIZES, WEEKEND_DAYS_SEED } from '../../constants';\nimport { FirstWeekDay, TimeFrameSize, WeekDay } from '../../types';\nimport { mod } from '../../../../../../utils';\n\nexport const downsizeTimeFrame = (size: TimeFrameSize, maxsize: number): TimeFrameSize => {\n if (maxsize >= size) return size;\n let i = Math.max(1, FRAME_SIZES.indexOf(size));\n while (--i && maxsize < (FRAME_SIZES[i] as TimeFrameSize)) {}\n return FRAME_SIZES[i] as TimeFrameSize;\n};\n\nexport const resolveTimeFrameBlockSize = (size: TimeFrameSize) => FRAME_SIZES[Math.max(FRAME_SIZES.indexOf(size), 0)];\n\nexport const getWeekendDays = (firstWeekDay: FirstWeekDay = 0) =>\n // [TODO]: Derive weekend days based on locale\n Object.freeze(WEEKEND_DAYS_SEED.map(seed => mod(6 - firstWeekDay + seed, 7)) as [WeekDay, WeekDay]);\n","import { Month, MonthDays, Time } from './types';\nimport { isInfinity, isUndefined, mod } from '../../../../utils';\n\nexport const computeTimestampOffset = (timestamp: number) => (isInfinity(timestamp) ? 0 : timestamp - new Date(timestamp).setHours(0, 0, 0, 0));\nexport const getDateObjectFromTimestamp = (timestamp?: number) => (isUndefined(timestamp) ? timestamp : new Date(timestamp));\n\nexport const getEdgesDistance = (fromTime: Time, toTime: Time) => {\n if (isInfinity(fromTime) || isInfinity(toTime)) return Infinity;\n const from = new Date(fromTime);\n const to = new Date(toTime);\n return Math.abs(to.getMonth() - from.getMonth() + (to.getFullYear() - from.getFullYear()) * 12);\n};\n\nexport const getMonthDays = (() => {\n const DAYS = [31, [29, 28] as const, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] as const;\n\n return (month: Month, year: number, offset = 0) => {\n const nextMonth = month + offset;\n const monthIndex = mod(nextMonth, 12) as Month;\n const nextYear = year + Math.floor(nextMonth / 12);\n const days = monthIndex === 1 ? DAYS[1][(nextYear % 100 ? nextYear % 4 : nextYear % 400) && 1] : DAYS[monthIndex];\n\n return [days as MonthDays, monthIndex, nextYear] as const;\n };\n})();\n","import { RANGE_FROM, RANGE_TO } from '../constants';\nimport { Time, TimeFrameRangeEdge } from '../types';\nimport { computeTimestampOffset, getEdgesDistance } from '../utils';\n\nexport default class __TimeSlice__ {\n readonly #numberOfMonths: number = Infinity;\n readonly #endTimestamp: number = Infinity;\n readonly #startTimestamp: number = -Infinity;\n readonly #endTimestampOffset: number = 0;\n readonly #startTimestampOffset: number = 0;\n\n constructor(fromTime?: Time, toTime?: Time);\n constructor(time?: Time, timeEdge?: TimeFrameRangeEdge);\n constructor(...args: any[]) {\n if (args.length >= 2) {\n let timestamp = new Date(args[0]).getTime();\n\n if (typeof args[1] !== 'symbol') {\n this.#startTimestamp = timestamp || this.#startTimestamp;\n this.#endTimestamp = new Date(args[1]).getTime() || this.#endTimestamp;\n\n if (this.#endTimestamp < this.#startTimestamp) {\n [this.#endTimestamp, this.#startTimestamp] = [this.#startTimestamp, this.#endTimestamp];\n }\n\n this.#startTimestampOffset = computeTimestampOffset(this.#startTimestamp);\n this.#endTimestampOffset = computeTimestampOffset(this.#endTimestamp);\n this.#numberOfMonths = getEdgesDistance(this.#startTimestamp, this.#endTimestamp) + 1;\n } else if (!isNaN(timestamp)) {\n switch (args[1]) {\n case RANGE_TO:\n this.#endTimestamp = timestamp;\n this.#endTimestampOffset = computeTimestampOffset(this.#endTimestamp);\n break;\n\n case RANGE_FROM:\n default:\n this.#startTimestamp = timestamp;\n this.#startTimestampOffset = computeTimestampOffset(this.#startTimestamp);\n break;\n }\n }\n }\n }\n\n get numberOfMonths() {\n return this.#numberOfMonths;\n }\n\n get endTimestamp() {\n return this.#endTimestamp;\n }\n\n get endTimestampOffset() {\n return this.#endTimestampOffset;\n }\n\n get startTimestamp() {\n return this.#startTimestamp;\n }\n\n get startTimestampOffset() {\n return this.#startTimestampOffset;\n }\n}\n","import __TimeSlice__ from './TimeSlice';\nimport { RANGE_FROM, RANGE_TO } from '../constants';\nimport { TimeSlice, TimeSliceFactory } from '../types';\nimport { struct } from '../../../../../utils';\n\nconst factory = ((...args: any[]) => {\n const slice = new __TimeSlice__(...args);\n\n return struct({\n from: { value: slice.startTimestamp },\n to: { value: slice.endTimestamp },\n offsets: {\n value: struct({\n from: { value: slice.startTimestampOffset },\n to: { value: slice.endTimestampOffset },\n }),\n },\n span: { value: slice.numberOfMonths },\n }) as TimeSlice;\n}) as TimeSliceFactory;\n\nexport const UNBOUNDED_SLICE = factory();\nexport const sinceNow = () => factory(Date.now(), RANGE_FROM);\nexport const untilNow = () => factory(Date.now(), RANGE_TO);\n\nexport default ((...args: any[]) => (args.length === 0 ? UNBOUNDED_SLICE : factory(...args))) as TimeSliceFactory;\n","import {\n CONTROLS_ALL,\n CONTROLS_MINIMAL,\n CONTROLS_NONE,\n CURSOR_BACKWARD,\n CURSOR_BLOCK_END,\n CURSOR_BLOCK_START,\n CURSOR_DOWNWARD,\n CURSOR_FORWARD,\n CURSOR_LINE_END,\n CURSOR_LINE_START,\n CURSOR_NEXT_BLOCK,\n CURSOR_PREV_BLOCK,\n CURSOR_UPWARD,\n DAY_OF_WEEK_FORMATS,\n FIRST_WEEK_DAYS,\n FRAME_SIZES,\n RANGE_FROM,\n RANGE_TO,\n SHIFT_BLOCK,\n SHIFT_FRAME,\n SHIFT_PERIOD,\n SELECT_MANY,\n SELECT_NONE,\n SELECT_ONE,\n SELECTION_COLLAPSE,\n SELECTION_FARTHEST,\n SELECTION_FROM,\n SELECTION_NEAREST,\n SELECTION_TO,\n CALENDAR_CONTROLS,\n CALENDAR_SELECTIONS,\n} from './constants';\nimport { Indexed } from '../../../../primitives/auxiliary/indexed';\nimport { WatchListCallable } from '../../../../primitives/reactive/watchlist';\n\nexport type WithGetSetProperty<T = any> = {\n get _(): T;\n set _($: T);\n};\n\n// export type WithGetSetProperties<K extends string, T = any> = {\n// [P in K]: WithGetSetProperty<T, X>['_'];\n// };\n\nexport type WithTimeEdges<T = {}> = {\n from: T;\n to: T;\n};\n\nexport type DayOfWeekLabelFormat = (typeof DAY_OF_WEEK_FORMATS)[number];\nexport type FirstWeekDay = (typeof FIRST_WEEK_DAYS)[number];\nexport type WeekDay = FirstWeekDay | 2 | 3 | 4 | 5;\nexport type Month = WeekDay | 7 | 8 | 9 | 10 | 11;\nexport type MonthDays = 28 | 29 | 30 | 31;\nexport type Time = Date | number | string;\n\nexport enum TimeFlag {\n CURRENT = 0x1,\n CURSOR = 0x2,\n WEEKEND = 0x4,\n LINE_START = 0x8,\n LINE_END = 0x10,\n WITHIN_BLOCK = 0x20,\n BLOCK_START = 0x40,\n BLOCK_END = 0x80,\n WITHIN_RANGE = 0x100,\n RANGE_START = 0x200,\n RANGE_END = 0x400,\n WITHIN_SELECTION = 0x800,\n SELECTION_START = 0x1000,\n SELECTION_END = 0x2000,\n ALL = 0x3fff,\n}\n\nexport type TimeFlagProp = Exclude<keyof typeof TimeFlag, 'ALL'>;\n\nexport type TimeFrameCursor =\n | typeof CURSOR_BACKWARD\n | typeof CURSOR_BLOCK_END\n | typeof CURSOR_BLOCK_START\n | typeof CURSOR_DOWNWARD\n | typeof CURSOR_FORWARD\n | typeof CURSOR_LINE_END\n | typeof CURSOR_LINE_START\n | typeof CURSOR_NEXT_BLOCK\n | typeof CURSOR_PREV_BLOCK\n | typeof CURSOR_UPWARD;\n\nexport type TimeFrameSelection =\n | typeof SELECTION_COLLAPSE\n | typeof SELECTION_FARTHEST\n | typeof SELECTION_FROM\n | typeof SELECTION_NEAREST\n | typeof SELECTION_TO;\n\nexport type TimeFrameRangeEdge = typeof RANGE_FROM | typeof RANGE_TO;\nexport type TimeFrameShift = typeof SHIFT_BLOCK | typeof SHIFT_FRAME | typeof SHIFT_PERIOD;\nexport type TimeFrameSize = (typeof FRAME_SIZES)[number];\n\ntype TimeFrameBlockMetrics<T extends string> = {\n [K in T]: Readonly<WithTimeEdges<number>> & { readonly units: number };\n};\n\nexport type TimeFrameBlock = TimeFrameBlockMetrics<'inner' | 'outer'> &\n Readonly<{\n [K: number]: readonly [number, number];\n month: Month;\n year: number;\n }>;\n\nexport type TimeSlice = Readonly<WithTimeEdges<number>> &\n Readonly<{\n offsets: Readonly<WithTimeEdges<number>>;\n span: number;\n }>;\n\nexport type TimeSliceFactory = {\n (fromTime?: Time, toTime?: Time): TimeSlice;\n (time?: Time, timeEdge?: TimeFrameRangeEdge): TimeSlice;\n};\n\nexport const enum CalendarShiftControlFlag {\n PREV = 0x1,\n BLOCK = 0x0,\n FRAME = 0x2,\n PERIOD = 0x4,\n}\n\nexport enum CalendarShiftControlsFlag {\n PREV_PERIOD = CalendarShiftControlFlag.PREV | CalendarShiftControlFlag.PERIOD,\n PREV_FRAME = CalendarShiftControlFlag.PREV | CalendarShiftControlFlag.FRAME,\n PREV = CalendarShiftControlFlag.PREV | CalendarShiftControlFlag.BLOCK,\n NEXT = CalendarShiftControlFlag.BLOCK,\n NEXT_FRAME = CalendarShiftControlFlag.FRAME,\n NEXT_PERIOD = CalendarShiftControlFlag.PERIOD,\n}\n\nexport type CalendarShiftControl = keyof typeof CalendarShiftControlsFlag;\nexport type CalendarShiftControls = (typeof CALENDAR_CONTROLS)[number];\nexport type CalendarSelection = (typeof CALENDAR_SELECTIONS)[number];\n\nexport type CalendarConfig = {\n blocks?: TimeFrameSize;\n controls?: CalendarShiftControls;\n firstWeekDay?: FirstWeekDay;\n fixedBlockHeight?: boolean;\n highlight?: CalendarSelection | string;\n locale?: string;\n minified?: boolean;\n timeslice?: TimeSlice;\n trackCurrentDay?: boolean;\n};\n\nexport type CalendarFlagsRecord = Readonly<{\n [K in TimeFlagProp]?: 1;\n}>;\n\nexport type CalendarBlock = Readonly<{\n datetime: string;\n label: string;\n month: number;\n year: number;\n}>;\n\nexport type CalendarBlockCellData = Readonly<{\n datetime: string;\n flags: CalendarFlagsRecord;\n index: number;\n label: string;\n timestamp: number;\n}>;\n\nexport type CalendarDayOfWeekData = Readonly<{\n flags: CalendarFlagsRecord;\n labels: Readonly<{ [K in DayOfWeekLabelFormat]: string }>;\n}>;\n\nexport type IndexedCalendarBlock = Indexed<Indexed<CalendarBlockCellData>> & CalendarBlock;\n\nexport type CalendarGridControls = Readonly<{\n [P in CalendarShiftControl]?: (evt?: Event) => boolean;\n}>;\n\nexport type CalendarGridControlRecord = [CalendarShiftControl, Exclude<CalendarGridControls[CalendarShiftControl], undefined>];\n\nexport type CalendarGrid = Indexed<IndexedCalendarBlock> &\n Readonly<{\n config: {\n (config?: CalendarConfig): CalendarConfig;\n cursorIndex: WithGetSetProperty<(this: CalendarConfig, evt: Event) => number | undefined>['_'];\n shiftFactor: WithGetSetProperty<(this: CalendarConfig, evt: Event, target: CalendarShiftControl) => number | undefined>['_'];\n watch: WithGetSetProperty<WatchListCallable<any, CalendarConfig>>['_'];\n };\n controls: Indexed<CalendarGridControlRecord> & CalendarGridControls;\n cursor: (evt?: Event) => boolean;\n highlight: WithTimeEdges<WithGetSetProperty<number | undefined>['_']> & Readonly<{ blank: boolean }>;\n rowspan: number;\n weekdays: Indexed<CalendarDayOfWeekData>;\n }>;\n\nexport type CalendarFacade = {\n (init?: CalendarConfig | TimeFrameSize | WatchListCallable<any, CalendarConfig>): Readonly<{\n readonly grid: CalendarGrid;\n readonly kill: () => void;\n }>;\n readonly controls: Readonly<{\n ALL: typeof CONTROLS_ALL;\n MINIMAL: typeof CONTROLS_MINIMAL;\n NONE: typeof CONTROLS_NONE;\n }>;\n readonly highlight: Readonly<{\n ONE: typeof SELECT_ONE;\n MANY: typeof SELECT_MANY;\n NONE: typeof SELECT_NONE;\n }>;\n readonly slice: TimeSliceFactory &\n Readonly<{\n FROM: typeof RANGE_FROM;\n SINCE_NOW: TimeSlice;\n TO: typeof RANGE_TO;\n UNBOUNDED: TimeSlice;\n UNTIL_NOW: TimeSlice;\n }>;\n};\n\nexport type CalendarWatchAtoms = Partial<WithTimeEdges<number>> & {\n blocks?: TimeFrameSize;\n cells?: number;\n controls?: CalendarShiftControls;\n cursor?: number;\n highlight?: CalendarSelection;\n locale?: string;\n minified?: boolean;\n origin?: number;\n today: number;\n};\n","import { CalendarFlagsRecord, TimeFlag, TimeFlagProp } from '../../types';\nimport { isString, struct, withFreezeProxyHandlers } from '../../../../../../utils';\n\nconst createFlagsRecord = (() => {\n const CACHE = {} as { [K: number]: CalendarFlagsRecord };\n const FLAG_PROPS = Object.keys(TimeFlag).filter(prop => isNaN(+prop)) as TimeFlagProp[];\n\n const isFlagProp = (property: string | symbol): property is TimeFlagProp =>\n property !== 'ALL' && isString(property) && FLAG_PROPS.includes(property as TimeFlagProp);\n\n return (flags: number): CalendarFlagsRecord => {\n const flagsTruncated = flags & TimeFlag.ALL;\n\n if (!CACHE[flagsTruncated]) {\n CACHE[flagsTruncated] = new Proxy(\n struct({\n valueOf: { value: () => flagsTruncated },\n }),\n withFreezeProxyHandlers({\n get: (target: {}, property: string | symbol) => {\n switch (property) {\n case 'valueOf':\n return target.valueOf;\n case Symbol.toStringTag:\n return '_';\n default:\n if (!isFlagProp(property)) return;\n }\n\n return flagsTruncated & (TimeFlag[property] as number) ? 1 : undefined;\n },\n })\n ) as CalendarFlagsRecord;\n }\n\n return CACHE[flagsTruncated] as CalendarFlagsRecord;\n };\n})();\n\nexport default createFlagsRecord;\n","import { downsizeTimeFrame, resolveTimeFrameBlockSize } from '../common/utils';\nimport { UNBOUNDED_SLICE } from '../../timeslice';\nimport { computeTimestampOffset } from '../../utils';\nimport {\n CURSOR_BACKWARD,\n CURSOR_BLOCK_END,\n CURSOR_BLOCK_START,\n CURSOR_DOWNWARD,\n CURSOR_FORWARD,\n CURSOR_LINE_END,\n CURSOR_LINE_START,\n CURSOR_NEXT_BLOCK,\n CURSOR_PREV_BLOCK,\n CURSOR_UPWARD,\n FIRST_WEEK_DAYS,\n SELECTION_COLLAPSE,\n SELECTION_FARTHEST,\n SELECTION_FROM,\n SELECTION_NEAREST,\n SELECTION_TO,\n SHIFT_BLOCK,\n SHIFT_FRAME,\n SHIFT_PERIOD,\n} from '../../constants';\nimport createFlagsRecord from '../common/flags';\nimport { createIndexed } from '../../../../../../primitives/auxiliary/indexed';\nimport type { WatchListCallable } from '../../../../../../primitives/reactive/watchlist';\nimport {\n clamp,\n enumerable,\n isBitSafeInteger,\n isBoolean,\n isFunction,\n isInfinity,\n isNullish,\n isUndefined,\n mid,\n mod,\n struct,\n} from '../../../../../../utils';\nimport today from '../../../../../../primitives/time/today';\nimport {\n CalendarBlock,\n CalendarBlockCellData,\n CalendarDayOfWeekData,\n FirstWeekDay,\n IndexedCalendarBlock,\n Time,\n TimeFrameBlock,\n TimeFrameCursor,\n TimeFrameSelection,\n TimeFrameShift,\n TimeFrameSize,\n TimeSlice,\n} from '../../types';\n\nexport default abstract class TimeFrame {\n static #DEFAULT_LOCALE = 'en-US' as const;\n\n #cursorBlockIndex: number = 0;\n #cursorBlockStartIndex!: number;\n #cursorBlockEndIndex!: number;\n #cursorStartIndex: number = -1;\n #cursorEndIndex: number = -1;\n #cursorIndex!: number;\n #cursorOffset!: number;\n #cursorTimestamp!: number;\n #dynamicBlockHeight: boolean = false;\n #effect?: WatchListCallable;\n #firstWeekDay: FirstWeekDay = 0;\n #frameBlocksCached: IndexedCalendarBlock[] = [];\n #locale: string = TimeFrame.#DEFAULT_LOCALE;\n #maxFrameSize: TimeFrameSize = 12;\n #selectionStartTimestamp?: number;\n #selectionEndTimestamp?: number;\n #size: TimeFrameSize = 1;\n #timeslice!: TimeSlice;\n #today = today();\n #unwatchCurrentDay?: () => void;\n\n #fromTimestamp: number = -Infinity;\n #toTimestamp: number = Infinity;\n #fromBlockOffsetFromOrigin: number = -Infinity;\n #toBlockOffsetFromOrigin: number = Infinity;\n #numberOfBlocks: number = Infinity;\n #numberOfUnits: number = 0;\n\n protected daysInWeek: number = 0;\n protected origin!: number;\n protected originTimestamp!: number;\n\n protected abstract getCursorBlockOriginTimestampOffset(timestamp: number): number;\n protected abstract getDayOfWeekAtIndex(index: number): CalendarDayOfWeekData;\n protected abstract getEdgeBlockOffsetsFromOrigin(): [number, number];\n protected abstract getFormattedDataForBlockCell(time: Time): [string, string];\n protected abstract getFormattedDataForFrameBlock(time: Time): [string, string];\n protected abstract getFrameBlockAtIndex(index: number): TimeFrameBlock;\n protected abstract getUnitsForFrameBlockAtIndex(index: number): number;\n protected abstract getUnitsOffsetForTimestamp(startTimestamp: number, timestamp: number): number;\n protected abstract reoriginate(): void;\n protected abstract reslice(): void;\n protected abstract shiftOrigin(offset: number): void;\n\n abstract getTimestampAtIndex(indexOffset: number): number;\n abstract withCurrentDayTimestamp(timestamp: number): void;\n\n abstract get currentDayTimestamp(): number;\n abstract get rowspan(): number;\n\n #daysOfWeek = createIndexed(() => this.daysInWeek, this.getDayOfWeekAtIndex.bind(this));\n #frameBlocks = createIndexed(() => this.#size, this.#getFrameBlockAtIndex.bind(this));\n\n protected get fromTimestamp() {\n return this.#fromTimestamp;\n }\n\n protected get toTimestamp() {\n return this.#toTimestamp;\n }\n\n protected get numberOfBlocks() {\n return this.#numberOfBlocks;\n }\n\n get blankSelection() {\n return this.#selectionStartTimestamp === this.#selectionEndTimestamp && isUndefined(this.#selectionEndTimestamp);\n }\n\n get cursor() {\n return this.#cursorIndex ?? -1;\n }\n\n get daysOfWeek() {\n return this.#daysOfWeek;\n }\n\n get dynamicBlockHeight(): boolean {\n return this.#dynamicBlockHeight;\n }\n\n set dynamicBlockHeight(bool: boolean | null | undefined) {\n if (isNullish(bool)) this.#dynamicBlockHeight = !!bool;\n else if (isBoolean(bool)) this.#dynamicBlockHeight = bool;\n }\n\n set effect(effect: WatchListCallable | null | undefined) {\n if (isNullish(effect)) this.#effect = undefined;\n else if (isFunction(effect)) this.#effect = effect;\n }\n\n get firstWeekDay(): FirstWeekDay {\n return this.#firstWeekDay;\n }\n\n set firstWeekDay(day: FirstWeekDay | null | undefined) {\n if (!isNullish(day)) {\n if (!FIRST_WEEK_DAYS.includes(day)) return;\n if (this.#firstWeekDay === (this.#firstWeekDay = day)) return;\n } else this.firstWeekDay = 0;\n }\n\n get frameBlocks() {\n return this.#frameBlocks;\n }\n\n get isAtEnd() {\n return !isInfinity(this.#toBlockOffsetFromOrigin) && this.#toBlockOffsetFromOrigin === this.#size - 1;\n }\n\n get isAtStart() {\n return !isInfinity(this.#fromBlockOffsetFromOrigin) && this.#fromBlockOffsetFromOrigin === 0;\n }\n\n get locale(): string {\n return this.#locale;\n }\n\n set locale(locale: string | Intl.Locale | null | undefined) {\n const currentLocale = this.#locale;\n\n if (isNullish(locale)) {\n this.#locale = TimeFrame.#DEFAULT_LOCALE;\n } else if (typeof Intl !== 'undefined') {\n try {\n this.#locale = new Intl.Locale(locale as NonNullable<typeof locale>).toString();\n } catch {\n this.#locale = TimeFrame.#DEFAULT_LOCALE;\n }\n }\n\n if (this.#locale !== currentLocale) this.refreshFrame(true);\n }\n\n get selectionStart() {\n return this.#selectionStartTimestamp;\n }\n\n get selectionEnd() {\n return this.#selectionEndTimestamp;\n }\n\n get size(): TimeFrameSize {\n return this.#size;\n }\n\n set size(size: TimeFrameSize | null | undefined) {\n const nextFrameSize = Math.min((!isNullish(size) && resolveTimeFrameBlockSize(size)) || 1, this.#maxFrameSize) as TimeFrameSize;\n if (this.#size === (this.#size = nextFrameSize)) return;\n this.#shiftOriginIfNecessary();\n this.refreshFrame();\n }\n\n get timeslice(): TimeSlice {\n return this.#timeslice;\n }\n\n set timeslice(timeslice: TimeSlice | null | undefined) {\n if (timeslice === this.#timeslice || (isNullish(timeslice) && this.#timeslice === UNBOUNDED_SLICE)) return;\n\n const { from, to, span, offsets } = timeslice as TimeSlice;\n\n this.#timeslice = timeslice as TimeSlice;\n this.#fromTimestamp = from - offsets.from;\n this.#toTimestamp = to - offsets.to;\n this.#numberOfBlocks = span;\n\n const selectionStartTimestamp = isUndefined(this.#selectionStartTimestamp)\n ? this.#selectionStartTimestamp\n : Math.max(this.#selectionStartTimestamp, from);\n const selectionEndTimestamp = isUndefined(this.#selectionEndTimestamp)\n ? this.#selectionEndTimestamp\n : Math.min(this.#selectionEndTimestamp, to);\n\n if (selectionStartTimestamp === this.#selectionStartTimestamp || selectionEndTimestamp === this.#selectionEndTimestamp) {\n this.#selectionStartTimestamp = selectionStartTimestamp;\n this.#selectionEndTimestamp = selectionEndTimestamp;\n } else this.#selectionStartTimestamp = this.#selectionEndTimestamp = undefined;\n\n this.reslice();\n this.#maxFrameSize = downsizeTimeFrame(12, this.numberOfBlocks);\n this.#size = downsizeTimeFrame(this.#size, this.numberOfBlocks);\n\n this.shiftFrameToTimestamp(this.#cursorTimestamp);\n }\n\n set trackCurrentDay(bool: boolean | null | undefined) {\n if (isBoolean(bool)) {\n if (bool && !this.#unwatchCurrentDay) {\n this.#unwatchCurrentDay = this.#today.subscribe(this.refreshFrame.bind(this, true));\n } else if (!bool && this.#unwatchCurrentDay) {\n this.#unwatchCurrentDay();\n this.#unwatchCurrentDay = undefined;\n }\n } else if (isNullish(bool)) this.trackCurrentDay = false;\n }\n\n get units() {\n return this.#numberOfUnits;\n }\n\n #getClampedFrameOffset(frameOffset: number) {\n return clamp(this.#fromBlockOffsetFromOrigin, frameOffset || 0, this.#toBlockOffsetFromOrigin - this.#size + 1);\n }\n\n #getContainedTimestamp(time?: Time, withMidRangeFallback = true): [number, number] {\n let timestamp = new Date(time as Time).getTime();\n\n if (isNaN(timestamp)) return this.#getContainedTimestamp(Date.now());\n\n const { from, to } = this.#timeslice;\n const clampedTimestamp = clamp(from, timestamp, to);\n\n if (clampedTimestamp !== timestamp && withMidRangeFallback) {\n timestamp = mid(from, to);\n if (isNaN(timestamp) || isInfinity(timestamp)) {\n timestamp = clampedTimestamp;\n }\n } else timestamp = clampedTimestamp;\n\n const offset = computeTimestampOffset(timestamp);\n\n return [timestamp - offset, offset];\n }\n\n #getFrameBlockAtIndex(index: number): IndexedCalendarBlock | undefined {\n if (!(isBitSafeInteger(index) && index >= 0 && index < this.#size)) return;\n\n if (!this.#frameBlocksCached[index]) {\n const block = this.getFrameBlockAtIndex(index);\n if (!block) return undefined as unknown as IndexedCalendarBlock;\n\n const dateString = `${block.year}-${`0${1 + block.month}`.slice(-2)}-01`;\n const [label, datetime] = this.getFormattedDataForFrameBlock(new Date(dateString).setHours(12));\n const blockStartIndex = block.outer.from;\n\n this.#frameBlocksCached[index] = createIndexed<CalendarBlock>(\n {\n datetime: enumerable(datetime),\n label: enumerable(label),\n length: enumerable(Math.ceil(block.outer.units / this.rowspan)),\n month: enumerable(block.month),\n year: enumerable(block.year),\n },\n index => {\n const indexOffset = index * this.rowspan;\n\n return createIndexed(this.rowspan, index => {\n const [timestamp, flags] = block[index + indexOffset] as (typeof block)[number];\n const [label, datetime] = this.getFormattedDataForBlockCell(new Date(timestamp).setHours(12));\n\n return struct({\n datetime: enumerable(datetime),\n flags: enumerable(createFlagsRecord(flags)),\n index: enumerable(blockStartIndex + index + indexOffset),\n label: enumerable(label),\n timestamp: enumerable(timestamp),\n }) as CalendarBlockCellData;\n });\n }\n );\n }\n\n return this.#frameBlocksCached[index] as IndexedCalendarBlock;\n }\n\n #shiftFrameCursorByOffset(offset: number): void {\n if (offset === 0) return;\n this.#cursorOffset += offset;\n this.refreshFrame();\n }\n\n #shiftOrigin(offset: number) {\n const clampedOffset = this.#getClampedFrameOffset(offset);\n if (clampedOffset) {\n this.shiftOrigin(clampedOffset);\n this.#fromBlockOffsetFromOrigin -= clampedOffset;\n this.#toBlockOffsetFromOrigin -= clampedOffset;\n this.#cursorBlockIndex = mod(this.#cursorBlockIndex - clampedOffset, this.#size);\n this.refreshFrame();\n }\n }\n\n #shiftOriginIfNecessary() {\n const size_1 = this.#size - 1;\n const offset = Math.min(size_1 - (this.origin % this.#size), this.#toBlockOffsetFromOrigin) - size_1;\n if (offset) this.#shiftOrigin(offset);\n }\n\n protected initialize() {\n this.withCurrentDayTimestamp(this.#today.timestamp);\n this.timeslice = UNBOUNDED_SLICE;\n }\n\n protected refreshFrame(skipCursorRefresh = false): void {\n this.#frameBlocksCached.length = 0;\n\n if (!(isUndefined(this.#cursorOffset) || skipCursorRefresh)) {\n const cursorBlock = this.getFrameBlockAtIndex(this.#cursorBlockIndex) as TimeFrameBlock;\n const { from: startIndex, to: endIndex } = cursorBlock.inner;\n const [nextCursorTimestamp] = this.#getContainedTimestamp(this.getTimestampAtIndex(startIndex + this.#cursorOffset), false);\n\n this.#cursorOffset = this.getUnitsOffsetForTimestamp(this.getTimestampAtIndex(startIndex), nextCursorTimestamp);\n\n const nextCursorOffset = startIndex + this.#cursorOffset;\n const clampedNextCursorOffset = clamp(startIndex, nextCursorOffset, endIndex);\n\n if (clampedNextCursorOffset > nextCursorOffset) {\n this.#cursorOffset = this.getUnitsForFrameBlockAtIndex(--this.#cursorBlockIndex) + nextCursorOffset - clampedNextCursorOffset;\n if (this.#cursorBlockIndex >= 0) return this.refreshFrame();\n this.#cursorBlockIndex = this.#size - 1;\n return this.shiftFrameByOffset(-1, SHIFT_FRAME);\n }\n\n if (clampedNextCursorOffset < nextCursorOffset) {\n this.#cursorOffset = nextCursorOffset - clampedNextCursorOffset - 1;\n if (++this.#cursorBlockIndex < this.#size) return this.refreshFrame();\n this.#cursorBlockIndex = 0;\n return this.shiftFrameByOffset(1, SHIFT_FRAME);\n }\n\n this.#cursorBlockStartIndex = startIndex;\n this.#cursorBlockEndIndex = endIndex;\n this.#cursorTimestamp = this.#getContainedTimestamp(this.getTimestampAtIndex(nextCursorOffset), false)[0];\n this.#cursorOffset = this.getCursorBlockOriginTimestampOffset(this.#cursorTimestamp);\n this.#cursorIndex = startIndex + this.#cursorOffset;\n\n const firstBlock = this.#cursorBlockIndex > 0 ? (this.getFrameBlockAtIndex(0) as TimeFrameBlock) : cursorBlock;\n const lastBlock = this.#cursorBlockIndex < this.#size - 1 ? (this.getFrameBlockAtIndex(this.#size - 1) as TimeFrameBlock) : cursorBlock;\n\n this.#cursorStartIndex = firstBlock.inner.from;\n this.#cursorEndIndex = lastBlock.inner.to;\n this.#numberOfUnits = lastBlock.outer.to;\n }\n\n this.withCurrentDayTimestamp(this.#today.timestamp);\n this.#effect?.();\n }\n\n shiftFrameByOffset(offset?: number, offsetType?: TimeFrameShift) {\n if (offset && isBitSafeInteger(offset)) {\n switch (offsetType) {\n case SHIFT_BLOCK:\n return this.#shiftOrigin(offset);\n case SHIFT_PERIOD:\n return this.#shiftOrigin(offset * 12);\n case SHIFT_FRAME:\n default:\n return this.#shiftOrigin(offset * this.#size);\n }\n }\n }\n\n shiftFrameCursor(nextCursorPosition: TimeFrameCursor | number) {\n switch (nextCursorPosition) {\n case CURSOR_BACKWARD:\n return this.#shiftFrameCursorByOffset(-1);\n case CURSOR_FORWARD:\n return this.#shiftFrameCursorByOffset(1);\n case CURSOR_UPWARD:\n return this.#shiftFrameCursorByOffset(-this.rowspan);\n case CURSOR_DOWNWARD:\n return this.#shiftFrameCursorByOffset(this.rowspan);\n case CURSOR_BLOCK_START:\n return this.#shiftFrameCursorByOffset(this.#cursorBlockStartIndex - this.#cursorIndex);\n case CURSOR_BLOCK_END:\n return this.#shiftFrameCursorByOffset(this.#cursorBlockEndIndex - this.#cursorIndex);\n case CURSOR_LINE_START:\n return this.#shiftFrameCursorByOffset(-(this.#cursorIndex % this.rowspan));\n case CURSOR_LINE_END:\n return this.#shiftFrameCursorByOffset(this.rowspan - ((this.#cursorIndex % this.rowspan) + 1));\n case CURSOR_PREV_BLOCK:\n return this.#shiftFrameCursorByOffset(-this.getUnitsForFrameBlockAtIndex((this.#cursorBlockIndex ?? 0) - 1));\n case CURSOR_NEXT_BLOCK:\n return this.#shiftFrameCursorByOffset(this.getUnitsForFrameBlockAtIndex(this.#cursorBlockIndex ?? 0));\n }\n\n if (nextCursorPosition < 0) return;\n\n if (nextCursorPosition >= this.#cursorStartIndex && nextCursorPosition <= this.#cursorEndIndex) {\n return this.#shiftFrameCursorByOffset(nextCursorPosition - this.#cursorIndex);\n }\n }\n\n shiftFrameToTimestamp(timestamp?: number) {\n const containedTimestamp = this.#getContainedTimestamp(timestamp, false)[0];\n this.#cursorOffset = this.getCursorBlockOriginTimestampOffset((this.#cursorTimestamp = this.originTimestamp = containedTimestamp));\n this.reoriginate();\n\n [this.#fromBlockOffsetFromOrigin, this.#toBlockOffsetFromOrigin] = this.getEdgeBlockOffsetsFromOrigin();\n this.#shiftOriginIfNecessary();\n this.refreshFrame();\n\n this.#shiftFrameCursorByOffset(this.getUnitsOffsetForTimestamp(this.getTimestampAtIndex(this.#cursorIndex), containedTimestamp));\n }\n\n clearSelection() {\n if (this.blankSelection) return;\n this.#selectionStartTimestamp = this.#selectionEndTimestamp = undefined;\n this.refreshFrame(true);\n }\n\n getCursorOrderForTimeRelativeToSelectionEdge(time: Time, selectionEdge: typeof SELECTION_FROM | typeof SELECTION_TO = SELECTION_FROM) {\n let selectionEdgeTimestamp: number | undefined;\n let invertedComparison = false;\n\n switch (selectionEdge) {\n case SELECTION_FROM:\n selectionEdgeTimestamp = this.#selectionStartTimestamp;\n break;\n case SELECTION_TO:\n selectionEdgeTimestamp = this.#selectionEndTimestamp;\n invertedComparison = true;\n break;\n }\n\n if (isUndefined(selectionEdgeTimestamp)) return 0;\n\n const timestamp = this.#getContainedTimestamp(time, false).reduce((a, b) => a + b, 0);\n const timestampOffset = this.getUnitsOffsetForTimestamp(selectionEdgeTimestamp, timestamp) * (invertedComparison ? -1 : 1);\n return timestampOffset && (timestampOffset > 0 ? 1 : -1);\n }\n\n updateSelection(time: Time, selection?: TimeFrameSelection) {\n const currentStart = this.#selectionStartTimestamp as number;\n const currentEnd = this.#selectionEndTimestamp as number;\n const timestamp = this.#getContainedTimestamp(time, false).reduce((a, b) => a + b, 0);\n\n if (selection === SELECTION_FARTHEST) {\n if (timestamp <= currentStart) selection = SELECTION_TO;\n else if (timestamp >= currentEnd) selection = SELECTION_FROM;\n }\n\n switch (selection) {\n case SELECTION_FROM:\n this.#selectionStartTimestamp = timestamp;\n this.#selectionEndTimestamp = Math.max(this.#selectionStartTimestamp, currentEnd ?? timestamp);\n break;\n case SELECTION_TO:\n this.#selectionEndTimestamp = timestamp;\n this.#selectionStartTimestamp = Math.min(currentStart ?? timestamp, this.#selectionEndTimestamp);\n break;\n case SELECTION_FARTHEST:\n case SELECTION_NEAREST: {\n let startDistance = Math.abs(timestamp - (currentStart ?? timestamp));\n let endDistance = Math.abs(timestamp - (currentEnd ?? timestamp));\n\n if (selection === SELECTION_NEAREST) {\n [startDistance, endDistance] = [endDistance, startDistance];\n }\n\n if (startDistance > endDistance) {\n this.#selectionStartTimestamp = timestamp;\n } else this.#selectionEndTimestamp = timestamp;\n\n break;\n }\n case SELECTION_COLLAPSE:\n default:\n this.#selectionStartTimestamp = this.#selectionEndTimestamp = timestamp;\n break;\n }\n\n if (this.#selectionStartTimestamp !== currentStart || this.#selectionEndTimestamp !== currentEnd) {\n this.refreshFrame(true);\n }\n }\n}\n","import TimeFrame from './TimeFrame';\nimport { getWeekendDays } from '../common/utils';\nimport { computeTimestampOffset, getEdgesDistance, getMonthDays } from '../../utils';\nimport { DAY_MS, DAY_OF_WEEK_FORMATS, MAXIMUM_MONTH_UNITS } from '../../constants';\nimport createFlagsRecord from '../common/flags';\nimport {\n enumerable,\n isBitSafeInteger,\n isInfinity,\n isString,\n isUndefined,\n struct,\n structFrom,\n withFreezeProxyHandlers,\n} from '../../../../../../utils';\nimport {\n CalendarDayOfWeekData,\n DayOfWeekLabelFormat,\n FirstWeekDay,\n Month,\n MonthDays,\n Time,\n TimeFlag,\n TimeFrameBlock,\n TimeFrameSelection,\n WeekDay,\n} from '../../types';\n\nexport default class MonthFrame extends TimeFrame {\n #daysInWeek = 7 as const;\n #daysOfWeekCached: CalendarDayOfWeekData[] = [];\n #daysOfWeekend: readonly WeekDay[] = getWeekendDays(this.firstWeekDay);\n #currentDayTimestamp!: number;\n #fromTimestamp: number = -Infinity;\n #toTimestamp: number = Infinity;\n #numberOfBlocks: number = Infinity;\n #originMonthStartDate!: number;\n #originMonthStartOffset!: WeekDay;\n #originMonthStartTimestamp!: number;\n #originYear!: number;\n #selectionFromTimestamp?: number;\n #selectionToTimestamp?: number;\n\n protected daysInWeek: number = this.#daysInWeek;\n protected declare origin: Month;\n\n constructor() {\n super();\n this.initialize();\n }\n\n protected get fromTimestamp() {\n return this.#fromTimestamp;\n }\n\n protected get toTimestamp() {\n return this.#toTimestamp;\n }\n\n protected get numberOfBlocks() {\n return this.#numberOfBlocks;\n }\n\n get currentDayTimestamp() {\n return this.#currentDayTimestamp;\n }\n\n get dynamicBlockHeight(): boolean {\n return super.dynamicBlockHeight;\n }\n\n set dynamicBlockHeight(bool: boolean | null | undefined) {\n const current = this.dynamicBlockHeight;\n super.dynamicBlockHeight = bool;\n if (this.dynamicBlockHeight !== current) this.refreshFrame(true);\n }\n\n get rowspan() {\n return this.#daysInWeek;\n }\n\n get firstWeekDay(): FirstWeekDay {\n return super.firstWeekDay;\n }\n\n set firstWeekDay(day: FirstWeekDay | null | undefined) {\n const current = this.firstWeekDay;\n super.firstWeekDay = day;\n\n if (this.firstWeekDay === current) return;\n\n this.#daysOfWeekCached.length = 0;\n this.#daysOfWeekend = getWeekendDays(this.firstWeekDay);\n this.reoriginate();\n this.refreshFrame();\n }\n\n #getBlockTimestampOffsetFromOrigin(timestamp: number) {\n const offset = getEdgesDistance(timestamp, this.originTimestamp);\n return timestamp < this.originTimestamp ? 0 - offset : offset;\n }\n\n #getStartForTimestamp(timestamp?: number) {\n return isUndefined(timestamp) || isInfinity(timestamp) ? timestamp : timestamp - computeTimestampOffset(timestamp);\n }\n\n #updateSelectionTimestamps() {\n this.#selectionFromTimestamp = this.#getStartForTimestamp(this.selectionStart);\n this.#selectionToTimestamp = this.#getStartForTimestamp(this.selectionEnd);\n }\n\n protected getCursorBlockOriginTimestampOffset(timestamp: number): number {\n return new Date(timestamp).getDate() - 1;\n }\n\n protected getDayOfWeekAtIndex(index: number) {\n if (!this.#daysOfWeekCached[index]) {\n const date = new Date(this.getTimestampAtIndex(index));\n let flags = 0;\n\n if (this.#daysOfWeekend.includes(index as WeekDay)) flags |= TimeFlag.WEEKEND;\n if (index === 0) flags |= TimeFlag.LINE_START;\n else if (index === 6) flags |= TimeFlag.LINE_END;\n\n const labelDescriptors = {} as {\n [K in DayOfWeekLabelFormat]: {\n enumerable: true;\n value: string;\n };\n };\n\n for (const format of DAY_OF_WEEK_FORMATS) {\n labelDescriptors[format] = enumerable(\n date.toLocaleDateString(this.locale, { weekday: format })\n ) as (typeof labelDescriptors)[typeof format];\n }\n\n this.#daysOfWeekCached[index] = struct({\n flags: enumerable(createFlagsRecord(flags)),\n labels: enumerable(struct(labelDescriptors)),\n }) as CalendarDayOfWeekData;\n }\n\n return this.#daysOfWeekCached[index] as CalendarDayOfWeekData;\n }\n\n protected getEdgeBlockOffsetsFromOrigin(): [number, number] {\n return [this.#getBlockTimestampOffsetFromOrigin(this.#fromTimestamp), this.#getBlockTimestampOffsetFromOrigin(this.#toTimestamp)];\n }\n\n protected getFormattedDataForBlockCell(time: Time): [string, string] {\n const ISOString = new Date(time).toISOString();\n return [Number(ISOString.slice(8, 10)).toLocaleString(this.locale), ISOString.slice(0, 10)];\n }\n\n protected getFormattedDataForFrameBlock(time: Time): [string, string] {\n const date = new Date(time);\n return [date.toLocaleDateString(this.locale, { month: 'long', year: 'numeric' }), date.toISOString().slice(0, 7)];\n }\n\n protected getFrameBlockAtIndex(index: number): TimeFrameBlock {\n const [monthDays, month, year] = getMonthDays(this.origin, this.#originYear, index);\n const innerStartIndex = index > 0 ? this.getFrameBlockAtIndex(index - 1).inner.to + 1 : this.#originMonthStartOffset;\n const innerEndIndex = innerStartIndex + monthDays - 1;\n const outerStartIndex = Math.floor(innerStartIndex / 7) * 7;\n const outerEndAfterIndex = this.dynamicBlockHeight ? Math.ceil((innerEndIndex + 1) / 7) * 7 : outerStartIndex + MAXIMUM_MONTH_UNITS;\n const numberOfUnits = this.dynamicBlockHeight ? outerEndAfterIndex - outerStartIndex : MAXIMUM_MONTH_UNITS;\n\n const proxyForIndexPropertyAccess = new Proxy(\n struct(),\n withFreezeProxyHandlers({\n get: (target: {}, property: string | symbol, receiver: {}) => {\n if (isString(property)) {\n const offset = +property;\n\n if (isBitSafeInteger(offset) && offset >= 0 && offset < numberOfUnits) {\n const index = outerStartIndex + offset;\n const timestamp = this.getTimestampAtIndex(index);\n const weekDay = (index % this.#daysInWeek) as WeekDay;\n\n let flags = timestamp === this.currentDayTimestamp ? TimeFlag.CURRENT : 0;\n\n if (index === this.cursor) flags |= TimeFlag.CURSOR;\n if (this.#daysOfWeekend.includes(weekDay)) flags |= TimeFlag.WEEKEND;\n\n if (weekDay === 0) flags |= TimeFlag.LINE_START;\n else if (weekDay === this.#daysInWeek - 1) flags |= TimeFlag.LINE_END;\n\n if (index >= innerStartIndex && index <= innerEndIndex) {\n if (index === innerStartIndex) flags |= TimeFlag.BLOCK_START;\n else if (index === innerEndIndex) flags |= TimeFlag.BLOCK_END;\n flags |= TimeFlag.WITHIN_BLOCK;\n }\n\n if (timestamp >= this.fromTimestamp && timestamp <= this.toTimestamp) {\n if (timestamp === this.fromTimestamp) flags |= TimeFlag.RANGE_START;\n if (timestamp === this.toTimestamp) flags |= TimeFlag.RANGE_END;\n flags |= TimeFlag.WITHIN_RANGE;\n }\n\n if (timestamp >= (this.#selectionFromTimestamp as number) && timestamp <= (this.#selectionToTimestamp as number)) {\n if (timestamp === (this.#selectionFromTimestamp as number)) flags |= TimeFlag.SELECTION_START;\n if (timestamp === (this.#selectionToTimestamp as number)) flags |= TimeFlag.SELECTION_END;\n flags |= TimeFlag.WITHIN_SELECTION;\n }\n\n return [timestamp, flags] as const;\n }\n }\n\n return Reflect.get(target, property, receiver);\n },\n })\n );\n\n return structFrom(proxyForIndexPropertyAccess, {\n inner: {\n value: struct({\n from: { value: innerStartIndex },\n to: { value: innerEndIndex },\n units: { value: monthDays },\n }),\n },\n month: { value: month },\n outer: {\n value: struct({\n from: { value: outerStartIndex },\n to: { value: outerEndAfterIndex - 1 },\n units: { value: numberOfUnits },\n }),\n },\n year: { value: year },\n }) as TimeFrameBlock;\n }\n\n protected getUnitsForFrameBlockAtIndex(index: number): MonthDays {\n return getMonthDays(this.origin, this.#originYear, index)[0];\n }\n\n protected getUnitsOffsetForTimestamp(startTimestamp: number, timestamp: number) {\n return Math.round((timestamp - startTimestamp) / DAY_MS);\n }\n\n protected reoriginate() {\n const date = new Date(this.originTimestamp);\n const firstDayOffset = ((8 - ((date.getDate() - date.getDay() + this.firstWeekDay) % 7)) % 7) as WeekDay;\n\n this.origin = date.getMonth() as Month;\n this.#originYear = date.getFullYear();\n this.originTimestamp = date.setDate(1);\n this.#originMonthStartOffset = firstDayOffset;\n this.#originMonthStartTimestamp = date.setDate(1 - firstDayOffset);\n this.#originMonthStartDate = date.getDate();\n }\n\n protected reslice() {\n this.#updateSelectionTimestamps();\n this.#fromTimestamp = this.#getStartForTimestamp(super.fromTimestamp) as number;\n this.#toTimestamp = this.#getStartForTimestamp(super.toTimestamp) as number;\n this.#numberOfBlocks = getEdgesDistance(super.fromTimestamp, super.toTimestamp) + 1;\n }\n\n protected shiftOrigin(offset: number) {\n this.originTimestamp = new Date(this.originTimestamp).setMonth(this.origin + offset);\n this.reoriginate();\n }\n\n clearSelection() {\n super.clearSelection();\n this.#updateSelectionTimestamps();\n this.refreshFrame(true);\n }\n\n getTimestampAtIndex(indexOffset: number) {\n return new Date(this.#originMonthStartTimestamp).setDate(this.#originMonthStartDate + indexOffset);\n }\n\n updateSelection(time: Time, selection?: TimeFrameSelection) {\n super.updateSelection(time, selection);\n this.#updateSelectionTimestamps();\n this.refreshFrame(true);\n }\n\n withCurrentDayTimestamp(timestamp: number) {\n this.#currentDayTimestamp = this.#getStartForTimestamp(timestamp) as number;\n }\n}\n","import { InteractionKeyCode } from '../../../../types';\nimport {\n CALENDAR_CONTROLS,\n CALENDAR_SELECTIONS,\n CONTROLS_ALL,\n CONTROLS_MINIMAL,\n CONTROLS_NONE,\n CURSOR_BACKWARD,\n CURSOR_BLOCK_END,\n CURSOR_BLOCK_START,\n CURSOR_DOWNWARD,\n CURSOR_FORWARD,\n CURSOR_LINE_END,\n CURSOR_LINE_START,\n CURSOR_NEXT_BLOCK,\n CURSOR_PREV_BLOCK,\n CURSOR_UPWARD,\n FIRST_WEEK_DAYS,\n FRAME_SIZES,\n SELECT_MANY,\n SELECT_NONE,\n SELECT_ONE,\n SELECTION_COLLAPSE,\n SELECTION_FROM,\n SELECTION_TO,\n SHIFT_BLOCK,\n SHIFT_FRAME,\n SHIFT_PERIOD,\n} from '../constants';\nimport { createIndexed } from '../../../../../primitives/auxiliary/indexed';\nimport { createEffectStack, EffectStack } from '../../../../../primitives/reactive/effectStack';\nimport {\n createWatchlist,\n isWatchlistUnsubscribeToken,\n WatchList,\n WatchListCallable,\n WatchListSubscriptionCallback,\n} from '../../../../../primitives/reactive/watchlist';\nimport today from '../../../../../primitives/time/today';\nimport {\n boolify,\n boolOrTrue,\n EMPTY_OBJECT,\n isBitSafeInteger,\n isFunction,\n isNullish,\n isString,\n isUndefined,\n noop,\n pickFrom,\n struct,\n structFrom,\n withFreezeProxyHandlers,\n} from '../../../../../utils';\nimport { MonthFrame, TimeFrame /* , YearFrame */ } from '../timeframe';\nimport {\n CalendarConfig,\n CalendarDayOfWeekData,\n CalendarGrid,\n CalendarGridControlRecord,\n CalendarSelection,\n CalendarShiftControl,\n CalendarShiftControlFlag,\n CalendarShiftControlsFlag,\n CalendarWatchAtoms,\n} from '../types';\n\nexport default class Calendar {\n grid: CalendarGrid;\n kill: () => void;\n #config = EMPTY_OBJECT as CalendarConfig;\n #destructed = false;\n #frame?: TimeFrame;\n #highlightFrom?: number;\n #highlightTo?: number;\n #highlightInProgress = false;\n #highlightSelection?: CalendarSelection = SELECT_NONE;\n #pendingWatchNotification = false;\n #rangeOffsets?: [number, number, number, number, number, number];\n #lastHighlightRange?: string = this.#rangeOffsets?.join(' ');\n\n #cursorIndexFromEvent?: CalendarGrid['config']['cursorIndex'];\n #shiftFactorFromEvent?: CalendarGrid['config']['shiftFactor'];\n #watchCallback?: CalendarGrid['config']['watch'];\n #watchableEffect?: () => void;\n #unwatch?: () => void;\n\n #today = today();\n #shiftControlsHandles: CalendarGridControlRecord[1][] = [];\n #shiftControlsList?: CalendarShiftControl[];\n\n #shiftControls = new Proxy(\n createIndexed(() => this.#shiftControlsList?.length ?? 0, this.#getShiftControlRecordAtIndex.bind(this)),\n withFreezeProxyHandlers({\n get: (target: {}, property: string | symbol, receiver: {}): any => {\n const index = this.#shiftControlsList?.indexOf(property as CalendarShiftControl) ?? -1;\n return index >= 0 ? this.#getShiftControlRecordAtIndex(index)?.[1] : Reflect.get(target, property, receiver);\n },\n })\n ) as CalendarGrid['controls'];\n\n #watchlist?: WatchList<CalendarWatchAtoms> = createWatchlist({\n blocks: () => this.#frame?.size,\n cells: () => this.#frame?.units,\n controls: () => pickFrom(CALENDAR_CONTROLS, this.#config.controls),\n cursor: () => this.#frame?.cursor,\n from: () => this.#frame?.selectionStart,\n highlight: () => this.#highlightSelection,\n locale: () => this.#frame?.locale,\n minified: () => boolify(this.#config.minified),\n origin: () => this.#frame?.getTimestampAtIndex(0),\n to: () => this.#frame?.selectionEnd,\n today: () => this.#today.timestamp,\n });\n\n #lastWatchableSnapshot?: CalendarWatchAtoms = this.#watchlist?.snapshot;\n\n #chainedNotifyEffectStack?: EffectStack = createEffectStack(() => this.#watchCallback && this.#watchlist?.requestNotification());\n\n #chainedWatchEffectStack?: EffectStack = createEffectStack(() => this.#watchCallback?.call(this.#currentConfig));\n\n #grid = structFrom(\n createIndexed(\n () => this.#frame?.size ?? 0,\n index => this.#frame?.frameBlocks[index]\n ),\n {\n config: {\n value: Object.defineProperties(\n (config?: CalendarConfig) => {\n config && this.#configure(config);\n return this.#currentConfig;\n },\n {\n cursorIndex: {\n get: () => this.#cursorIndexFromEvent,\n set: (fn: CalendarGrid['config']['cursorIndex'] | null | undefined) => {\n if (this.#destructed) return;\n if (isNullish(fn)) this.#cursorIndexFromEvent = undefined;\n else if (isFunction(fn)) this.#cursorIndexFromEvent = fn;\n },\n },\n shiftFactor: {\n get: () => this.#shiftFactorFromEvent,\n set: (fn: CalendarGrid['config']['shiftFactor'] | null | undefined) => {\n if (this.#destructed) return;\n if (isNullish(fn)) this.#shiftFactorFromEvent = undefined;\n else if (isFunction(fn)) this.#shiftFactorFromEvent = fn;\n },\n },\n watch: {\n get: () => this.#watchCallback,\n set: (fn: CalendarGrid['config']['watch'] | null | undefined) => {\n if (this.#destructed) return;\n if (isFunction(fn)) {\n this.#watchCallback = fn;\n\n if (!this.#watchableEffect) {\n const watchCallback = this.#chainedNotifyEffectStack?.bind(Calendar.#watchableEffectCallback.bind(this));\n\n if (watchCallback) {\n this.#watchableEffect = this.#chainedNotifyEffectStack?.bind(noop);\n this.#unwatch = this.#watchlist?.subscribe(this.#chainedWatchEffectStack?.bind(watchCallback));\n this.#frame && (this.#frame.effect = this.#watchableEffect);\n }\n }\n\n if (!this.#pendingWatchNotification) return;\n\n this.#pendingWatchNotification = false;\n this.#watchableEffect?.();\n } else if (isNullish(fn)) this.#watchCallback = undefined;\n },\n },\n }\n ),\n },\n controls: { value: this.#shiftControls },\n cursor: {\n value: Object.defineProperties(\n (evt?: Event) => Calendar.#withNotifyEffect.call(this, (evt?: Event) => !!(evt && this.#cursorHandle(evt)))(evt),\n {\n valueOf: { value: () => this.#frame?.cursor ?? -1 },\n }\n ),\n },\n highlight: {\n value: (() => {\n const blank = () => this.#highlightFrom === this.#highlightTo && isUndefined(this.#highlightTo);\n\n const setter = (selection: typeof SELECTION_FROM | typeof SELECTION_TO) => (time?: number | null) =>\n Calendar.#withNotifyEffect.call(this, (time?: number | null) => {\n if (this.#destructed || !this.#highlightSelection || this.#highlightSelection === SELECT_NONE) return;\n if (isNullish(time)) return this.#clearHighlight();\n\n if (!blank()) {\n this.#frame?.updateSelection(time, selection);\n if (this.#highlightSelection === SELECT_MANY && this.#rangeOffsets) {\n this.#rangeHighlight(time, selection === SELECTION_FROM ? SELECTION_TO : SELECTION_FROM, this.#rangeOffsets);\n }\n } else this.#frame?.updateSelection(time, SELECTION_COLLAPSE);\n\n this.#highlightFrom = this.#frame?.selectionStart;\n this.#highlightTo = this.#frame?.selectionEnd;\n this.#frame?.shiftFrameToTimestamp(selection === SELECTION_FROM ? this.#highlightFrom : this.#highlightTo);\n })(time);\n\n return struct({\n blank: { get: blank },\n from: {\n get: () => this.#frame?.selectionStart ?? this.#highlightFrom,\n set: setter(SELECTION_FROM),\n },\n to: {\n get: () => this.#frame?.selectionEnd ?? this.#highlightTo,\n set: setter(SELECTION_TO),\n },\n });\n })(),\n },\n rowspan: { get: () => this.#frame?.rowspan ?? 0 },\n weekdays: { get: () => this.#frame?.daysOfWeek ?? Calendar.#DAYS_OF_WEEK_FALLBACK },\n }\n ) as CalendarGrid;\n\n static #RANGE_OFFSETS_FORMAT_REGEX = /^(?:0|[1-9]\\d*)(\\s+(?:0|[1-9]\\d*)?){0,5}?$/;\n static #CURSOR_POINTER_INTERACTION_EVENTS = ['click', 'mouseover', 'pointerover'];\n static #DAYS_OF_WEEK_FALLBACK = createIndexed(0, noop as () => CalendarDayOfWeekData);\n static #SHIFT_ACTIVATION_KEYS = [InteractionKeyCode.ENTER, InteractionKeyCode.SPACE];\n static #SHIFT_ALL_CONTROLS = Object.keys(CalendarShiftControlsFlag).filter(control => isNaN(+control)) as CalendarShiftControl[];\n static #SHIFT_MINIMAL_CONTROLS = ['PREV', 'NEXT'] as CalendarShiftControl[];\n\n static #getOffsetsFromRange(range?: string): [number, number, number, number, number, number] | undefined {\n if (!isString(range)) return;\n if (!Calendar.#RANGE_OFFSETS_FORMAT_REGEX.test(range)) return;\n const offsets = range.split(/\\s+/);\n return Array.from({ length: 6 }, (_, index) => parseInt(offsets[index] ?? '0')) as [number, number, number, number, number, number];\n }\n\n static #getShiftOffsetType(flags: number) {\n switch (flags & ~CalendarShiftControlFlag.PREV) {\n case CalendarShiftControlFlag.FRAME:\n return SHIFT_FRAME;\n case CalendarShiftControlFlag.PERIOD:\n return SHIFT_PERIOD;\n case CalendarShiftControlFlag.BLOCK:\n default:\n return SHIFT_BLOCK;\n }\n }\n\n static #getShiftOffsetUnit(flags: number) {\n return flags & CalendarShiftControlFlag.PREV ? -1 : 1;\n }\n\n static #watchableEffectCallback: WatchListSubscriptionCallback<CalendarWatchAtoms> = function (this: Calendar, snapshot) {\n if (isWatchlistUnsubscribeToken(snapshot)) return;\n\n let controlsChanged = false;\n let highlightChanged = false;\n let selectionChanged = false;\n const highlightRange = this.#rangeOffsets?.join(' ');\n\n for (const key of Object.keys(snapshot) as (keyof typeof snapshot)[]) {\n if (snapshot[key] === this.#lastWatchableSnapshot?.[key]) continue;\n if (key === 'controls') controlsChanged = true;\n else if (key === 'highlight') highlightChanged = true;\n else if (key === 'from' || key === 'to') selectionChanged = true;\n }\n\n if (this.#lastHighlightRange !== highlightRange) {\n this.#lastHighlightRange = highlightRange;\n highlightChanged = true;\n }\n\n this.#lastWatchableSnapshot = snapshot;\n\n if (this.#highlightInProgress && !selectionChanged) this.#restoreHighlight();\n if (controlsChanged) this.#refreshShiftControls();\n if (highlightChanged) this.#refreshHighlighting();\n };\n\n static #withNotifyEffect<T extends WatchListCallable = WatchListCallable>(this: Calendar, fn: T) {\n return this.#chainedNotifyEffectStack?.bind(fn) ?? fn;\n }\n\n constructor() {\n this.grid = this.#grid;\n this.kill = this.#destruct.bind(this);\n }\n\n get #currentConfig() {\n return { ...this.#config } as CalendarConfig;\n }\n\n get #timeframe() {\n // return (this.#config.minified as boolean) ? new YearFrame() : new MonthFrame();\n return new MonthFrame();\n }\n\n #canShiftInDirection(shiftDirection: 1 | -1) {\n return !!this.#frame && !(shiftDirection > 0 ? this.#frame.isAtEnd : this.#frame.isAtStart);\n }\n\n #configure(config: CalendarConfig) {\n if (this.#destructed) return;\n\n this.#rangeOffsets = undefined;\n\n const highlight = config?.highlight;\n const minified = boolify(this.#config.minified);\n\n if (!isString(highlight)) {\n this.#highlightSelection = pickFrom(CALENDAR_SELECTIONS, highlight, this.#highlightSelection);\n } else if ((this.#rangeOffsets = Calendar.#getOffsetsFromRange(highlight))) {\n this.#highlightSelection = SELECT_MANY;\n }\n\n this.#config = {\n ...this.#config,\n ...config,\n blocks: pickFrom(FRAME_SIZES, config?.blocks, this.#config.blocks),\n controls: pickFrom(CALENDAR_CONTROLS, config?.controls, this.#config.controls),\n firstWeekDay: pickFrom(FIRST_WEEK_DAYS, config?.firstWeekDay, this.#config.firstWeekDay),\n fixedBlockHeight: boolify(config?.fixedBlockHeight, this.#config.fixedBlockHeight),\n highlight: this.#highlightSelection,\n minified: boolify(config?.minified, this.#config.minified),\n trackCurrentDay: boolify(config?.trackCurrentDay, this.#config.trackCurrentDay),\n };\n\n if (!isFunction(this.#watchCallback)) {\n if (!this.#frame) {\n this.#frame = this.#timeframe;\n this.#reframe();\n this.#refreshShiftControls();\n this.#refreshHighlighting();\n } else this.#pendingWatchNotification = true;\n\n return;\n }\n\n if (!this.#frame || minified !== this.#config.minified) {\n this.#frame = this.#timeframe;\n this.#frame.effect = this.#watchableEffect;\n }\n\n this.#reframe();\n this.#watchableEffect?.();\n }\n\n #cursorHandle(evt?: Event): true | undefined {\n if (!(evt && this.#frame && isFunction(this.#watchCallback))) return;\n\n if (evt instanceof KeyboardEvent) {\n switch (evt.code) {\n case InteractionKeyCode.ARROW_LEFT:\n this.#frame.shiftFrameCursor(CURSOR_BACKWARD);\n break;\n case InteractionKeyCode.ARROW_RIGHT:\n this.#frame.shiftFrameCursor(CURSOR_FORWARD);\n break;\n case InteractionKeyCode.ARROW_UP:\n this.#frame.shiftFrameCursor(CURSOR_UPWARD);\n break;\n case InteractionKeyCode.ARROW_DOWN:\n this.#frame.shiftFrameCursor(CURSOR_DOWNWARD);\n break;\n case InteractionKeyCode.HOME:\n this.#frame.shiftFrameCursor(evt.ctrlKey ? CURSOR_BLOCK_START : CURSOR_LINE_START);\n break;\n case InteractionKeyCode.END:\n this.#frame.shiftFrameCursor(evt.ctrlKey ? CURSOR_BLOCK_END : CURSOR_LINE_END);\n break;\n case InteractionKeyCode.PAGE_UP:\n evt.shiftKey ? this.#frame.shiftFrameByOffset(-1, SHIFT_PERIOD) : this.#frame.shiftFrameCursor(CURSOR_PREV_BLOCK);\n break;\n case InteractionKeyCode.PAGE_DOWN:\n evt.shiftKey ? this.#frame.shiftFrameByOffset(1, SHIFT_PERIOD) : this.#frame.shiftFrameCursor(CURSOR_NEXT_BLOCK);\n break;\n case InteractionKeyCode.SPACE:\n case InteractionKeyCode.ENTER:\n this.#highlight();\n return true;\n default:\n return;\n }\n\n this.#highlightInProgress && this.#highlight(EMPTY_OBJECT);\n return true;\n }\n\n if (evt instanceof MouseEvent && Calendar.#CURSOR_POINTER_INTERACTION_EVENTS.includes(evt.type) && isFunction(this.#cursorIndexFromEvent)) {\n const cursorIndex = this.#cursorIndexFromEvent.call(this.#currentConfig, evt);\n\n if (!isBitSafeInteger(cursorIndex)) return;\n\n const isClick = evt.type === 'click';\n\n if (!(isClick || this.#highlightInProgress)) return;\n this.#frame.shiftFrameCursor(cursorIndex);\n\n if (this.#frame.cursor === cursorIndex) {\n isClick ? this.#highlight() : this.#highlight(EMPTY_OBJECT);\n return true;\n }\n }\n }\n\n #destruct() {\n if (this.#destructed) return;\n\n this.#unwatch?.();\n\n this.#chainedNotifyEffectStack =\n this.#chainedWatchEffectStack =\n this.#cursorIndexFromEvent =\n this.#frame =\n this.#highlightSelection =\n this.#lastHighlightRange =\n this.#lastWatchableSnapshot =\n this.#rangeOffsets =\n this.#shiftFactorFromEvent =\n this.#unwatch =\n this.#watchlist =\n this.#watchableEffect =\n this.#watchCallback =\n undefined;\n\n this.#config = EMPTY_OBJECT;\n this.#highlightInProgress = this.#pendingWatchNotification = false;\n this.#destructed = true;\n }\n\n #getShiftControlRecordAtIndex(index: number): CalendarGridControlRecord | undefined {\n if (!this.#shiftControlsList || index < 0 || index >= this.#shiftControlsList.length) return;\n\n const control = this.#shiftControlsList[index] as CalendarShiftControl;\n\n if (!this.#shiftControlsHandles[index]) {\n const flags = CalendarShiftControlsFlag[control];\n const shiftOffsetType = Calendar.#getShiftOffsetType(flags);\n const shiftOffsetUnit = Calendar.#getShiftOffsetUnit(flags);\n\n this.#shiftControlsHandles[index] = (...args: any[]) =>\n Calendar.#withNotifyEffect.call(this, (...args: any[]) => {\n const canShift = this.#canShiftInDirection(shiftOffsetUnit);\n if (!(canShift && args.length)) return canShift;\n\n const shiftFactor = this.#getShiftFactorFromEvent(control, args[0] as Event);\n if (isUndefined(shiftFactor)) return false;\n\n this.#frame?.shiftFrameByOffset(shiftOffsetUnit * shiftFactor, shiftOffsetType);\n return true;\n })(...args);\n }\n\n return [control, this.#shiftControlsHandles[index] as CalendarGridControlRecord[1]];\n }\n\n #getShiftFactorFromEvent(target: CalendarShiftControl, evt?: Event): number | undefined {\n if (!(this.#frame && isFunction(this.#watchCallback))) return;\n\n if (evt instanceof MouseEvent) {\n if (evt.type !== 'click') return;\n } else if (evt instanceof KeyboardEvent) {\n if (!Calendar.#SHIFT_ACTIVATION_KEYS.includes(evt.code as InteractionKeyCode)) return;\n } else return;\n\n let shiftFactor = 1;\n\n if (isFunction(this.#shiftFactorFromEvent)) {\n const factor = Number(this.#shiftFactorFromEvent.call(this.#currentConfig, evt, target));\n shiftFactor = Number.isInteger(factor) && factor >= 1 ? factor : shiftFactor;\n }\n\n return shiftFactor;\n }\n\n #highlight(secretFauxHighlightingHint?: any) {\n if (this.#destructed || !this.#frame) return;\n\n switch (this.#highlightSelection) {\n case SELECT_MANY:\n case SELECT_ONE:\n break;\n case SELECT_NONE:\n default:\n return;\n }\n\n const cursor = this.#frame.cursor;\n const fromTimestamp = this.#frame.getTimestampAtIndex(cursor);\n const toTimestamp = this.#frame.getTimestampAtIndex(cursor + 1) - 1;\n const range = this.#rangeOffsets;\n\n if (this.#highlightSelection === SELECT_ONE || this.#frame.blankSelection || range) {\n this.#highlightInProgress = !(this.#highlightSelection === SELECT_ONE || range);\n\n if (this.#highlightSelection === SELECT_MANY && range) {\n const selectionDirection = toTimestamp >= (this.#frame.selectionEnd as number) ? SELECTION_FROM : SELECTION_TO;\n\n selectionDirection === SELECTION_FROM\n ? this.#frame.updateSelection(toTimestamp, SELECTION_TO)\n : this.#frame.updateSelection(fromTimestamp, SELECTION_FROM);\n\n this.#rangeHighlight(\n (selectionDirection === SELECTION_FROM ? this.#frame.selectionEnd : this.#frame.selectionStart) as number,\n selectionDirection,\n range\n );\n } else {\n this.#frame.updateSelection(fromTimestamp, SELECTION_FROM);\n this.#frame.updateSelection(toTimestamp, SELECTION_TO);\n }\n } else {\n const isFauxHighlighting = secretFauxHighlightingHint === EMPTY_OBJECT;\n\n if (!isFauxHighlighting) this.#highlightInProgress = false;\n\n if (fromTimestamp <= this.#frame.selectionStart!) {\n const selectionStartDay = new Date(this.#frame.selectionStart!);\n const selectionStartDayEndTimestamp = selectionStartDay.setDate(selectionStartDay.getDate() + 1) - 1;\n\n if (fromTimestamp === this.#frame.selectionStart! && toTimestamp <= selectionStartDayEndTimestamp) {\n this.#frame.updateSelection(toTimestamp, SELECTION_TO);\n }\n\n this.#frame.updateSelection(fromTimestamp, SELECTION_FROM);\n } else {\n const selectionEndDay = new Date(this.#frame.selectionEnd!);\n const selectionEndDayStartTimestamp = selectionEndDay.setHours(0, 0, 0, 0);\n\n if (fromTimestamp <= this.#frame.selectionEnd! && fromTimestamp >= selectionEndDayStartTimestamp) {\n this.#frame.updateSelection(fromTimestamp, SELECTION_FROM);\n }\n\n this.#frame.updateSelection(toTimestamp, SELECTION_TO);\n }\n\n if (isFauxHighlighting) return;\n }\n\n this.#highlightFrom = this.#frame.selectionStart;\n this.#highlightTo = this.#frame.selectionEnd;\n }\n\n #clearHighlight() {\n this.#frame?.clearSelection();\n this.#highlightInProgress = false;\n this.#highlightFrom = this.#highlightTo = undefined;\n }\n\n #rangeHighlight(\n time: number,\n selectionDirection: typeof SELECTION_FROM | typeof SELECTION_TO,\n rangeOffsets?: [number, number, number, number, number, number]\n ) {\n if (!this.#frame) return;\n\n const date = new Date(time);\n const direction = selectionDirection === SELECTION_FROM ? -1 : 1;\n const [years = 0, months = 0, days = 0, hours = 0, minutes = 0, seconds = 0] = rangeOffsets ?? [];\n\n date.setFullYear(date.getFullYear() + years * direction, date.getMonth() + months * direction, date.getDate() + days * direction);\n date.setHours(date.getHours() + hours * direction, date.getMinutes() + minutes * direction, date.getSeconds() + seconds * direction);\n\n this.#frame.updateSelection(date.getTime() - direction, selectionDirection);\n }\n\n #restoreHighlight() {\n this.#highlightFrom && this.#frame?.updateSelection(this.#highlightFrom, SELECTION_FROM);\n this.#highlightTo && this.#frame?.updateSelection(this.#highlightTo, SELECTION_TO);\n this.#highlightInProgress = false;\n }\n\n #reframe() {\n if (!this.#frame) return;\n\n this.#frame.timeslice = this.#config.timeslice;\n this.#frame.dynamicBlockHeight = !this.#config.fixedBlockHeight;\n this.#frame.firstWeekDay = this.#config.firstWeekDay;\n this.#frame.locale = this.#config.locale;\n this.#frame.size = this.#config.blocks;\n this.#frame.trackCurrentDay = this.#config.trackCurrentDay;\n\n this.#restoreHighlight();\n }\n\n #refreshHighlighting() {\n switch (this.#highlightSelection) {\n case SELECT_MANY:\n if (!boolOrTrue(this.#frame?.blankSelection) && this.#rangeOffsets) {\n this.#rangeHighlight(this.#frame?.selectionStart!, SELECTION_TO, this.#rangeOffsets);\n }\n break;\n case SELECT_ONE:\n if (!boolOrTrue(this.#frame?.blankSelection)) {\n this.#frame?.updateSelection(new Date(this.#frame?.selectionStart!).setHours(23, 59, 59, 999), SELECTION_TO);\n }\n break;\n case SELECT_NONE:\n default:\n this.#clearHighlight();\n return;\n }\n }\n\n #refreshShiftControls() {\n switch (this.#watchlist?.snapshot.controls) {\n case CONTROLS_ALL:\n this.#shiftControlsList = Calendar.#SHIFT_ALL_CONTROLS;\n break;\n case CONTROLS_MINIMAL:\n this.#shiftControlsList = Calendar.#SHIFT_MINIMAL_CONTROLS;\n break;\n case CONTROLS_NONE:\n default:\n this.#shiftControlsList = undefined;\n }\n\n this.#shiftControlsHandles.length = 0;\n this.#shiftControlsHandles.length = this.#shiftControlsList?.length ?? 0;\n }\n}\n","import Calendar from './Calendar';\nimport { CONTROLS_ALL, CONTROLS_MINIMAL, CONTROLS_NONE, RANGE_FROM, RANGE_TO, SELECT_MANY, SELECT_NONE, SELECT_ONE } from '../constants';\nimport { ALREADY_RESOLVED_PROMISE, enumerable, isFunction, isNumber, struct } from '../../../../../utils';\nimport timeslice, { sinceNow, UNBOUNDED_SLICE, untilNow } from '../timeslice';\nimport { CalendarFacade } from '../types';\n\nconst calendar = (() => {\n const calendar = (init => {\n const { grid, kill } = new Calendar();\n\n if (isNumber(init)) grid.config({ blocks: init });\n else if (isFunction(init))\n ALREADY_RESOLVED_PROMISE.then(() => {\n grid.config.watch = init;\n });\n else grid.config(init);\n\n return struct({\n grid: enumerable(grid),\n kill: enumerable(kill),\n }) as ReturnType<CalendarFacade>;\n }) as CalendarFacade;\n\n return Object.defineProperties(calendar, {\n controls: {\n value: struct({\n ALL: { value: CONTROLS_ALL },\n MINIMAL: { value: CONTROLS_MINIMAL },\n NONE: { value: CONTROLS_NONE },\n }),\n },\n highlight: {\n value: struct({\n ONE: { value: SELECT_ONE },\n MANY: { value: SELECT_MANY },\n NONE: { value: SELECT_NONE },\n }),\n },\n slice: {\n value: Object.defineProperties(timeslice.bind(null), {\n FROM: { value: RANGE_FROM },\n TO: { value: RANGE_TO },\n UNBOUNDED: { value: UNBOUNDED_SLICE },\n SINCE_NOW: { get: sinceNow },\n UNTIL_NOW: { get: untilNow },\n }),\n },\n });\n})();\n\nexport default calendar;\n","import { memo } from 'preact/compat';\nimport { CalendarControlsProps } from './types';\nimport calendar from '../../calendar';\nimport { isFunction } from '../../../../../utils';\n\nconst CalendarControls = ({ config, grid: { controls }, renderer }: CalendarControlsProps) => {\n if (config.controls === calendar.controls.NONE || !isFunction(renderer)) return null;\n return <>{controls.map(([control, handle]) => renderer(control, handle))}</>;\n};\n\nexport default memo(CalendarControls);\n","import { useCallback } from 'preact/hooks';\nimport { ALREADY_RESOLVED_PROMISE } from '../../utils';\nimport type { ReflexAction } from '../../primitives/reactive/reflex';\nimport useReflex from '../useReflex';\n\nconst useFocusCursor = (callback?: ReflexAction<Element>) => {\n const finallyCallback = useCallback(\n ((current, previous) => {\n if (previous instanceof Element) previous.setAttribute('tabindex', '-1');\n if (current instanceof Element) {\n current.setAttribute('tabindex', '0');\n // schedule a microtask to focus the current element\n ALREADY_RESOLVED_PROMISE.then(() => (current as HTMLElement)?.focus());\n }\n }) as ReflexAction<Element>,\n []\n );\n\n return useReflex<Element>(\n useCallback(\n (current, previous) => {\n try {\n callback?.(current, previous);\n } finally {\n finallyCallback(current, previous);\n }\n },\n [callback]\n )\n );\n};\n\nexport default useFocusCursor;\n","import { Ref } from 'preact';\nimport { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'preact/hooks';\nimport useCoreContext from '../../../../core/Context/useCoreContext';\nimport type { ReflexAction } from '../../../../primitives/reactive/reflex';\nimport { getDateObjectFromTimestamp } from '../calendar/utils';\nimport { EMPTY_OBJECT, isFunction } from '../../../../utils';\nimport { CalendarGridCursorRootProps, CalendarHandle, CalendarProps } from '../types';\nimport useFocusCursor from '../../../../hooks/element/useFocusCursor';\nimport calendar from '../calendar';\n\nconst useCalendar = (\n {\n blocks,\n controls,\n dynamicBlockRows,\n firstWeekDay,\n highlight,\n locale,\n onHighlight,\n originDate,\n renderControl,\n sinceDate,\n trackCurrentDay,\n untilDate,\n useYearView,\n }: CalendarProps,\n ref: Ref<unknown>\n) => {\n const { i18n } = useCoreContext();\n const [lastMutationTimestamp, setLastMutationTimestamp] = useState<DOMHighResTimeStamp>(performance.now());\n const timeslice = useMemo(() => calendar.slice(sinceDate, untilDate), [sinceDate, untilDate]);\n const config = useRef<ReturnType<typeof grid.config>>(EMPTY_OBJECT);\n\n const activeControls = useMemo(\n () => controls ?? (isFunction(renderControl) ? calendar.controls.MINIMAL : calendar.controls.NONE),\n [controls, renderControl]\n );\n\n const activeHighlight = useMemo(\n () => highlight ?? (isFunction(onHighlight) ? calendar.highlight.ONE : calendar.highlight.NONE),\n [highlight, onHighlight]\n );\n\n const { grid, kill } = useMemo(() => {\n const { grid, kill } = calendar(function () {\n setLastMutationTimestamp(performance.now());\n config.current = this;\n\n if (highlightStart === grid.highlight.from && highlightEnd === grid.highlight.to) return;\n\n highlightStart = grid.highlight.from;\n highlightEnd = grid.highlight.to;\n onHighlight?.(highlightStart, highlightEnd);\n });\n\n let { from: highlightStart, to: highlightEnd } = grid.highlight;\n\n grid.config.cursorIndex = (evt: Event): number | undefined => {\n let element: HTMLElement | null = evt.target as HTMLElement;\n\n while (element && element !== evt.currentTarget) {\n const index = Number(element.dataset.cursorPosition);\n if (Number.isFinite(index)) return index;\n element = element.parentNode as HTMLElement;\n }\n };\n\n grid.config.shiftFactor = function (evt: Event) {\n if (this.controls !== calendar.controls.MINIMAL) return;\n if ((evt as MouseEvent)?.shiftKey) return 12;\n if ((evt as MouseEvent)?.altKey) return this.blocks;\n return 1;\n };\n\n return { grid, kill };\n }, []);\n\n const cursorRootProps = useMemo(() => {\n const pointerHandle = (evt: Event) => {\n grid.cursor(evt);\n };\n\n return {\n onClickCapture: pointerHandle,\n onMouseOverCapture: pointerHandle,\n onPointerOverCapture: pointerHandle,\n onKeyDownCapture: (evt: KeyboardEvent) => {\n grid.cursor(evt) && evt.preventDefault();\n },\n } as CalendarGridCursorRootProps;\n }, [grid]);\n\n const cursorElementRef = useFocusCursor(\n useCallback(\n ((current, previous) => {\n if (previous instanceof Element) previous.removeAttribute('aria-selected');\n if (current instanceof Element) current.setAttribute('aria-selected', 'true');\n }) as ReflexAction<Element>,\n []\n )\n );\n\n useImperativeHandle(\n ref,\n () => {\n const { from, to } = grid?.highlight || EMPTY_OBJECT;\n return {\n clear: () => {\n grid?.highlight && (grid.highlight.from = undefined);\n },\n get config() {\n return { ...(config.current ?? EMPTY_OBJECT) };\n },\n get from() {\n return getDateObjectFromTimestamp(from);\n },\n set from(date) {\n grid?.highlight && date && (grid.highlight.from = date.getTime());\n },\n get to() {\n return getDateObjectFromTimestamp(to);\n },\n set to(date) {\n grid?.highlight && date && (grid.highlight.to = date.getTime());\n },\n } as CalendarHandle;\n },\n [grid, lastMutationTimestamp]\n );\n\n useEffect(() => {\n grid.config({\n blocks,\n controls: activeControls,\n firstWeekDay,\n fixedBlockHeight: !dynamicBlockRows,\n highlight: activeHighlight,\n locale: locale ?? i18n.locale,\n minified: useYearView,\n timeslice,\n trackCurrentDay,\n });\n }, [activeControls, activeHighlight, blocks, dynamicBlockRows, firstWeekDay, grid, i18n, locale, timeslice, trackCurrentDay, useYearView]);\n\n useEffect(() => {\n const origins = ([] as number[])\n .concat(originDate as ConcatArray<number>)\n .slice(0, 2)\n .map(Number)\n .filter(Boolean);\n if (origins[0]) grid.highlight.from = +origins[0];\n if (origins[1]) grid.highlight.to = +origins[1];\n return kill;\n }, []);\n\n return { cursorElementRef, cursorRootProps, grid };\n};\n\nexport default useCalendar;\n","import { forwardRef, memo } from 'preact/compat';\nimport CalendarGrid from './components/CalendarGrid';\nimport CalendarControls from './components/CalendarControls';\nimport useCalendar from './hooks/useCalendar';\nimport { CalendarProps } from './types';\nimport './Calendar.scss';\n\nconst Calendar = forwardRef((props: CalendarProps, ref) => {\n const calendar = useCalendar(props, ref);\n const config = calendar.grid.config();\n\n return (\n <div role=\"none\">\n <CalendarControls config={config} grid={calendar.grid} renderer={props.renderControl} />\n <CalendarGrid\n ref={calendar.cursorElementRef}\n config={config}\n cursorRootProps={calendar.cursorRootProps}\n grid={calendar.grid}\n onlyCellsWithin={props.onlyCellsWithin}\n prepare={props.prepare}\n />\n </div>\n );\n});\n\nexport default memo(Calendar);\n","import { Ref } from 'preact';\nimport { SVGProps } from 'preact/compat';\nimport { fixedForwardRef } from '../../../utils/preact';\n\nconst ChevronUp = fixedForwardRef(({ title, ...props }: Omit<SVGProps<SVGElement>, 'ref'>, ref: Ref<SVGSVGElement>) => (\n <svg {...props} ref={ref} xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n {title && <title>{title}</title>}\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M13.53 11.03c-.3.3-.77.3-1.06 0L8 6.56l-4.47 4.47a.75.75 0 1 1-1.06-1.06l5-5c.3-.3.77-.3 1.06 0l5 5c.3.3.3.77 0 1.06Z\"\n clipRule=\"evenodd\"\n />\n </svg>\n));\n\nexport default ChevronUp;\n","import { VNode } from 'preact';\nimport { createPortal } from 'preact/compat';\nimport { useMemo, useState } from 'preact/hooks';\nimport type { Reflexable } from '../../primitives/reactive/reflex';\nimport type { Nullable } from '../../utils/types';\nimport useReflex from '../useReflex';\n\nconst useDetachedRender = (callback: (targetElement: Element, ...args: any[]) => VNode | null, targetRef?: Nullable<Reflexable<Element>>) => {\n const [render, setRender] = useState<(...args: any[]) => VNode | null>();\n\n const renderTarget = useReflex<Element>(\n useMemo(() => {\n const render =\n (targetElement: Element) =>\n (...args: any[]) => {\n const jsx = callback(targetElement, ...args);\n return jsx && createPortal(jsx, targetElement);\n };\n\n setRender(undefined);\n\n return targetElement => setRender(targetElement instanceof Element ? () => render(targetElement) : undefined);\n }, [callback, targetRef]),\n targetRef\n );\n\n return [render, renderTarget] as const;\n};\n\nexport default useDetachedRender;\n","import { ButtonVariant } from '../../Button/types';\nimport { useCallback } from 'preact/hooks';\nimport { isFunction } from '../../../../utils';\nimport ChevronDown from '../../SVGIcons/ChevronDown';\nimport ChevronUp from '../../SVGIcons/ChevronUp';\nimport { CalendarControlRenderer, CalendarRenderControl } from '../types';\nimport useCoreContext from '../../../../core/Context/useCoreContext';\nimport useDetachedRender from '../../../../hooks/element/useDetachedRender';\nimport Button from '../../Button';\n\nconst useCalendarControlsRendering = (renderControl?: CalendarRenderControl) => {\n const { i18n } = useCoreContext();\n\n return useDetachedRender(\n useCallback(\n ((targetElement, control, handle) => {\n if (!(targetElement instanceof HTMLElement)) return null;\n if (isFunction(renderControl)) return renderControl(control, handle);\n\n let directionModifier: string;\n let labelModifier: 'next' | 'previous';\n let Chevron: typeof ChevronDown | typeof ChevronUp;\n\n switch (control) {\n case 'PREV':\n directionModifier = 'prev';\n labelModifier = 'previous';\n Chevron = ChevronUp;\n break;\n case 'NEXT':\n directionModifier = labelModifier = 'next';\n Chevron = ChevronDown;\n break;\n default:\n return null;\n }\n\n const shouldRenderControl = handle();\n\n return shouldRenderControl ? (\n <Button\n aria-label={i18n.get(`calendar.${labelModifier}Month`)}\n variant={ButtonVariant.TERTIARY}\n disabled={!shouldRenderControl}\n classNameModifiers={['circle', directionModifier]}\n iconButton={true}\n key={control}\n onClick={handle}\n >\n <Chevron role=\"presentation\" />\n </Button>\n ) : null;\n }) as CalendarControlRenderer,\n [i18n, renderControl]\n )\n );\n};\n\nexport default useCalendarControlsRendering;\n","import cx from 'classnames';\nimport { forwardRef } from 'preact/compat';\nimport { Ref, useCallback, useMemo, useState } from 'preact/hooks';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport { boolOrTrue, EMPTY_OBJECT, noop } from '../../../utils';\nimport useReflex from '../../../hooks/useReflex';\nimport useTimezone from '../Calendar/hooks/useTimezone';\nimport { DEFAULT_FIRST_WEEK_DAY } from '../Calendar/calendar/timerange/presets/shared/offsetWeek';\nimport { DateFilterProps } from '../FilterBar/filters/DateFilter/types';\nimport TimeRangeSelector from './components/TimeRangeSelector';\nimport Calendar from '../Calendar';\nimport calendar from '../Calendar/calendar';\nimport useCalendarControlsRendering from '../Calendar/hooks/useCalendarControlsRendering';\nimport { CalendarHandle, CalendarProps } from '../Calendar/types';\nimport './DatePicker.scss';\n\nexport type DatePickerProps = CalendarProps &\n Pick<DateFilterProps, 'now' | 'selectedPresetOption' | 'showTimezoneInfo' | 'timeRangePresetOptions' | 'timezone'> & {\n onPresetOptionSelected?: (option: string) => any;\n };\n\nconst DatePicker = forwardRef((props: DatePickerProps, ref) => {\n const { i18n } = useCoreContext();\n const [controlsRenderer, controlsContainerRef] = useCalendarControlsRendering(props.renderControl);\n const [lastUpdatedTimestamp, setLastUpdatedTimestamp] = useState<DOMHighResTimeStamp>(performance.now());\n\n const withTimezone = useMemo(() => boolOrTrue(props.showTimezoneInfo), [props.showTimezoneInfo]);\n const { clockTime: time, GMTOffset: offset } = useTimezone({ timezone: props.timezone, withClock: withTimezone });\n\n const datePickerClassName = useMemo(() => cx([{ 'adyen-pe-datepicker--with-timezone': withTimezone }, 'adyen-pe-datepicker']), [withTimezone]);\n const timezoneI18nOptions = useMemo(() => (withTimezone ? { values: { offset, time } } : EMPTY_OBJECT), [offset, time, withTimezone]);\n\n const calendarRef = useReflex<CalendarHandle>(noop, ref as Ref<CalendarHandle>);\n\n const onHighlight = useCallback(() => {\n setLastUpdatedTimestamp(performance.now());\n\n if (calendarRef.current?.from && calendarRef.current?.to) {\n props.onHighlight?.(+calendarRef.current?.from, +calendarRef.current?.to);\n }\n }, [setLastUpdatedTimestamp, props.onHighlight]);\n\n return (\n <div className={datePickerClassName}>\n <div className={'adyen-pe-datepicker__selector-container'}>\n <TimeRangeSelector\n now={props.now}\n calendarRef={calendarRef}\n onTimeRangeSelected={props.onPresetOptionSelected}\n options={props.timeRangePresetOptions}\n selectedOption={props.selectedPresetOption}\n timestamp={lastUpdatedTimestamp}\n timezone={props.timezone}\n />\n </div>\n <div ref={controlsContainerRef} role=\"group\" className={'adyen-pe-datepicker__controls'} aria-label={i18n.get('calendar.controls')} />\n <Calendar\n {...props}\n ref={calendarRef}\n firstWeekDay={DEFAULT_FIRST_WEEK_DAY}\n dynamicBlockRows={true}\n onlyCellsWithin={true}\n controls={props.controls ?? calendar.controls.MINIMAL}\n highlight={props.highlight ?? calendar.highlight.MANY}\n onHighlight={onHighlight}\n renderControl={controlsRenderer}\n />\n {withTimezone && <div className={'adyen-pe-datepicker__timezone'}>{i18n.get('calendar.timezone', timezoneI18nOptions)}</div>}\n </div>\n );\n});\n\nexport default DatePicker;\n","import useButton from '../../../Button/hooks/useButton';\nimport { TypographyElement, TypographyVariant } from '../../../Typography/types';\nimport Typography from '../../../Typography/Typography';\nimport { fixedForwardRef, parseBooleanProp, parseClassName } from '../../../../../utils/preact';\nimport { ForwardedRef } from 'preact/compat';\nimport { useMemo } from 'preact/hooks';\nimport { FilterButtonProps } from './types';\nimport './FilterButton.scss';\n\nconst DEFAULT_FILTER_BUTTON_CLASSNAME = 'adyen-pe-filter-button';\n\nfunction FilterButton(\n { className, classNameModifiers = [], children, disabled, onClick, ...restAttributes }: FilterButtonProps,\n ref: ForwardedRef<HTMLButtonElement>\n) {\n const classNameValue = useMemo(() => parseClassName('', className) || '', [className]);\n const disabledValue = useMemo(() => parseBooleanProp(disabled), [disabled]);\n\n const { classes, click } = useButton(classNameValue, classNameModifiers, DEFAULT_FILTER_BUTTON_CLASSNAME, disabledValue, onClick);\n\n return (\n <button className={classes} ref={ref} onClick={click} {...restAttributes}>\n <Typography el={TypographyElement.SPAN} variant={TypographyVariant.BODY} stronger={true}>\n {children}\n </Typography>\n </button>\n );\n}\nexport default fixedForwardRef(FilterButton);\n","import { ARIA_ERROR_SUFFIX } from '../../../core/Errors/constants';\nimport { hasOwnProperty } from '../../../utils';\nimport classNames from 'classnames';\nimport { h } from 'preact';\nimport { ForwardedRef, forwardRef, TargetedEvent } from 'preact/compat';\nimport { useCallback } from 'preact/hooks';\nimport { InputBaseProps } from './types';\nimport './FormFields.scss';\n\nfunction InputBase(\n { onInput, onKeyUp, trimOnBlur, onBlurHandler, onBlur, onFocusHandler, errorMessage, ...props }: InputBaseProps,\n ref: ForwardedRef<HTMLInputElement | null>\n) {\n const { autoCorrect, classNameModifiers, isInvalid, isValid, readonly = false, spellCheck, type, uniqueId, isCollatingErrors, disabled } = props;\n\n /**\n * To avoid confusion with misplaced/misdirected onChange handlers - InputBase only accepts onInput, onBlur & onFocus handlers.\n * The first 2 being the means by which we expect useForm--handleChangeFor validation functionality to be applied.\n */\n if (hasOwnProperty(props, 'onChange')) {\n console.error('Error: Form fields that rely on InputBase may not have an onChange property');\n }\n\n const handleInput = useCallback(\n (event: TargetedEvent<HTMLInputElement, Event>) => {\n onInput?.(event);\n },\n [onInput]\n );\n\n const handleKeyUp = useCallback(\n (event: h.JSX.TargetedKeyboardEvent<HTMLInputElement>) => {\n if (onKeyUp) onKeyUp(event);\n },\n [onKeyUp]\n );\n\n const handleBlur = useCallback(\n (event: h.JSX.TargetedEvent<HTMLInputElement>) => {\n onBlurHandler?.(event); // From Field component\n\n if (trimOnBlur) {\n (event.target as HTMLInputElement).value = (event.target as HTMLInputElement).value.trim(); // needed to trim trailing spaces in field (leading spaces can be done via formatting)\n }\n\n onBlur?.(event);\n },\n [onBlur, onBlurHandler, trimOnBlur]\n );\n\n const handleFocus = useCallback(\n (event: h.JSX.TargetedEvent<HTMLInputElement>) => {\n onFocusHandler?.(event); // From Field component\n },\n [onFocusHandler]\n );\n\n const inputClassNames = classNames(\n 'adyen-pe-input',\n [`adyen-pe-input--${type}`],\n props.className,\n {\n 'adyen-pe-input--invalid': isInvalid,\n 'adyen-pe-input--valid': isValid,\n },\n classNameModifiers?.map(m => `adyen-pe-input--${m}`)\n );\n\n // Don't spread classNameModifiers etc to input element (it ends up as an attribute on the element itself)\n const { classNameModifiers: cnm, uniqueId: uid, isInvalid: iiv, isValid: iv, isCollatingErrors: ce, ...newProps } = props;\n\n return (\n <>\n <input\n id={uniqueId}\n {...newProps}\n type={type}\n className={inputClassNames}\n readOnly={readonly}\n aria-describedby={isCollatingErrors ? undefined : `${uniqueId}${ARIA_ERROR_SUFFIX}`}\n aria-invalid={isInvalid}\n onInput={handleInput}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onKeyUp={handleKeyUp}\n disabled={disabled}\n ref={ref}\n />\n {isInvalid && errorMessage && (\n <span className=\"adyen-pe-input__invalid-value\" id={`${uniqueId}${ARIA_ERROR_SUFFIX}`}>\n {errorMessage}\n </span>\n )}\n </>\n );\n}\n\nInputBase.defaultProps = {\n type: 'text',\n classNameModifiers: [],\n onInput: () => {},\n};\n\nexport default forwardRef(InputBase);\n","import InputBase from './InputBase';\nimport { InputBaseProps } from './types';\nimport { ForwardedRef, forwardRef } from 'preact/compat';\n\nexport default forwardRef(function InputText(props: InputBaseProps, ref: ForwardedRef<HTMLInputElement | null>) {\n return <InputBase classNameModifiers={props.classNameModifiers} {...props} ref={ref} aria-required={props.required} type=\"text\" />;\n});\n","import { mediaQueries, useResponsiveViewport } from '../../../../external/TransactionsOverview/hooks/useResponsiveViewport';\nimport FilterButton from '../../components/FilterButton/FilterButton';\nimport Popover from '../../../Popover/Popover';\nimport { PopoverContainerPosition, PopoverContainerVariant } from '../../../Popover/types';\nimport { TypographyElement, TypographyVariant } from '../../../Typography/types';\nimport Typography from '../../../Typography/Typography';\nimport useCommitAction, { CommitAction } from '../../../../../hooks/useCommitAction';\nimport useUniqueIdentifier from '../../../../../hooks/element/useUniqueIdentifier';\nimport { isEmptyString, isNull } from '../../../../../utils';\nimport { memo } from 'preact/compat';\nimport { Ref, useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport useBooleanState from '../../../../../hooks/useBooleanState';\nimport '../../../FormFields';\nimport InputText from '../../../FormFields/InputText';\nimport { BaseFilterProps, FilterEditModalRenderProps, FilterProps } from './types';\n\nconst isValueEmptyFallback = (value?: string) => {\n return !value || isEmptyString(value);\n};\n\nconst renderFallback = (() => {\n const DefaultEditModalBody = <T extends BaseFilterProps>(props: FilterEditModalRenderProps<T>) => {\n const { editAction, name, onChange, onValueUpdated } = props;\n const [currentValue, setCurrentValue] = useState(props.value);\n\n const handleInput = useCallback(\n (e: Event) => {\n const value = (e.target as HTMLInputElement).value.trim();\n setCurrentValue(value);\n onValueUpdated(value);\n },\n [onValueUpdated]\n );\n\n useEffect(() => {\n if (editAction === CommitAction.CLEAR) {\n const value = '';\n setCurrentValue(value);\n onValueUpdated(value);\n onChange(value);\n }\n\n if (editAction === CommitAction.APPLY) {\n onChange(currentValue ?? '');\n }\n }, [currentValue, editAction, onChange, onValueUpdated]);\n\n return <InputText name={name} value={currentValue} onInput={handleInput} />;\n };\n\n return <T extends BaseFilterProps>(props: FilterEditModalRenderProps<T>) => <DefaultEditModalBody<T> {...props} />;\n})();\n\nconst BaseFilter = <T extends BaseFilterProps = BaseFilterProps>({ render, ...props }: FilterProps<T>) => {\n const isSmViewport = useResponsiveViewport(mediaQueries.down.xs);\n const [editMode, _updateEditMode] = useBooleanState(false);\n const [editModalMounting, updateEditModalMounting] = useBooleanState(false);\n const isValueEmpty = useMemo(() => props.isValueEmpty ?? isValueEmptyFallback, [props.isValueEmpty]);\n const [hasEmptyValue, updateHasEmptyValue] = useBooleanState(isValueEmpty(props.value));\n const [hasInitialValue, updateHasInitialValue] = useBooleanState(false);\n const [valueChanged, updateValueChanged] = useBooleanState(false);\n const [disabledApply, updateDisabledApply] = useBooleanState(isValueEmpty(props.value));\n const targetElement = useUniqueIdentifier() as Ref<Element | null>;\n\n const renderModalBody = useMemo(() => render ?? renderFallback<T>, [render]);\n\n const onValueUpdated = useCallback(\n (currentValue?: string | null) => {\n const hasEmptyValue = isValueEmpty(currentValue ?? undefined);\n updateHasEmptyValue(hasEmptyValue);\n updateDisabledApply(isNull(currentValue));\n updateValueChanged(hasInitialValue ? currentValue !== props.value : !hasEmptyValue);\n },\n [isValueEmpty, updateHasEmptyValue, updateDisabledApply, updateValueChanged, hasInitialValue, props.value]\n );\n\n const { commitAction, commitActionButtons, committing, resetCommitAction } = useCommitAction({\n applyDisabled: disabledApply || !valueChanged,\n resetDisabled: hasEmptyValue,\n });\n\n const [closeEditDialog, openEditDialog] = useMemo(() => {\n const updateEditMode = (mode: boolean) => () => {\n if (mode === editMode) return;\n\n if (mode) {\n resetCommitAction();\n updateValueChanged(false);\n updateHasInitialValue(false);\n }\n\n _updateEditMode(mode);\n updateEditModalMounting(mode);\n };\n\n return [updateEditMode(false), updateEditMode(true)];\n }, [_updateEditMode, editMode, resetCommitAction, updateEditModalMounting, updateHasInitialValue, updateValueChanged]);\n\n useEffect(() => {\n if (editModalMounting) {\n const hasEmptyValue = isValueEmpty(props.value);\n updateEditModalMounting(false);\n updateHasEmptyValue(hasEmptyValue);\n updateHasInitialValue(!hasEmptyValue);\n }\n }, [props.value, editModalMounting, isValueEmpty, updateEditModalMounting, updateHasEmptyValue, updateHasInitialValue]);\n\n useEffect(() => {\n committing && closeEditDialog();\n updateHasEmptyValue(hasEmptyValue);\n }, [committing, closeEditDialog, updateHasEmptyValue, hasEmptyValue]);\n const isOnlySmDevice = useResponsiveViewport(mediaQueries.only.sm);\n const isOnlyMdDevice = useResponsiveViewport(mediaQueries.only.md);\n\n return (\n <>\n <div className={`adyen-pe-filter adyen-pe-filter--${props.type}`}>\n {useMemo(\n () => (\n <FilterButton\n classNameModifiers={[\n ...(props.appliedFilterAmount ? ['with-counter'] : []),\n ...(props.classNameModifiers ?? []),\n ...(editMode ? ['active'] : []),\n ...(hasEmptyValue ? [] : ['has-selection']),\n ]}\n onClick={editMode ? closeEditDialog : openEditDialog}\n tabIndex={0}\n ref={targetElement as Ref<HTMLButtonElement | null>}\n >\n <div className=\"adyen-pe-filter-button__default-container\">\n <Typography\n el={TypographyElement.SPAN}\n variant={TypographyVariant.BODY}\n stronger={true}\n className=\"adyen-pe-filter-button__label\"\n >\n {props.label}\n </Typography>\n {!!props.appliedFilterAmount && (\n <div className=\"adyen-pe-filter-button__counter-wrapper\">\n <Typography\n el={TypographyElement.SPAN}\n variant={TypographyVariant.BODY}\n stronger={true}\n className=\"adyen-pe-filter-button__counter\"\n >\n {props.appliedFilterAmount}\n </Typography>\n </div>\n )}\n </div>\n </FilterButton>\n ),\n [\n props.appliedFilterAmount,\n props.classNameModifiers,\n props.label,\n editMode,\n hasEmptyValue,\n closeEditDialog,\n openEditDialog,\n targetElement,\n ]\n )}\n </div>\n {editMode && (\n <Popover\n actions={commitActionButtons}\n title={props.title?.trim()}\n variant={PopoverContainerVariant.POPOVER}\n modifiers={['filter']}\n open={editMode}\n aria-label={`${props.label}`}\n dismiss={closeEditDialog}\n dismissible={false}\n withContentPadding={props.withContentPadding ?? true}\n divider={true}\n targetElement={targetElement}\n disableFocusTrap={false}\n position={PopoverContainerPosition.BOTTOM}\n containerSize={props.containerSize}\n showOverlay={isSmViewport}\n fitPosition={isOnlySmDevice || isOnlyMdDevice}\n >\n {renderModalBody({ ...props, editAction: commitAction, onValueUpdated })}\n </Popover>\n )}\n </>\n );\n};\n\nexport default memo(BaseFilter);\n","import { UseTimeRangeSelectionConfig } from '../../../DatePicker/components/TimeRangeSelector';\nimport { BaseFilterProps } from '../BaseFilter/types';\n\nexport const enum DateRangeFilterParam {\n FROM = 'from',\n TO = 'to',\n}\n\nexport interface DateFilterProps extends BaseFilterProps {\n onChange: (params?: { [P in DateRangeFilterParam | 'selectedPresetOption']?: string }) => void;\n sinceDate?: string;\n untilDate?: string;\n now?: UseTimeRangeSelectionConfig['now'];\n selectedPresetOption?: string;\n showTimezoneInfo?: boolean;\n timeRangePresetOptions: UseTimeRangeSelectionConfig['options'];\n timezone?: UseTimeRangeSelectionConfig['timezone'];\n [DateRangeFilterParam.FROM]?: string;\n [DateRangeFilterParam.TO]?: string;\n}\n","import Localization from '../../../../../core/Localization';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { EMPTY_OBJECT } from '../../../../../utils';\nimport { CommitAction } from '../../../../../hooks/useCommitAction';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport { CalendarHandle } from '../../../Calendar/types';\nimport DatePicker from '../../../DatePicker';\nimport BaseFilter from '../BaseFilter';\nimport { FilterEditModalRenderProps, FilterProps } from '../BaseFilter/types';\nimport { DateFilterProps, DateRangeFilterParam } from './types';\nimport './DateFilterCore.scss';\n\nconst formattingOptions = {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n} as const;\n\nconst baseDateTimeFormatter = new Intl.DateTimeFormat('en-US', formattingOptions);\n\nconst computeDateFilterValue = (i18n: Localization['i18n'], fromDate?: string, toDate?: string) => {\n const from = fromDate && i18n.fullDate(fromDate);\n const to = toDate && i18n.fullDate(toDate);\n\n if (from && to) return `${from} - ${to}`;\n if (from) return i18n.get('filter.date.since', { values: { date: from } });\n if (to) return i18n.get('filter.date.until', { values: { date: to } });\n};\n\nconst resolveDate = (date?: any) => {\n try {\n return new Date(date || '').toISOString();\n } catch {\n return '';\n }\n};\n\nconst renderDateFilterModalBody = (() => {\n const DateFilterEditModalBody = ({\n editAction,\n from,\n to,\n now,\n onChange,\n onValueUpdated,\n showTimezoneInfo,\n selectedPresetOption,\n timeRangePresetOptions,\n timezone,\n sinceDate,\n untilDate,\n }: FilterEditModalRenderProps<DateFilterProps>) => {\n const { i18n } = useCoreContext();\n const [presetOption, setPresetOption] = useState(selectedPresetOption);\n const originDate = useMemo(() => [new Date(from as string), new Date(to as string)], [from, to]);\n const datePickerRef = useRef<CalendarHandle & { selection?: string }>();\n\n const onHighlight = useCallback(\n (from?: number, to?: number) => {\n onValueUpdated(computeDateFilterValue(i18n, resolveDate(from), resolveDate(to)));\n },\n [i18n, onValueUpdated]\n );\n\n useEffect(() => {\n switch (editAction) {\n case CommitAction.APPLY:\n onChange({\n selectedPresetOption: presetOption,\n [DateRangeFilterParam.FROM]: resolveDate(datePickerRef.current?.from),\n [DateRangeFilterParam.TO]: resolveDate(datePickerRef.current?.to),\n });\n break;\n\n case CommitAction.CLEAR:\n datePickerRef.current?.clear();\n onChange();\n }\n }, [editAction, onChange, presetOption]);\n\n return (\n <DatePicker\n ref={datePickerRef}\n now={now}\n originDate={originDate}\n onHighlight={onHighlight}\n onPresetOptionSelected={setPresetOption}\n selectedPresetOption={selectedPresetOption}\n timeRangePresetOptions={timeRangePresetOptions}\n timezone={timezone}\n showTimezoneInfo={showTimezoneInfo}\n sinceDate={resolveDate(sinceDate)}\n untilDate={resolveDate(untilDate)}\n />\n );\n };\n\n return (props: FilterEditModalRenderProps<DateFilterProps>) => <DateFilterEditModalBody {...props} />;\n})();\n\nconst customDateRangeFormat = (formatter: Intl.DateTimeFormat, fromDate: Date, toDate: Date) => {\n return formatter.formatRange(fromDate, toDate);\n};\n\nexport default function DateFilterCore<T extends DateFilterProps = DateFilterProps>({\n title,\n from,\n to,\n selectedPresetOption,\n ...props\n}: FilterProps<T>) {\n const { i18n } = useCoreContext();\n const [selectedPresetOptionValue, setSelectedPresetOption] = useState<string>();\n const [fromValue, setFrom] = useState<string>();\n const [toValue, setTo] = useState<string>();\n\n const onChange = useCallback<NonNullable<typeof props.onChange>>(\n params => {\n const { from, to, selectedPresetOption } = params ?? EMPTY_OBJECT;\n try {\n setSelectedPresetOption(selectedPresetOptionValue ?? selectedPresetOption);\n setFrom(resolveDate(fromValue ?? from));\n setTo(resolveDate(toValue ?? to));\n } finally {\n props.onChange({ from, to, selectedPresetOption });\n }\n },\n [selectedPresetOptionValue, fromValue, toValue, props]\n );\n\n const [customSelection, dateTimeFormatter] = useMemo(() => {\n let formatter = baseDateTimeFormatter;\n try {\n formatter = new Intl.DateTimeFormat(i18n.locale, formattingOptions);\n } catch {\n /* invalid locale: continue with base `en-US` formatter */\n }\n\n return [i18n.get('rangePreset.custom'), formatter] as const;\n }, [i18n]);\n\n useEffect(() => setSelectedPresetOption(selectedPresetOption), [selectedPresetOption]);\n useEffect(() => setFrom(resolveDate(from || Date.now())), [from]);\n useEffect(() => setTo(resolveDate(to || Date.now())), [to]);\n\n const label = useMemo(() => {\n if (selectedPresetOption === customSelection && fromValue && toValue) {\n return customDateRangeFormat(dateTimeFormatter, new Date(fromValue), new Date(toValue));\n }\n\n return selectedPresetOption ?? props.label;\n }, [customSelection, dateTimeFormatter, fromValue, toValue, selectedPresetOption, props.label]);\n\n return (\n <BaseFilter<T>\n {...(props as FilterProps<T>)}\n from={from}\n to={to}\n type={'date'}\n label={label}\n onChange={onChange}\n render={renderDateFilterModalBody}\n selectedPresetOption={selectedPresetOption}\n value={computeDateFilterValue(i18n, from, to)}\n withContentPadding={false}\n />\n );\n}\n","import { UseTimeRangeSelectionConfig } from '../../../DatePicker/components/TimeRangeSelector';\nimport DateFilterCore from './DateFilterCore';\nimport useDefaultOverviewFilterParams from '../../../../hooks/useDefaultOverviewFilterParams';\nimport { FilterParam } from '../../../../types';\nimport { useCallback, useMemo, useState } from 'preact/hooks';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport { DateFilterProps, DateRangeFilterParam } from './types';\nimport { UsePaginatedRecords } from '../../../Pagination/hooks/types';\nimport { EMPTY_OBJECT } from '../../../../../utils';\n\ntype DataOverviewDateFilterProps = Pick<UsePaginatedRecords<any, string, FilterParam>, 'canResetFilters' | 'filters' | 'updateFilters'> &\n ReturnType<typeof useDefaultOverviewFilterParams> & {\n timezone?: UseTimeRangeSelectionConfig['timezone'];\n };\n\nconst DateFilter = <T extends DateFilterProps = DateFilterProps>({\n timezone,\n canResetFilters,\n defaultParams,\n filters,\n nowTimestamp,\n refreshNowTimestamp,\n sinceDate,\n untilDate,\n updateFilters,\n}: Pick<T, 'sinceDate' | 'untilDate'> & DataOverviewDateFilterProps) => {\n const { i18n } = useCoreContext();\n const defaultTimeRangePreset = useMemo(() => i18n.get(defaultParams.current.defaultTimeRange), [i18n]);\n const [selectedTimeRangePreset, setSelectedTimeRangePreset] = useState(defaultTimeRangePreset);\n\n const updateCreatedDateFilter = useCallback(\n (params: Parameters<DateFilterProps['onChange']>[0] = EMPTY_OBJECT) => {\n for (const [param, value] of Object.entries(params) as [keyof typeof params, (typeof params)[keyof typeof params]][]) {\n switch (param) {\n case 'selectedPresetOption':\n setSelectedTimeRangePreset(value || defaultTimeRangePreset);\n break;\n case DateRangeFilterParam.FROM:\n updateFilters({\n [FilterParam.CREATED_SINCE]: value || defaultParams.current.defaultFilterParams[FilterParam.CREATED_SINCE],\n });\n break;\n case DateRangeFilterParam.TO:\n updateFilters({\n [FilterParam.CREATED_UNTIL]: value || defaultParams.current.defaultFilterParams[FilterParam.CREATED_UNTIL],\n });\n break;\n default:\n return;\n }\n\n refreshNowTimestamp();\n }\n },\n [defaultTimeRangePreset, refreshNowTimestamp, updateFilters]\n );\n\n useMemo(() => !canResetFilters && setSelectedTimeRangePreset(defaultTimeRangePreset), [canResetFilters, defaultTimeRangePreset]);\n\n return (\n <DateFilterCore\n label={i18n.get('dateRange')}\n name={FilterParam.CREATED_SINCE}\n sinceDate={sinceDate}\n untilDate={untilDate ?? new Date(nowTimestamp).toString()}\n from={filters[FilterParam.CREATED_SINCE]}\n to={filters[FilterParam.CREATED_UNTIL]}\n selectedPresetOption={selectedTimeRangePreset}\n timeRangePresetOptions={defaultParams.current.timeRangeOptions}\n timezone={timezone}\n onChange={updateCreatedDateFilter}\n showTimezoneInfo={true}\n now={nowTimestamp}\n />\n );\n};\n\nexport default DateFilter;\n","import { SVGProps } from 'preact/compat';\n\nconst Filter = ({ ...props }: Omit<SVGProps<SVGElement>, 'ref'>) => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M1.25 1.25H14.75V4.05C14.75 4.65117 14.5094 5.22128 14.0903 5.64033L10.08 9.65066V11.6212L7.34093 14.76H5.92V9.65066L1.90967 5.64033C1.49062 5.22128 1.25 4.65117 1.25 4.05V1.25ZM2.75 2.75V4.05C2.75 4.24883 2.82938 4.43872 2.97033 4.57967L7.42 9.02934V12.388L8.58 11.0588V9.02934L13.0297 4.57967C13.1706 4.43872 13.25 4.24883 13.25 4.05V2.75H2.75Z\"\n fill=\"#00112C\"\n />\n </svg>\n);\n\nexport default Filter;\n","import { mediaQueries, useResponsiveViewport } from '../../external/TransactionsOverview/hooks/useResponsiveViewport';\nimport { ButtonVariant } from '../Button/types';\nimport Close from '../SVGIcons/Close';\nimport Filter from '../SVGIcons/Filter';\nimport { TypographyVariant } from '../Typography/types';\nimport Typography from '../Typography/Typography';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport cx from 'classnames';\nimport { PropsWithChildren } from 'preact/compat';\nimport { useEffect, useState } from 'preact/hooks';\nimport Button from '../Button';\nimport './FilterBar.scss';\nimport { FilterBarProps } from './types';\n\nexport default function FilterBar(props: PropsWithChildren<FilterBarProps>) {\n const { i18n } = useCoreContext();\n const isSmViewport = useResponsiveViewport(mediaQueries.down.xs);\n const [showFilters, setShowFilters] = useState(!isSmViewport);\n\n useEffect(() => {\n setShowFilters(!isSmViewport);\n }, [isSmViewport]);\n\n return (\n <>\n {isSmViewport && (\n <div className=\"adyen-pe-filter-bar__header\">\n <Typography variant={TypographyVariant.SUBTITLE}>{i18n.get('transactions')}</Typography>\n <Button\n className={'adyen-pe-filter-bar__header-icon'}\n variant={ButtonVariant.SECONDARY}\n iconButton\n onClick={() => setShowFilters(prevState => !prevState)}\n >\n {showFilters ? <Close /> : <Filter />}\n </Button>\n </div>\n )}\n {showFilters && (\n <div\n aria-label={i18n.get('filterBar')}\n className={cx('adyen-pe-filter-bar', { 'adyen-pe-filter-bar__content--mobile': isSmViewport })}\n >\n {props.children}\n {props.canResetFilters && !!props.resetFilters && (\n <Button variant={ButtonVariant.TERTIARY} onClick={props.resetFilters}>\n {i18n.get('button.clearAll')}\n </Button>\n )}\n </div>\n )}\n </>\n );\n}\n","import { TranslationKey } from '../../core/Localization/types';\nimport { ModalSize } from '../../components/internal/Modal/types';\n\ntype CallbackFunction<T> = (arg: T) => void;\n\ntype DetailsConfig<T> = {\n showDetails: boolean;\n callback?: CallbackFunction<T>;\n};\n\nexport type SelectedDetail<Options> = {\n title?: TranslationKey;\n selection: { type: keyof Options; data: any };\n modalSize?: ModalSize;\n};\n\nexport type GetArgsExceptCallback<T extends Required<DetailsConfig<any>>> = Omit<Parameters<T['callback']>[0], 'showModal'>;\n\nexport type ModalDetailsOptions<Options extends string> = {\n [k in Options]: DetailsConfig<any>;\n};\n\nexport type CallbackIsPresent<\n Opt extends ModalDetailsOptions<any>,\n Options extends ModalDetailsOptions<Extract<keyof Opt, string>>,\n T extends SelectedDetail<Options>\n> = Options[T['selection']['type']] extends {\n callback: any;\n}\n ? true\n : false;\n\nexport type CallbackParams<\n Opt extends ModalDetailsOptions<any>,\n Options extends ModalDetailsOptions<Extract<keyof Opt, string>>,\n T extends SelectedDetail<Options>\n> = {\n callback: (\n args: Options[T['selection']['type']] extends { callback: any } ? GetArgsExceptCallback<Required<Options[T['selection']['type']]>> : never\n ) => void;\n};\nexport function hasCallback(options: any): options is Required<DetailsConfig<any>> {\n return 'callback' in options;\n}\n","import { useCallback, useMemo, useState } from 'preact/hooks';\nimport { CallbackIsPresent, CallbackParams, GetArgsExceptCallback, hasCallback, ModalDetailsOptions, SelectedDetail } from './types';\n\n/**\n * @param options - This parameter is an object that contains several fields.\n * The keys of these fields represent the type of details that will be displayed on a modal.\n * - showDetails: An array of values that determine whether the details should be shown on the modal.\n * If this field is undefined, it will be assumed to be true.\n * - callback?: An optional function that will be executed at the merchant level.\n * This function will receive a 'showModal' function as a parameter,\n * which allows the merchant to control when the modal appears.\n */\n\nfunction useModalDetails<Options extends ModalDetailsOptions<any>>(options: Options) {\n const [selectedDetail, setSelectedDetail] = useState<SelectedDetail<Options> | null>(null);\n const updateDetails = useCallback(\n <T extends SelectedDetail<Options>>(\n state: T\n ): CallbackIsPresent<Options, Options, T> extends true ? CallbackParams<Options, Options, T> : {} => {\n if (state && hasCallback(options[state.selection.type])) {\n return {\n callback: options?.[state.selection.type]?.callback\n ? (\n args: Options[T['selection']['type']] extends { callback: any }\n ? GetArgsExceptCallback<Required<Options[T['selection']['type']]>>\n : never\n ) => options[state.selection.type]?.callback?.({ showModal: () => setSelectedDetail(state), ...args })\n : () => options[state.selection.type]?.showDetails && setSelectedDetail(state),\n };\n }\n setSelectedDetail(state);\n return {} as CallbackIsPresent<Options, Options, T> extends true ? CallbackParams<Options, Options, T> : {};\n },\n [options]\n );\n const resetDetails = useCallback(() => setSelectedDetail(null), []);\n\n const detailsToShow = useMemo(() => {\n const details = {} as { [key in keyof Options]: boolean };\n\n for (const detail in options) {\n const selectedDetail = options[detail];\n details[detail] = !selectedDetail?.showDetails || !!selectedDetail.callback;\n }\n\n return details;\n }, [options]);\n\n return {\n selectedDetail,\n updateDetails,\n detailsToShow,\n resetDetails,\n };\n}\n\nexport default useModalDetails;\n","export const LIMIT_OPTIONS = Object.freeze([10, 20]);\nexport const MAX_PAGE_LIMIT = 100;\nexport const DEFAULT_PAGE_LIMIT = 10;\n","import { MAX_PAGE_LIMIT } from './constants';\n\nexport const getClampedPageLimit = (pageLimit?: number) => {\n const limit = ~~(pageLimit as number);\n return limit === pageLimit && limit > 0 ? Math.min(limit, MAX_PAGE_LIMIT) : Math.max(limit, 0);\n};\n","import { useMemo, useRef } from 'preact/hooks';\nimport { DEFAULT_PAGE_LIMIT } from '../constants';\nimport { getClampedPageLimit } from '../utils';\nimport { isNumber, mid } from '../../../../utils';\nimport { BasePaginatedRecordsInitOptions } from './types';\n\nexport const getNearestFromSortedUniqueNums = (nums: number[], target: number): number => {\n const lastindex = nums.length - 1;\n\n if (lastindex < 0) return target;\n if (target <= (nums[0] as number)) return nums[0] as number;\n if (target >= (nums[lastindex] as number)) return nums[lastindex] as number;\n\n let index = 0,\n lo = 0,\n hi = lastindex;\n\n while (true) {\n const current = nums[(index = mid(lo, hi))] as number;\n if (lo > hi || target === current) return current;\n target > current ? (lo = index + 1) : (hi = index - 1);\n }\n};\n\nconst usePageLimit = ({\n preferredLimit = DEFAULT_PAGE_LIMIT,\n preferredLimitOptions,\n}: Pick<BasePaginatedRecordsInitOptions<any, any, any, any>, 'preferredLimit' | 'preferredLimitOptions'>) => {\n const cachedLimitOptions = useRef<readonly number[]>();\n const cachedLimit = useRef<number>();\n\n const options = useMemo(() => {\n try {\n const uniqueOptions = new Set<number>();\n\n for (const option of preferredLimitOptions as number[]) {\n const limit = getClampedPageLimit(option);\n if (limit > 0) uniqueOptions.add(limit);\n }\n\n return Object.freeze([...uniqueOptions].sort((a, b) => a - b));\n } catch {\n /* ignore exception — no options available */\n }\n }, [preferredLimitOptions]);\n\n const limit = useMemo(() => {\n let limit = getClampedPageLimit(preferredLimit) || DEFAULT_PAGE_LIMIT;\n\n parsing: try {\n if (cachedLimitOptions.current === options) break parsing;\n\n const uniqueOptions = new Set((cachedLimitOptions.current = options));\n\n if (uniqueOptions.size === 0) {\n cachedLimitOptions.current = undefined;\n break parsing;\n }\n\n if (cachedLimit.current !== limit) {\n selection: {\n if (uniqueOptions.size === uniqueOptions.add(limit).size) {\n break selection;\n } else uniqueOptions.delete(limit);\n\n if (uniqueOptions.size === uniqueOptions.add(cachedLimit.current as number).size) {\n if (isNumber(cachedLimit.current)) {\n limit = cachedLimit.current;\n break selection;\n }\n } else uniqueOptions.delete(cachedLimit.current as number);\n\n // limit = cachedLimitOptions.current?.[0] as number;\n limit = getNearestFromSortedUniqueNums(cachedLimitOptions.current as number[], limit);\n }\n }\n } catch {\n /* ignore exception here — there are no options */\n }\n\n return (cachedLimit.current = limit);\n }, [options, preferredLimit]);\n\n return { limit, limitOptions: options } as const;\n};\n\nexport default usePageLimit;\n","import { useEffect, useMemo, useRef } from 'preact/hooks';\n\nconst useMounted = <U extends ((...args: any[]) => any)>(beforeUnmount?: U) => {\n const $mounted = useRef(false);\n const unmount = useMemo(() => beforeUnmount, [beforeUnmount]);\n\n useEffect(() => {\n $mounted.current = true;\n\n return () => {\n $mounted.current = false;\n unmount && unmount();\n };\n }, [unmount]);\n\n return $mounted;\n};\n\nexport default useMounted;\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { RequestPageCallback, RequestPageCallbackParams, UsePaginationSetupConfig } from './types';\nimport useBooleanState from '../../../../hooks/useBooleanState';\nimport useMounted from '../../../../hooks/useMounted';\nimport { PaginationType, UsePagination } from '../types';\nimport { getClampedPageLimit } from '../utils';\nimport { noop } from '../../../../utils';\n\nconst usePagination = <Pagination extends PaginationType>(\n paginationSetupConfig: UsePaginationSetupConfig<Pagination>,\n requestPageCallback?: RequestPageCallback<Pagination>,\n pageLimit?: number\n): UsePagination => {\n const $controller = useRef<AbortController>();\n const $maxVisitedPage = useRef<number>();\n const $maxVisitedPageSize = useRef<number>();\n const $page = useRef<number>();\n\n const $mounted = useMounted(\n useCallback(() => {\n $controller.current?.abort();\n $controller.current = undefined;\n }, [])\n );\n\n const [page, setCurrentPage] = useState($page.current);\n const [paginationChanged, updatePaginationChanged] = useBooleanState(false);\n const limit = useMemo(() => getClampedPageLimit(pageLimit), [pageLimit]);\n\n const { getPageCount, getPageParams, resetPageCount, updatePagination } = paginationSetupConfig;\n\n const goto = useMemo(() => {\n return requestPageCallback\n ? (page: number) => {\n if (!(limit && Number.isInteger(page))) return;\n\n const PAGES = getPageCount();\n const requestedPage = page < 0 ? page + PAGES + 1 : page;\n const isValidPageRequest = requestedPage > 0 && (PAGES ? requestedPage <= PAGES : requestedPage === 1);\n\n if (!isValidPageRequest) return;\n\n $controller.current?.abort();\n $controller.current = new AbortController();\n\n if (!$mounted.current) return;\n\n if (($page.current = requestedPage) > 1 || PAGES) {\n setCurrentPage($page.current);\n }\n\n (async () => {\n const { signal } = $controller.current as AbortController;\n const params = { ...getPageParams(requestedPage, limit), limit, page: requestedPage } as RequestPageCallbackParams<Pagination>;\n\n try {\n const data = await requestPageCallback(params, signal);\n if (!data || !$mounted.current) return;\n\n const { size, ...paginationData } = data;\n\n updatePagination(requestedPage, limit, paginationData);\n $maxVisitedPage.current = $page.current && Math.max($page.current, $maxVisitedPage.current || -Infinity);\n\n if ($page.current && $page.current === $maxVisitedPage.current) $maxVisitedPageSize.current = size;\n if ($page.current === 1 && size > 0) setCurrentPage($page.current);\n\n $page.current = undefined;\n updatePaginationChanged(true);\n } catch (ex) {\n if (signal.aborted) return;\n console.error(ex); // throw ex;\n }\n })();\n }\n : (noop as UsePagination['goto']);\n }, [limit, requestPageCallback]);\n\n const next = useCallback(() => {\n page && goto(Math.min(page + 1, getPageCount()));\n }, [goto, page]);\n\n const prev = useCallback(() => {\n page && goto(Math.max(page - 1, 1));\n }, [goto, page]);\n\n const pages = useMemo(() => getPageCount() || page || undefined, [goto, paginationChanged]);\n const hasNext = useMemo(() => !!(page && pages) && page < pages, [page, pages]);\n const hasPrev = useMemo(() => !!page && page > 1, [page]);\n\n const size = useMemo(\n () => ($maxVisitedPage.current ? ($maxVisitedPage.current - 1) * limit + ($maxVisitedPageSize.current || 0) : 0),\n [goto, paginationChanged]\n );\n\n const pageSize = useMemo(() => limit && Math.min(limit, size || Infinity) % limit, [limit, size]);\n\n const resetPagination = useCallback(() => {\n resetPageCount();\n $maxVisitedPage.current = $maxVisitedPageSize.current = $page.current = undefined;\n $mounted.current && setCurrentPage($page.current);\n }, [resetPageCount]);\n\n useEffect(() => {\n if ($mounted.current && paginationChanged) {\n updatePaginationChanged(false);\n }\n }, [paginationChanged]);\n\n return { goto, hasNext, hasPrev, limit, next, page, pages, pageSize, prev, resetPagination, size };\n};\n\nexport default usePagination;\n","import { useMemo } from 'preact/hooks';\nimport { isString, isUndefined } from '../../../../utils';\nimport { RequestPageCallback, RequestPageCallbackParams } from './types';\nimport { PaginationType, UsePagination, WithEitherPages, WithNextPage, WithPrevPage } from '../types';\nimport usePagination from './usePagination';\n\ntype HasEitherPages = WithEitherPages<PaginationType.CURSOR>;\ntype HasNextPage = WithNextPage<PaginationType.CURSOR>;\ntype HasPrevPage = WithPrevPage<PaginationType.CURSOR>;\ntype PageCursorType = RequestPageCallbackParams<PaginationType.CURSOR>['cursor'];\n\nexport const hasNextPage = (value: HasEitherPages): value is HasNextPage => isString((value as HasNextPage).next);\nexport const hasPrevPage = (value: HasEitherPages): value is HasPrevPage => isString((value as HasPrevPage).prev);\n\nconst useCursorPagination = (requestPageCallback?: RequestPageCallback<PaginationType.CURSOR>, pageLimit?: number): UsePagination => {\n const paginationSetupConfig = useMemo(() => {\n const cursors: PageCursorType[] = [];\n const getPageCount = () => cursors.length;\n const resetPageCount = () => {\n cursors.length = 0;\n };\n const getPageParams = (page: number) => ({ cursor: cursors[page - 1] });\n\n const updateCursor = (cursor: PageCursorType, page: number) => {\n const currentCursor = cursors[page - 1];\n\n if ((page === 1 || page === (cursors.length || 1) + 1) && isUndefined(currentCursor)) {\n cursors[page - 1] = cursor ? decodeURIComponent(cursor) : undefined;\n }\n };\n\n const updatePagination = (page: number, limit: number, paginationData: HasEitherPages) => {\n if (hasNextPage(paginationData)) updateCursor(paginationData.next, page + 1);\n if (hasPrevPage(paginationData)) updateCursor(paginationData.prev, page - 1);\n };\n\n return { getPageCount, getPageParams, resetPageCount, updatePagination };\n }, []);\n\n return usePagination<PaginationType.CURSOR>(paginationSetupConfig, requestPageCallback, pageLimit);\n};\n\nexport default useCursorPagination;\n","import { useMemo } from 'preact/hooks';\nimport { RequestPageCallback } from './types';\nimport { PaginationType, UsePagination, WithEitherPages, WithNextPage } from '../types';\nimport usePagination from './usePagination';\n\nexport type HasEitherPages = WithEitherPages<PaginationType.OFFSET>;\nexport type HasNextPage = WithNextPage<PaginationType.OFFSET>;\nexport const hasNextPage = (value: HasEitherPages): value is HasNextPage => (value as HasNextPage).next;\n\nconst useOffsetPagination = (\n requestPageCallback?: RequestPageCallback<PaginationType.OFFSET>,\n pageLimit?: number\n): UsePagination => {\n const paginationSetupConfig = useMemo(() => {\n let currentPage = 0;\n const getPageCount = () => currentPage;\n const resetPageCount = () => { currentPage = 0 };\n const getPageParams = (page: number, limit: number) => ({ offset: (page - 1) * limit });\n\n const updatePagination = (page: number, limit: number, paginationData: HasEitherPages) => {\n if (hasNextPage(paginationData) && paginationData.next) {\n currentPage = Math.max(currentPage, page + 1);\n }\n };\n\n return { getPageCount, getPageParams, resetPageCount, updatePagination };\n }, []);\n\n return usePagination<PaginationType.OFFSET>(paginationSetupConfig, requestPageCallback, pageLimit);\n};\n\nexport default useOffsetPagination;\n","import { useEffect, useMemo, useReducer, useRef } from 'preact/hooks';\nimport { EMPTY_OBJECT } from '../../utils';\nimport useMounted from '../useMounted';\nimport { ReactiveStateRecord, ReactiveStateUpdateRequest, ReactiveStateUpdateRequestWithField, UseReactiveStateRecord } from './types';\n\nconst useReactiveState = <Value, Param extends string>(\n params: ReactiveStateRecord<Value, Param> = EMPTY_OBJECT,\n initialStateSameAsDefault = true\n): UseReactiveStateRecord<Value, Param> => {\n const $hasDefaultState = useRef(initialStateSameAsDefault);\n const $defaultState = useRef(Object.freeze({ ...params }) as ReactiveStateRecord<Value, Param>);\n const $stateParams = useRef(new Set(Object.keys($defaultState.current) as Param[]));\n const $changedParams = useRef(new Set<Param>());\n const $mounted = useMounted();\n\n const [resetState, updateState] = useMemo(() => {\n const requestStateUpdate = (stateUpdateRequest: ReactiveStateUpdateRequest<Value, Param>) => {\n if (!$mounted.current) return;\n dispatch(stateUpdateRequest);\n };\n\n return [\n () => requestStateUpdate('reset'),\n (stateUpdateRequest: ReactiveStateUpdateRequestWithField<Value, Param>) => requestStateUpdate(stateUpdateRequest),\n ];\n }, [$mounted]);\n\n const [state, dispatch] = useReducer((state, stateUpdateRequest: ReactiveStateUpdateRequest<Value, Param>) => {\n if (stateUpdateRequest === 'reset') {\n $changedParams.current.clear();\n return $defaultState.current;\n }\n\n const stateUpdate = { ...stateUpdateRequest } as ReactiveStateRecord<Value, Param>;\n const stateUpdateFlags = [0];\n\n (Object.keys(stateUpdate) as Param[]).forEach((key, index) => {\n if (!$stateParams.current.has(key)) return;\n\n const currentValue = state[key] ?? undefined;\n const defaultValue = $defaultState.current[key] ?? undefined;\n const updateValue = stateUpdate[key] ?? defaultValue;\n\n if (updateValue === currentValue) return;\n\n const flagIndex = Math.floor(index / 32);\n const updateFlag = 1 << index % 32;\n\n stateUpdate[key] = updateValue;\n stateUpdateFlags[flagIndex] |= updateFlag;\n $changedParams.current[updateValue === defaultValue ? 'delete' : 'add'](key);\n });\n\n const STATE = stateUpdateFlags.some(flag => flag)\n ? $hasDefaultState.current && $changedParams.current.size === 0\n ? $defaultState.current\n : Object.freeze({ ...state, ...stateUpdate })\n : state;\n\n if (!$hasDefaultState.current) {\n // Mark as having default state on the first \"non-reset\" state update request,\n // whether it results in a state update or not.\n $defaultState.current = STATE;\n $hasDefaultState.current = true;\n }\n\n return STATE;\n }, $defaultState.current);\n\n const canResetState = useMemo(() => !!$changedParams.current.size, []);\n\n useEffect(() => {\n $defaultState.current = Object.freeze({ ...params }) as ReactiveStateRecord<Value, Param>;\n $stateParams.current = new Set(Object.keys($defaultState.current) as Param[]);\n $hasDefaultState.current = initialStateSameAsDefault;\n resetState();\n }, [initialStateSameAsDefault, params, resetState]);\n return { canResetState, defaultState: $defaultState.current, resetState, state, updateState };\n};\n\nexport default useReactiveState;\n","import { EMPTY_OBJECT } from '../../../../utils';\nimport { UsePaginatedRecordsFilters } from './types';\nimport useReactiveState from '../../../../hooks/useReactiveState';\nimport { ReactiveStateRecord } from '../../../../hooks/useReactiveState/types';\n\nconst usePaginatedRecordsFilters = <FilterValue, FilterParam extends string>(\n filterParams: ReactiveStateRecord<FilterValue, FilterParam> = EMPTY_OBJECT,\n initialFiltersSameAsDefault?: boolean\n): UsePaginatedRecordsFilters<FilterValue, FilterParam> => {\n const {\n canResetState: canResetFilters,\n defaultState: defaultFilters,\n resetState: resetFilters,\n state: filters,\n updateState: updateFilters,\n } = useReactiveState<FilterValue, FilterParam>(filterParams, initialFiltersSameAsDefault);\n\n return { canResetFilters, defaultFilters, filters, resetFilters, updateFilters };\n};\n\nexport default usePaginatedRecordsFilters;\n","import { UseReactiveStateRecord } from '../../../hooks/useReactiveState/types';\n\nexport const enum PageNeighbour {\n NEXT = 'next',\n PREV = 'prev',\n}\n\nexport const enum PaginationType {\n CURSOR = 'cursor',\n OFFSET = 'offset',\n}\n\nexport type ForPaginationType<T extends PaginationType, CursorType, OffsetType> = T extends PaginationType.CURSOR\n ? CursorType\n : T extends PaginationType.OFFSET\n ? OffsetType\n : never;\n\ntype BothPageNeighbours<T = any> = { [P in PageNeighbour]: T };\ntype NextPageNeighbour<T = any> = Omit<BothPageNeighbours<T>, PageNeighbour.PREV>;\ntype PrevPageNeighbour<T = any> = Omit<BothPageNeighbours<T>, PageNeighbour.NEXT>;\n\ntype WithNextPageNeighbour<T = any> = BothPageNeighbours<T> | NextPageNeighbour<T>;\ntype WithPrevPageNeighbour<T = any> = BothPageNeighbours<T> | PrevPageNeighbour<T>;\ntype WithPageNeighbours<T = any> = WithNextPageNeighbour<T> | WithPrevPageNeighbour<T>;\n\ntype WhichPageNeighbour<T extends PaginationType> = ForPaginationType<T, string, boolean>;\n\nexport type WithEitherPages<T extends PaginationType> = WithPageNeighbours<WhichPageNeighbour<T>>;\nexport type WithNextPage<T extends PaginationType> = WithNextPageNeighbour<WhichPageNeighbour<T>>;\nexport type WithPrevPage<T extends PaginationType> = WithPrevPageNeighbour<WhichPageNeighbour<T>>;\n\nexport type WithPaginationCursor<T extends Record<any, any> = {}> = T & { cursor?: string };\nexport type WithPaginationLimit<T extends Record<any, any> = {}> = T & { limit?: number };\nexport type WithPaginationOffset<T extends Record<any, any> = {}> = T & { offset: number };\nexport type WithPaginationRecordSize<T extends Record<any, any> = {}> = T & { size?: number };\n\nexport type WithPaginationLimitSelection<T extends Record<any, any> = {}> = T & {\n limitOptions?: readonly number[];\n onLimitSelection?: (limit: number) => void;\n};\n\nexport type PaginatedResponseDataKeyword = 'hasNext' | 'hasPrevious' | '_links';\nexport type PaginatedResponseDataField<DataField extends string> = Exclude<DataField | PaginatedResponseDataKeyword, PaginatedResponseDataKeyword>;\n\nexport type BasePaginatedResponseData<T = any, DataField extends string = 'data'> = {\n [K in PaginatedResponseDataField<DataField>]?: T[];\n};\n\nexport type PaginatedResponseDataWithLinks<T = any, DataField extends string = 'data'> = BasePaginatedResponseData<T, DataField> & {\n _links: {\n [K in PageNeighbour]?: { cursor: string };\n };\n};\n\nexport type PaginatedResponseDataWithoutLinks<T = any, DataField extends string = 'data'> = BasePaginatedResponseData<T, DataField> & {\n hasNext?: boolean;\n hasPrevious?: boolean;\n};\n\nexport type PaginatedResponseData<T = any, DataField extends string = 'data'> =\n | PaginatedResponseDataWithLinks<T, DataField>\n | PaginatedResponseDataWithoutLinks<T, DataField>;\n\nexport interface UseFilters<S extends UseReactiveStateRecord> {\n canResetFilters: S['canResetState'];\n defaultFilters: S['defaultState'];\n filters: S['state'];\n resetFilters: S['resetState'];\n updateFilters: S['updateState'];\n}\n\nexport interface UsePagination extends Required<WithPaginationLimit>, WithPaginationRecordSize {\n goto: (page: number) => void;\n hasNext: boolean;\n hasPrev: boolean;\n next: () => void;\n page: number | undefined;\n pages: number | undefined;\n pageSize: number | undefined;\n prev: () => void;\n resetPagination: () => void;\n}\n\nexport type PaginationProps = WithPaginationLimitSelection<Omit<UsePagination, 'goto' | 'resetPagination'> & Partial<Pick<UsePagination, 'goto'>>>;\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { boolOrFalse, EMPTY_OBJECT } from '../../../../utils';\nimport {\n BasePaginatedRecordsInitOptions,\n PaginatedRecordsFetcherReturnValue,\n RequestPageCallback,\n RequestPageCallbackParams,\n RequestPageCallbackReturnValue,\n UsePaginatedRecords,\n} from './types';\nimport usePageLimit from './usePageLimit';\nimport useCursorPagination from './useCursorPagination';\nimport useOffsetPagination from './useOffsetPagination';\nimport usePaginatedRecordsFilters from './usePaginatedRecordsFilters';\nimport useBooleanState from '../../../../hooks/useBooleanState';\nimport useMounted from '../../../../hooks/useMounted';\nimport {\n PageNeighbour,\n PaginatedResponseData,\n PaginatedResponseDataField,\n PaginatedResponseDataWithLinks,\n PaginationType,\n WithEitherPages,\n} from '../types';\nimport AdyenPlatformExperienceError from '../../../../core/Errors/AdyenPlatformExperienceError';\n\nconst offsetPaginatedResponseFields = ['hasNext', 'hasPrevious'] as const;\n\nconst isCursorPaginatedResponseData = <T, DataField extends string>(\n data: PaginatedResponseData<T, DataField>\n): data is PaginatedResponseDataWithLinks<T, DataField> => {\n const dataProperties = Object.getOwnPropertyNames(data as PaginatedResponseDataWithLinks<T, DataField>);\n return !offsetPaginatedResponseFields.some(prop => dataProperties.includes(prop));\n};\n\nconst parseCursorPaginatedResponseData = <T, DataField extends string>(\n data: PaginatedResponseData<T, DataField>,\n dataField: PaginatedResponseDataField<DataField> = 'data' as PaginatedResponseDataField<DataField>\n) => {\n const records = data[dataField] as T[];\n\n if (isCursorPaginatedResponseData<T, DataField>(data)) {\n const paginationData = Object.fromEntries(\n Object.entries(data._links).map(([key, value]) => [key, value.cursor])\n ) as WithEitherPages<PaginationType.CURSOR>;\n\n return { records, paginationData };\n }\n\n throw new TypeError('MALFORMED_PAGINATED_DATA');\n};\n\nconst parseOffsetPaginatedResponseData = <T, DataField extends string>(\n data: PaginatedResponseData<T, DataField>,\n dataField: PaginatedResponseDataField<DataField> = 'data' as PaginatedResponseDataField<DataField>\n) => {\n const records = data[dataField] as T[];\n\n if (!isCursorPaginatedResponseData<T, DataField>(data)) {\n const { hasNext, hasPrevious } = data;\n\n const paginationData = {\n [PageNeighbour.NEXT]: boolOrFalse(hasNext),\n [PageNeighbour.PREV]: boolOrFalse(hasPrevious),\n } as WithEitherPages<PaginationType.OFFSET>;\n\n return { records, paginationData };\n }\n\n throw new TypeError('MALFORMED_PAGINATED_DATA');\n};\n\nconst usePaginatedRecords = <T, DataField extends string, FilterValue extends string, FilterParam extends string>({\n dataField = 'data' as PaginatedResponseDataField<DataField>,\n fetchRecords,\n filterParams = EMPTY_OBJECT,\n initialFiltersSameAsDefault = true,\n initialize,\n onFiltersChanged,\n onLimitChanged,\n pagination,\n preferredLimit,\n preferredLimitOptions,\n enabled,\n}: BasePaginatedRecordsInitOptions<T, DataField, FilterValue, FilterParam>): UsePaginatedRecords<T, FilterValue, FilterParam> => {\n const [records, setRecords] = useState<T[]>([]);\n const [fetching, updateFetching] = useBooleanState(true);\n const [error, setError] = useState<AdyenPlatformExperienceError>();\n const [preferredPageLimit, setPreferredPageLimit] = useState(preferredLimit);\n\n const $mounted = useMounted();\n const $initialFetchInProgress = useRef(true);\n const $lastRequestedPage = useRef(1);\n const $recordsFilters = usePaginatedRecordsFilters<FilterValue, FilterParam>(filterParams, initialFiltersSameAsDefault);\n\n const { limit, limitOptions } = usePageLimit({ preferredLimit: preferredPageLimit, preferredLimitOptions });\n const { defaultFilters, filters, updateFilters, ...filtersProps } = $recordsFilters;\n\n const [parsePaginatedResponseData, usePagination] = useMemo(\n () =>\n pagination === PaginationType.CURSOR\n ? [parseCursorPaginatedResponseData, useCursorPagination]\n : [parseOffsetPaginatedResponseData, useOffsetPagination],\n []\n );\n\n const updateLimit = useCallback((limit: number) => setPreferredPageLimit(limit), []);\n\n const { goto, page, pages, resetPagination, ...paginationProps } = usePagination(\n useCallback(\n async (\n { page, ...pageRequestParams }: RequestPageCallbackParams<PaginationType>,\n signal?: AbortSignal\n ): Promise<RequestPageCallbackReturnValue<PaginationType>> => {\n try {\n setError(undefined);\n $lastRequestedPage.current = page;\n\n if (!$mounted.current || <undefined>updateFetching(true)) return;\n\n const res = await fetchRecords({ ...pageRequestParams, ...filters }, signal);\n const { records, paginationData } = parsePaginatedResponseData<T, DataField>(res, dataField);\n\n if ($initialFetchInProgress.current) {\n initialize?.([records, paginationData] as PaginatedRecordsFetcherReturnValue<PaginationType, T>, $recordsFilters);\n $initialFetchInProgress.current = false;\n }\n\n if ($mounted.current) {\n setRecords(records);\n updateFetching(false);\n }\n\n return { ...paginationData, size: records?.length };\n } catch (err) {\n // TODO - Handle signal abortion and updateFetching\n if (signal?.aborted) return;\n updateFetching(false);\n setError(err as AdyenPlatformExperienceError);\n\n console.error(err);\n }\n },\n [fetchRecords, filters, limit]\n ) as RequestPageCallback<PaginationType>,\n limit\n );\n\n useMemo(() => {\n $initialFetchInProgress.current = true;\n /* eslint-disable-next-line */\n }, [filterParams]);\n\n useMemo(() => {\n resetPagination();\n $lastRequestedPage.current = 1;\n /* eslint-disable-next-line */\n }, [filters, limit, resetPagination]);\n\n useEffect(() => {\n if (enabled) goto($lastRequestedPage.current);\n }, [goto, enabled]);\n\n useEffect(() => {\n onFiltersChanged?.(filters);\n }, [filters]);\n\n useEffect(() => {\n onLimitChanged?.(limit);\n }, [limit]);\n\n return { error, fetching, filters, goto, limitOptions, page, pages, records, updateFilters, updateLimit, ...filtersProps, ...paginationProps };\n};\n\nexport default usePaginatedRecords;\n","import { PaginatedRecordsInitOptions, UsePaginatedRecords } from './types';\nimport usePaginatedRecords from './usePaginatedRecords';\nimport { PaginationType } from '../types';\n\nconst useCursorPaginatedRecords = <T, DataField extends string, FilterValue extends string, FilterParam extends string>(\n initOptions: PaginatedRecordsInitOptions<T, DataField, FilterValue, FilterParam>\n): UsePaginatedRecords<T, FilterValue, FilterParam> => {\n return usePaginatedRecords<T, DataField, FilterValue, FilterParam>({\n ...initOptions,\n pagination: PaginationType.CURSOR,\n });\n};\n\nexport default useCursorPaginatedRecords;\n","export const BASE_CLASS = 'adyen-pe-transaction-totals';\nexport const ITEM_CLASS = 'adyen-pe-transaction-totals__item';\n","export const BASE_CLASS = 'adyen-pe-expandable-card';\nexport const CONTAINER_CLASS = BASE_CLASS + '__container';\nexport const CONTAINER_BUTTON_CLASS = CONTAINER_CLASS + '--button';\nexport const CONTAINER_FILLED_CLASS = CONTAINER_CLASS + '--filled';\nexport const CONTAINER_HIDDEN_CLASS = CONTAINER_CLASS + '--hidden';\nexport const CONTAINER_OVERLAY_CLASS = CONTAINER_CLASS + '--overlay';\nexport const CONTAINER_OVERLAY_ID = CONTAINER_OVERLAY_CLASS;\nexport const CONTENT_CLASS = BASE_CLASS + '__content';\nexport const CONTENT_EXPANDABLE_CLASS = CONTENT_CLASS + '--expandable';\nexport const CHEVRON_CLASS = BASE_CLASS + '__chevron';\n","export const DEFAULT_BASE_BUTTON_CLASSNAME = 'adyen-pe-base-button';\n","import useButton from '../Button/hooks/useButton';\nimport { DEFAULT_BASE_BUTTON_CLASSNAME } from './constants';\nimport { fixedForwardRef, parseBooleanProp, parseClassName } from '../../../utils/preact';\nimport { Ref } from 'preact';\nimport { useMemo } from 'preact/hooks';\nimport { ButtonProps } from './types';\nimport './BaseButton.scss';\n\nfunction BaseButton(\n { disabled = false, onClick, classNameModifiers = [], type = 'button', children, className, fullWidth, ...restAttributes }: ButtonProps,\n ref: Ref<HTMLButtonElement>\n) {\n const classNameValue = useMemo(() => parseClassName('', className) || '', [className]);\n const disabledValue = useMemo(() => parseBooleanProp(disabled), [disabled]);\n\n const { classes, click } = useButton(\n classNameValue,\n [...classNameModifiers, ...(fullWidth ? ['full-width'] : [])],\n DEFAULT_BASE_BUTTON_CLASSNAME,\n disabledValue,\n onClick\n );\n\n return (\n <button className={classes} type={type} disabled={disabled} onClick={click} ref={ref} {...restAttributes}>\n {children}\n </button>\n );\n}\n\nexport default fixedForwardRef(BaseButton);\n","import { ExpandableCardProps } from './types';\nimport { PropsWithChildren } from 'preact/compat';\nimport classNames from 'classnames';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport './ExpandableCard.scss';\nimport ChevronUp from '../SVGIcons/ChevronUp';\nimport ChevronDown from '../SVGIcons/ChevronDown';\nimport {\n BASE_CLASS,\n CHEVRON_CLASS,\n CONTAINER_BUTTON_CLASS,\n CONTAINER_CLASS,\n CONTAINER_FILLED_CLASS,\n CONTAINER_HIDDEN_CLASS,\n CONTAINER_OVERLAY_CLASS,\n CONTAINER_OVERLAY_ID,\n CONTENT_CLASS,\n CONTENT_EXPANDABLE_CLASS,\n} from './constants';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport { useClickOutside } from '../../../hooks/element/useClickOutside';\nimport BaseButton from '../BaseButton';\n\nconst ExpandableCard = ({ renderHeader, children, filled, fullWidth, ...listeners }: PropsWithChildren<ExpandableCardProps>) => {\n const { i18n } = useCoreContext();\n const [isOpen, setIsOpen] = useState(false);\n const toggleIsOpen = useCallback(() => setIsOpen(isOpen => !isOpen), [setIsOpen]);\n const expandButtonRef = useRef<HTMLButtonElement>(null);\n const isClosedFromOutside = useRef(false);\n const isOpenRef = useRef(isOpen);\n\n const clickOutsideRef = useClickOutside<HTMLElement>(\n undefined,\n useCallback(() => {\n if (isOpen) {\n toggleIsOpen();\n isClosedFromOutside.current = true;\n }\n }, [isOpen, toggleIsOpen])\n );\n\n useEffect(() => {\n if (isOpen) {\n clickOutsideRef.current?.focus();\n } else {\n // We want to manually focus the expand button only when the card is collapsed by inside clicks\n // Therefore we skip the manual focus initially when isOpen is false and when we have outside clicks\n if (isOpenRef.current !== isOpen && !isClosedFromOutside.current) {\n expandButtonRef.current?.focus();\n }\n isClosedFromOutside.current = false;\n }\n isOpenRef.current = isOpen;\n }, [isOpen, clickOutsideRef]);\n\n return (\n <div className={BASE_CLASS}>\n {children ? (\n <>\n <BaseButton\n className={classNames(CONTAINER_CLASS, CONTAINER_BUTTON_CLASS, { [CONTAINER_FILLED_CLASS]: filled })}\n disabled={isOpen}\n fullWidth={fullWidth}\n aria-controls={CONTAINER_OVERLAY_ID}\n aria-expanded={isOpen}\n aria-hidden={isOpen}\n onClick={toggleIsOpen}\n ref={expandButtonRef}\n data-testid={'expand-button'}\n {...listeners}\n >\n <span className=\"adyen-pe-sr-only\">{i18n.get('expandableCard.expand')}</span>\n <div className={classNames(CONTENT_CLASS, CONTENT_EXPANDABLE_CLASS)}>{renderHeader}</div>\n <div className={CHEVRON_CLASS}>\n <ChevronDown role=\"presentation\" />\n </div>\n </BaseButton>\n <BaseButton\n id={CONTAINER_OVERLAY_ID}\n className={classNames(CONTAINER_CLASS, CONTAINER_BUTTON_CLASS, CONTAINER_OVERLAY_CLASS, {\n [CONTAINER_FILLED_CLASS]: filled,\n [CONTAINER_HIDDEN_CLASS]: !isOpen,\n })}\n disabled={!isOpen}\n fullWidth={fullWidth}\n aria-controls={CONTAINER_OVERLAY_ID}\n aria-expanded={isOpen}\n aria-hidden={!isOpen}\n onClick={toggleIsOpen}\n ref={clickOutsideRef}\n data-testid={'collapse-button'}\n {...listeners}\n >\n <span className=\"adyen-pe-sr-only\">{i18n.get('expandableCard.collapse')}</span>\n <div className={classNames(CONTENT_CLASS, CONTENT_EXPANDABLE_CLASS)}>\n {renderHeader}\n <div>{children}</div>\n </div>\n <div className={CHEVRON_CLASS}>\n <ChevronUp role=\"presentation\" />\n </div>\n </BaseButton>\n </>\n ) : (\n <div className={classNames(CONTAINER_CLASS, { [CONTAINER_FILLED_CLASS]: filled })} {...listeners}>\n <div className={CONTENT_CLASS}>{renderHeader}</div>\n </div>\n )}\n </div>\n );\n};\n\nexport default ExpandableCard;\n","export const BASE_CLASS = 'adyen-pe-amount-skeleton';\nexport const MARGIN_CLASS = BASE_CLASS + '--has-margin';\nexport const LOADING_CLASS = BASE_CLASS + '--loading';\n","import classNames from 'classnames';\nimport { BASE_CLASS, LOADING_CLASS, MARGIN_CLASS } from './constants';\nimport './AmountSkeleton.scss';\nimport { FC } from 'preact/compat';\nimport { AmountSkeletonProps } from './types';\n\nexport const AmountSkeleton: FC<AmountSkeletonProps> = ({ hasMargin = false, isLoading = false, width }) => {\n return <span className={classNames(BASE_CLASS, { [LOADING_CLASS]: isLoading, [MARGIN_CLASS]: hasMargin })} style={{ width }}></span>;\n};\n\nexport default AmountSkeleton;\n","export const BASE_CLASS = 'adyen-pe-summary-item';\nexport const LABEL_CONTAINER_CLASS = BASE_CLASS + '__label-container';\nexport const LABEL_CONTAINER_CLASS_LOADING = LABEL_CONTAINER_CLASS + '--loading';\nexport const BODY_CLASS = BASE_CLASS + '--body';\nexport const LABEL_CLASS = BASE_CLASS + '__label';\nexport const PLACEHOLDER_CLASS = BASE_CLASS + '__placeholder';\nexport const AMOUNT_CLASS = BASE_CLASS + '__amount';\n","import { LABEL_CLASS, LABEL_CONTAINER_CLASS, LABEL_CONTAINER_CLASS_LOADING } from './constants';\nimport { SummaryItemLabelProps } from './types';\nimport { TypographyVariant } from '../../../../internal/Typography/types';\nimport Typography from '../../../../internal/Typography/Typography';\nimport { fixedForwardRef } from '../../../../../utils/preact';\nimport classNames from 'classnames';\nimport { ForwardedRef } from 'preact/compat';\n\nexport const SummaryItemLabel = fixedForwardRef(\n ({ config, i18n, isSkeletonVisible, className, ...restArgs }: SummaryItemLabelProps, ref: ForwardedRef<HTMLSpanElement>) => {\n return (\n <span\n className={classNames(LABEL_CONTAINER_CLASS, className, { [LABEL_CONTAINER_CLASS_LOADING]: isSkeletonVisible })}\n style={{ cursor: 'default' }}\n ref={ref}\n {...restArgs}\n >\n {config.labelKey && (\n <Typography variant={TypographyVariant.CAPTION} className={LABEL_CLASS}>\n {i18n.get(config.labelKey)}\n </Typography>\n )}\n </span>\n );\n }\n);\n","import AmountSkeleton from '../AmountSkeleton/AmountSkeleton';\nimport { AMOUNT_CLASS, BASE_CLASS, BODY_CLASS, LABEL_CLASS, PLACEHOLDER_CLASS } from './constants';\nimport { SummaryItemLabel } from './SummaryItemLabel';\nimport { SummaryItemColumnConfig, SummaryItemProps } from './types';\nimport { Tooltip } from '../../../../internal/Tooltip/Tooltip';\nimport { TypographyVariant } from '../../../../internal/Typography/types';\nimport Typography from '../../../../internal/Typography/Typography';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport classNames from 'classnames';\nimport { useCallback, useEffect } from 'preact/hooks';\nimport './SummaryItem.scss';\nimport { mediaQueries, useResponsiveViewport } from '../../hooks/useResponsiveViewport';\n\nexport const SummaryItem = ({\n columnConfigs,\n isHeader = false,\n isHovered = false,\n isSkeletonVisible = false,\n isLoading = false,\n widths,\n onWidthsSet,\n isEmpty,\n}: SummaryItemProps) => {\n const { i18n } = useCoreContext();\n\n useEffect(() => {\n const newWidths = columnConfigs.map(config => config.ref?.current?.getBoundingClientRect().width ?? 0);\n onWidthsSet(newWidths);\n // We need columnConfigs only for the refs, therefore we don't need to include them in effect dependencies\n // If we do include it though, we run into an infinite loop of re-rendering\n // TODO: Check what causes the infinite loop\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onWidthsSet]);\n\n const getColumnStyle = (index: number) => ({ width: widths && widths[index] ? widths[index] : 'auto' });\n\n const isXsScreen = useResponsiveViewport(mediaQueries.only.xs);\n\n const typographyVariant = useCallback(\n (config: SummaryItemColumnConfig, isLongValue: boolean) => {\n if (config.valueHasLabelStyle) {\n return TypographyVariant.CAPTION;\n }\n return isLongValue && !isXsScreen ? TypographyVariant.BODY : TypographyVariant.TITLE;\n },\n [isXsScreen]\n );\n\n return (\n <div className={classNames(BASE_CLASS, { [BODY_CLASS]: !isHeader })}>\n {columnConfigs.map((config, index) => {\n const value = config.getValue();\n const isLongValue = !!value && value.length > 12;\n return (\n <div key={index}>\n {isHeader &&\n (config.tooltipLabel ? (\n <Tooltip content={i18n.get(`${config.tooltipLabel}`)} isContainerHovered={isHovered}>\n <SummaryItemLabel config={config} i18n={i18n} isSkeletonVisible={isSkeletonVisible} />\n </Tooltip>\n ) : (\n <SummaryItemLabel config={config} i18n={i18n} isSkeletonVisible={isSkeletonVisible} />\n ))}\n {isSkeletonVisible ? (\n <AmountSkeleton isLoading={isLoading} hasMargin={config.hasSkeletonMargin} width={config.skeletonWidth + 'px'} />\n ) : isEmpty ? (\n <span className={classNames([BASE_CLASS, PLACEHOLDER_CLASS])}></span>\n ) : (\n <div ref={config.ref} style={getColumnStyle(index)}>\n <Typography\n variant={typographyVariant(config, isLongValue)}\n className={classNames({ [LABEL_CLASS]: config.valueHasLabelStyle, [AMOUNT_CLASS]: !config.valueHasLabelStyle })}\n >\n {value}\n </Typography>\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n};\n","import { TransactionTotalItemProps } from './types';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport { useMemo, useRef } from 'preact/hooks';\nimport { SummaryItemColumnConfig } from '../SummaryItem/types';\nimport { SummaryItem } from '../SummaryItem/SummaryItem';\n\nexport const TransactionTotalItem = ({\n total,\n hiddenField,\n isHeader = false,\n isHovered = false,\n isSkeleton = false,\n isLoading = false,\n widths,\n onWidthsSet,\n}: TransactionTotalItemProps) => {\n const { i18n } = useCoreContext();\n const incomingRef = useRef<HTMLDivElement>(null);\n const expenseRef = useRef<HTMLDivElement>(null);\n const currencyRef = useRef<HTMLDivElement>(null);\n\n const columnConfigs: SummaryItemColumnConfig[] = useMemo(() => {\n const incomingsConfig: SummaryItemColumnConfig = {\n labelKey: 'totalIncoming',\n ref: incomingRef,\n skeletonWidth: 80,\n getValue: () => total && i18n.amount(total.incomings, total.currency),\n tooltipLabel: 'tooltip.totalIncoming',\n };\n\n const expensesConfig: SummaryItemColumnConfig = {\n labelKey: 'totalOutgoing',\n ref: expenseRef,\n skeletonWidth: 80,\n getValue: () => total && i18n.amount(total.expenses, total.currency),\n tooltipLabel: 'tooltip.totalOutgoing',\n };\n\n return [\n ...(hiddenField !== 'incomings' ? [incomingsConfig] : []),\n ...(hiddenField !== 'expenses' ? [expensesConfig] : []),\n {\n ref: currencyRef,\n skeletonWidth: 40,\n valueHasLabelStyle: true,\n getValue: () => total?.currency,\n },\n ];\n }, [total, hiddenField, i18n]);\n\n return (\n <SummaryItem\n isHovered={isHovered}\n isEmpty={!total}\n columnConfigs={columnConfigs}\n isHeader={isHeader}\n isSkeletonVisible={isSkeleton}\n isLoading={isLoading}\n widths={widths}\n onWidthsSet={onWidthsSet}\n />\n );\n};\n","export const BASE_CLASS = 'adyen-pe-base-list';\n","import './BaseList.scss';\nimport { BASE_CLASS } from './constants';\nimport { FC } from 'preact/compat';\nimport { BaseListProps } from './types';\n\nexport const BaseList: FC<BaseListProps> = ({ children }) => {\n return <ul className={BASE_CLASS}>{children}</ul>;\n};\n","import { useCallback, useState } from 'preact/hooks';\n\nexport const useMaxWidthsState = (): [number[], (widths: number[]) => void] => {\n const [maxWidths, setMaxWidths] = useState<number[]>([]);\n const setMaxWidthsConditionally = useCallback((widths: number[]) => {\n setMaxWidths(currentMaxWidths =>\n widths.every(width => !width)\n ? widths\n : widths.map((width, index) => {\n const currentMaxWidth = currentMaxWidths[index];\n return !currentMaxWidth || width > currentMaxWidth ? width : currentMaxWidth;\n })\n );\n }, []);\n return [maxWidths, setMaxWidthsConditionally];\n};\n","import { useMemo, useState } from 'preact/hooks';\nimport ExpandableCard from '../../../../internal/ExpandableCard/ExpandableCard';\nimport { memo } from 'preact/compat';\nimport { TransactionTotalItem } from '../TransactionTotalItem/TransactionTotalItem';\nimport { BaseList } from '../../../../internal/BaseList/BaseList';\nimport { useMaxWidthsState } from '../../hooks/useMaxWidths';\nimport './TransactionTotals.scss';\nimport { ITransactionTotalWithKey, TotalsCardProps } from './types';\n\nexport const TotalsCard = memo(({ totals, isLoading, hiddenField, fullWidth }: TotalsCardProps) => {\n const [maxWidths, setMaxWidths] = useMaxWidthsState();\n const [isHovered, setIsHovered] = useState(false);\n\n const [firstTotal, ...restOfTotals] = useMemo(() => {\n return totals.map((t: Partial<ITransactionTotalWithKey>) => {\n t['key'] = `${t.currency}-${Math.random()}`;\n return t as ITransactionTotalWithKey;\n });\n }, [totals]);\n\n return (\n <ExpandableCard\n renderHeader={\n <TransactionTotalItem\n isHovered={isHovered}\n total={firstTotal}\n hiddenField={hiddenField}\n widths={maxWidths}\n isHeader\n isSkeleton={isLoading}\n isLoading={isLoading}\n onWidthsSet={setMaxWidths}\n />\n }\n fullWidth={fullWidth}\n onMouseEnter={() => setIsHovered(true)}\n onFocus={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onBlur={() => setIsHovered(false)}\n >\n {!isLoading && restOfTotals.length && (\n <BaseList>\n {restOfTotals.map(total => (\n <li key={total.key}>\n <TransactionTotalItem\n isHovered={isHovered}\n total={total}\n hiddenField={hiddenField}\n widths={maxWidths}\n onWidthsSet={setMaxWidths}\n />\n </li>\n ))}\n </BaseList>\n )}\n </ExpandableCard>\n );\n});\n","import { useCallback, useMemo } from 'preact/hooks';\nimport { EMPTY_OBJECT } from '../../../../../utils';\nimport { useAuthContext } from '../../../../../core/Auth';\nimport { useFetch } from '../../../../../hooks/useFetch/useFetch';\nimport { OperationParameters } from '../../../../../types/api/endpoints';\nimport { WithPartialField } from '../../../../../utils/types';\nimport { BASE_CLASS, ITEM_CLASS } from './constants';\nimport { memo } from 'preact/compat';\nimport { ITransaction } from '../../../../../types';\nimport { mediaQueries, useResponsiveViewport } from '../../hooks/useResponsiveViewport';\nimport './TransactionTotals.scss';\nimport { TotalsCard } from './TotalsCard';\n\ntype TransactionTotalsProps = Required<OperationParameters<'getTransactionTotals'>['query']> & {\n isAvailableCurrenciesFetching: boolean;\n availableCurrencies: ITransaction['amount']['currency'][] | undefined;\n fullWidth?: boolean;\n};\n\nconst TransactionTotals = memo(\n ({\n availableCurrencies,\n isAvailableCurrenciesFetching,\n balanceAccountId,\n createdSince,\n createdUntil,\n categories,\n statuses,\n maxAmount,\n minAmount,\n currencies,\n fullWidth,\n }: WithPartialField<TransactionTotalsProps, 'balanceAccountId' | 'minAmount' | 'maxAmount'>) => {\n const { getTransactionTotals } = useAuthContext().endpoints;\n\n const fetchCallback = useCallback(async () => {\n return getTransactionTotals?.(EMPTY_OBJECT, {\n query: {\n createdSince,\n createdUntil,\n categories,\n statuses,\n maxAmount,\n minAmount,\n currencies,\n balanceAccountId: balanceAccountId!,\n },\n });\n }, [balanceAccountId, categories, createdSince, createdUntil, currencies, getTransactionTotals, maxAmount, minAmount, statuses]);\n\n const { data, isFetching } = useFetch({\n fetchOptions: useMemo(() => ({ enabled: !!balanceAccountId && !!getTransactionTotals }), [balanceAccountId, getTransactionTotals]),\n queryFn: fetchCallback,\n });\n const isLoading = !balanceAccountId || isFetching || isAvailableCurrenciesFetching;\n\n const getTotals = useCallback(() => {\n if (!availableCurrencies || !data) {\n return data?.data;\n }\n\n const partialTotals = availableCurrencies.map(currency => {\n const totalOfCurrency = data.data.find(total => total.currency === currency);\n return totalOfCurrency || { currency, incomings: 0, expenses: 0 };\n });\n\n return partialTotals.concat(data.data.filter(total => !partialTotals.includes(total)));\n }, [availableCurrencies, data]);\n\n const totals = getTotals() ?? [];\n const isXsScreen = useResponsiveViewport(mediaQueries.only.xs);\n\n return (\n <div className={BASE_CLASS}>\n {isXsScreen ? (\n <>\n <div className={ITEM_CLASS}>\n <TotalsCard totals={totals} isLoading={isLoading} hiddenField=\"expenses\" fullWidth={fullWidth} />\n </div>\n <div className={ITEM_CLASS}>\n <TotalsCard totals={totals} isLoading={isLoading} hiddenField=\"incomings\" fullWidth={fullWidth} />\n </div>\n </>\n ) : (\n <TotalsCard totals={totals} isLoading={isLoading} fullWidth={fullWidth} />\n )}\n </div>\n );\n }\n);\n\nexport default TransactionTotals;\n","export const BASE_CLASS = 'adyen-pe-balances';\n","import useCoreContext from '../../../../../core/Context/useCoreContext';\nimport { useMemo, useRef } from 'preact/hooks';\nimport { BalanceItemProps } from './types';\nimport { SummaryItemColumnConfig } from '../SummaryItem/types';\nimport { SummaryItem } from '../SummaryItem/SummaryItem';\n\nexport const BalanceItem = ({ balance, isHeader = false, isSkeleton = false, isLoading = false, widths, onWidthsSet, isEmpty }: BalanceItemProps) => {\n const { i18n } = useCoreContext();\n const amountRef = useRef<HTMLDivElement>(null);\n const currencyRef = useRef<HTMLDivElement>(null);\n const columnConfigs: SummaryItemColumnConfig[] = useMemo(\n () => [\n {\n labelKey: 'accountBalance',\n ref: amountRef,\n skeletonWidth: 80,\n getValue: () => balance && i18n.amount(balance.value, balance.currency),\n },\n {\n ref: currencyRef,\n skeletonWidth: 40,\n valueHasLabelStyle: true,\n getValue: () => balance?.currency,\n },\n ],\n [balance, amountRef, i18n]\n );\n\n return (\n <SummaryItem\n isEmpty={isEmpty}\n columnConfigs={columnConfigs}\n isHeader={isHeader}\n isSkeletonVisible={isSkeleton}\n isLoading={isLoading}\n widths={widths}\n onWidthsSet={onWidthsSet}\n />\n );\n};\n","import { useCallback, useEffect, useMemo } from 'preact/hooks';\nimport { EMPTY_OBJECT } from '../../../../../utils';\nimport { useAuthContext } from '../../../../../core/Auth';\nimport { useFetch } from '../../../../../hooks/useFetch/useFetch';\nimport { memo } from 'preact/compat';\nimport { BASE_CLASS } from './constants';\nimport ExpandableCard from '../../../../internal/ExpandableCard/ExpandableCard';\nimport { BaseList } from '../../../../internal/BaseList/BaseList';\nimport { BalanceItem } from '../BalanceItem/BalanceItem';\nimport { useMaxWidthsState } from '../../hooks/useMaxWidths';\nimport { BalancesProps, IBalanceWithKey } from './types';\n\nexport const Balances = memo(({ balanceAccountId, defaultCurrencyCode, onCurrenciesChange, fullWidth }: BalancesProps) => {\n const { getBalances: getAccountsBalance } = useAuthContext().endpoints;\n\n const fetchCallback = useCallback(async () => {\n return getAccountsBalance?.(EMPTY_OBJECT, {\n path: { balanceAccountId: balanceAccountId! },\n });\n }, [balanceAccountId, getAccountsBalance]);\n\n const { data, error, isFetching } = useFetch({\n fetchOptions: useMemo(() => ({ enabled: !!balanceAccountId && !!getAccountsBalance }), [balanceAccountId, getAccountsBalance]),\n queryFn: fetchCallback,\n });\n\n const isLoading = !balanceAccountId || isFetching;\n const isEmpty = !!error || !data?.data.length;\n\n const balances = useMemo(() => {\n return (\n data?.data &&\n [...data.data].sort(({ currency: firstCurrency }, { currency: secondCurrency }) => {\n if (defaultCurrencyCode) {\n if (firstCurrency === defaultCurrencyCode) return -1;\n if (secondCurrency === defaultCurrencyCode) return 1;\n }\n return firstCurrency.localeCompare(secondCurrency);\n })\n );\n }, [data?.data, defaultCurrencyCode]);\n\n const [firstBalance, ...restOfBalances] = useMemo(() => {\n return (\n balances?.map((t: Partial<IBalanceWithKey>) => {\n t['key'] = `${t.currency}-${Math.random()}`;\n return t as IBalanceWithKey;\n }) ?? []\n );\n }, [balances]);\n\n const [maxWidths, setMaxWidths] = useMaxWidthsState();\n\n useEffect(() => {\n const currencies = new Set(balances?.map(({ currency }) => currency) || []);\n onCurrenciesChange(Array.from(currencies), isFetching);\n }, [balances, isFetching, onCurrenciesChange]);\n\n return (\n <div className={BASE_CLASS}>\n <ExpandableCard\n renderHeader={\n <BalanceItem\n isEmpty={isEmpty}\n balance={firstBalance}\n widths={maxWidths}\n isHeader\n isSkeleton={isLoading}\n isLoading={isLoading}\n onWidthsSet={setMaxWidths}\n />\n }\n filled\n fullWidth={fullWidth}\n >\n {restOfBalances.length && (\n <BaseList>\n {restOfBalances.map(balance => (\n <li key={balance.key}>\n <BalanceItem balance={balance} widths={maxWidths} onWidthsSet={setMaxWidths} />\n </li>\n ))}\n </BaseList>\n )}\n </ExpandableCard>\n </div>\n );\n});\n","import { memo } from 'preact/compat';\nimport Select from '../../../../internal/FormFields/Select';\nimport { mediaQueries, useResponsiveViewport } from '../../hooks/useResponsiveViewport';\nimport type { SelectProps } from '../../../../internal/FormFields/Select/types';\nimport useMultiSelectionFilter from './useMultiSelectionFilter';\n\nconst MultiSelectionFilter = memo(\n <FilterParam extends string = string, FilterValue extends string = string>({\n placeholder,\n selection,\n selectionOptions,\n updateSelection,\n }: ReturnType<typeof useMultiSelectionFilter<FilterParam, FilterValue>> & Pick<SelectProps<any>, 'placeholder'>) => {\n const isSmViewport = useResponsiveViewport(mediaQueries.down.xs);\n const isOnlySmDevice = useResponsiveViewport(mediaQueries.only.sm);\n const isOnlyMdDevice = useResponsiveViewport(mediaQueries.only.md);\n\n return selectionOptions && selectionOptions.length > 1 ? (\n <Select\n onChange={updateSelection}\n filterable={false}\n multiSelect={true}\n placeholder={placeholder}\n selected={selection}\n withoutCollapseIndicator={true}\n items={selectionOptions}\n showOverlay={isSmViewport}\n fitPosition={isOnlyMdDevice || isOnlySmDevice}\n />\n ) : null;\n }\n);\n\nexport default MultiSelectionFilter;\n","import { SelectItem } from '../../../../../internal/FormFields/Select/types';\nimport { SelectionOptionsList } from './types';\n\nexport const selectionOptionsFor = <T extends string = string>(list: SelectionOptionsList<T>) =>\n Object.freeze(list.map(id => ({ id, name: id } as SelectItem)));\n","import { useCallback, useMemo, useState } from 'preact/hooks';\nimport { listFrom } from '../../../../../../utils';\nimport { selectionOptionsFor } from './utils';\nimport type { SelectionOptionsList, UseMultiSelectionFilterConfig, UseMultiSelectionFilterConfigWithoutValues } from './types';\n\nexport const useMultiSelectionFilter = <FilterParam extends string = string, FilterValue extends string = string>({\n filterParam,\n filterValues,\n filters,\n defaultFilters,\n updateFilters,\n}: UseMultiSelectionFilterConfig<FilterParam, FilterValue>) => {\n const selection = useMemo(() => {\n return listFrom<FilterValue>(filters?.[filterParam] ?? defaultFilters?.[filterParam] ?? '');\n }, [defaultFilters, filters, filterParam]);\n\n const selectionOptions = useMemo(() => filterValues && selectionOptionsFor(filterValues), [filterValues]);\n\n const updateSelection = useCallback(\n ({ target }: any) => {\n updateFilters?.({ [filterParam]: target?.value || '' });\n },\n [updateFilters, filterParam]\n );\n\n return { selection, selectionOptions, updateSelection } as const;\n};\n\nexport const useMultiSelectionFilterWithoutValues = <FilterParam extends string = string, FilterValue extends string = string>(\n config: UseMultiSelectionFilterConfigWithoutValues<FilterParam, FilterValue>\n) => {\n const [filterValues, updateFilterValues] = useState<SelectionOptionsList<FilterValue>>();\n const useMultiSelectionFilterProperties = useMultiSelectionFilter({ ...config, filterValues });\n return { ...useMultiSelectionFilterProperties, filterValues, updateFilterValues } as const;\n};\n\nexport default useMultiSelectionFilter;\n","import { FilterParam } from '../../../../../types';\nimport type { ITransaction } from '../../../../../../types';\nimport type { TransactionsOverviewMultiSelectionFilterParam } from './types';\n\nexport const TRANSACTIONS_OVERVIEW_MULTI_SELECTION_FILTERS = [FilterParam.CURRENCIES, FilterParam.CATEGORIES, FilterParam.STATUSES] as const;\n\nexport const DEFAULT_TRANSACTIONS_OVERVIEW_MULTI_SELECTION_FILTER_PARAMS = Object.freeze(\n Object.fromEntries(TRANSACTIONS_OVERVIEW_MULTI_SELECTION_FILTERS.map(param => [param, '']))\n) as Readonly<{ [P in TransactionsOverviewMultiSelectionFilterParam]: string }>;\n\nexport const TRANSACTION_CATEGORIES: readonly ITransaction['category'][] = [\n 'ATM',\n 'Capital',\n 'Chargeback',\n 'Correction',\n 'Fee',\n 'Payment',\n 'Refund',\n 'Transfer',\n 'Other',\n] as const;\n\nexport const TRANSACTION_STATUSES: readonly ITransaction['status'][] = ['Booked', 'Pending', 'Reversed'] as const;\n","import useBalanceAccountSelection from './useBalanceAccountSelection';\nimport { MutableRef, useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { getTimeRangeSelectionDefaultPresetOptions } from '../internal/DatePicker/components/TimeRangeSelector';\nimport { DEFAULT_TRANSACTIONS_OVERVIEW_MULTI_SELECTION_FILTER_PARAMS } from '../external/TransactionsOverview/components/MultiSelectionFilter';\nimport { FilterParam } from '../types';\n\nconst getDefaultFilterParams = (type: 'transactions' | 'payouts') => {\n const timeRangeOptions = getTimeRangeSelectionDefaultPresetOptions();\n const defaultTimeRange = 'rangePreset.last30Days';\n const { from, to } = timeRangeOptions[defaultTimeRange];\n\n const defaultFilterParams = {\n ...(type === 'transactions' && {\n ...DEFAULT_TRANSACTIONS_OVERVIEW_MULTI_SELECTION_FILTER_PARAMS,\n [FilterParam.MIN_AMOUNT]: undefined,\n [FilterParam.MAX_AMOUNT]: undefined,\n }),\n [FilterParam.CREATED_SINCE]: new Date(from).toISOString(),\n [FilterParam.CREATED_UNTIL]: new Date(to).toISOString(),\n } as const;\n\n return { defaultFilterParams, defaultTimeRange, timeRangeOptions } as const;\n};\n\nconst useDefaultOverviewFilterParams = (\n filterType: Parameters<typeof getDefaultFilterParams>[0],\n balanceAccount?: ReturnType<typeof useBalanceAccountSelection>['activeBalanceAccount']\n) => {\n const [nowTimestamp, setNowTimestamp] = useState(Date.now());\n const params = getDefaultFilterParams(filterType);\n const defaultParams: MutableRef<any> = useRef(params);\n const refreshNowTimestamp = useCallback(() => setNowTimestamp(Date.now()), [setNowTimestamp]);\n\n useEffect(() => {\n refreshNowTimestamp();\n }, [balanceAccount, refreshNowTimestamp]);\n\n return { defaultParams, nowTimestamp, refreshNowTimestamp } as const;\n};\n\nexport default useDefaultOverviewFilterParams;\n","import { FilterParam } from '../../../types';\nimport { ITransaction } from '../../../../types';\nimport {\n DEFAULT_TRANSACTIONS_OVERVIEW_MULTI_SELECTION_FILTER_PARAMS as defaultFilters,\n TRANSACTION_CATEGORIES,\n TRANSACTION_STATUSES,\n TransactionsOverviewMultiSelectionFilterParam,\n useMultiSelectionFilter,\n UseMultiSelectionFilterConfig,\n} from '../components/MultiSelectionFilter';\n\nconst useTransactionsOverviewMultiSelectionFilters = (\n filtersConfig: Pick<UseMultiSelectionFilterConfig<TransactionsOverviewMultiSelectionFilterParam>, 'filters' | 'updateFilters'>,\n currencies: ITransaction['amount']['currency'][] | undefined\n) => {\n const categoriesFilter = useMultiSelectionFilter({\n filterParam: FilterParam.CATEGORIES,\n filterValues: TRANSACTION_CATEGORIES,\n defaultFilters,\n ...filtersConfig,\n });\n const statusesFilter = useMultiSelectionFilter({\n filterParam: FilterParam.STATUSES,\n filterValues: TRANSACTION_STATUSES,\n defaultFilters,\n ...filtersConfig,\n });\n\n const currenciesFilter = useMultiSelectionFilter({\n filterParam: FilterParam.CURRENCIES,\n filterValues: currencies,\n defaultFilters,\n ...filtersConfig,\n });\n\n return {\n categoriesFilter,\n currenciesFilter,\n statusesFilter,\n } as const;\n};\n\nexport default useTransactionsOverviewMultiSelectionFilters;\n","export const AMOUNT_MULTIPLIER = 100000;\n","import { FilterEditModalRenderProps } from '../BaseFilter/types';\nimport { RangeFilterBody } from './types';\nimport InputBase from '../../../FormFields/InputBase';\nimport './AmountFilter.scss';\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport { CommitAction } from '../../../../../hooks/useCommitAction';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport { AMOUNT_MULTIPLIER } from './constants';\nimport { isUndefined } from '../../../../../utils';\n\nexport const RangeSelection = ({\n onChange,\n editAction,\n onValueUpdated,\n selectedCurrencies,\n availableCurrencies,\n value,\n ...props\n}: FilterEditModalRenderProps<RangeFilterBody>) => {\n const { i18n } = useCoreContext();\n\n const [minAmount, setMinAmount] = useState<number | undefined>(\n !isUndefined(props.minAmount) ? parseFloat(props.minAmount) / AMOUNT_MULTIPLIER : undefined\n );\n const [maxAmount, setMaxAmount] = useState<number | undefined>(\n !isUndefined(props.maxAmount) ? parseFloat(props.maxAmount) / AMOUNT_MULTIPLIER : undefined\n );\n\n const applyFilter = useCallback(() => {\n onChange({ minAmount, maxAmount });\n }, [maxAmount, minAmount, onChange]);\n\n const clearFilter = useCallback(() => {\n onChange({ minAmount: undefined, maxAmount: undefined });\n setMaxAmount(undefined);\n setMinAmount(undefined);\n }, [onChange]);\n\n useEffect(() => {\n if (editAction === CommitAction.APPLY) applyFilter();\n if (editAction === CommitAction.CLEAR) clearFilter();\n }, [applyFilter, clearFilter, editAction]);\n\n const filterValue = useMemo(() => ({ minAmount, maxAmount }), [maxAmount, minAmount]);\n\n useEffect(() => {\n if (filterValue.minAmount || filterValue.maxAmount) onValueUpdated(`${filterValue.minAmount}-${filterValue.maxAmount}`);\n else onValueUpdated(null);\n }, [filterValue, onValueUpdated]);\n\n return (\n <div className=\"adyen-pe-range-selection-filter\">\n <div className=\"adyen-pe-range-selection-filter__input\">\n <label htmlFor=\"minValue\">{`${i18n.get('from')}:`}</label>\n <InputBase\n lang={i18n.locale}\n name={'minValue'}\n type=\"number\"\n value={minAmount}\n onInput={e => {\n e.currentTarget && setMinAmount(e.currentTarget.value !== '' ? parseFloat(e.currentTarget.value) : undefined);\n }}\n min={0}\n isInvalid={minAmount ? minAmount < 0 : false}\n errorMessage={i18n.get('noNegativeNumbersAllowed')}\n />\n </div>\n <div className=\"adyen-pe-range-selection-filter__input\">\n <label htmlFor=\"maxValue\">{`${i18n.get('to')}:`}</label>\n <InputBase\n lang={i18n.locale}\n name={'maxValue'}\n type=\"number\"\n value={maxAmount}\n onInput={e => {\n e.currentTarget && setMaxAmount(e.currentTarget.value !== '' ? parseFloat(e.currentTarget.value) : undefined);\n }}\n min={minAmount}\n isInvalid={!isUndefined(maxAmount) && !isUndefined(minAmount) && maxAmount < minAmount}\n errorMessage={i18n.get('toValueShouldBeGreaterThanTheFromValue')}\n />\n </div>\n </div>\n );\n};\n","import BaseFilter from '../BaseFilter';\nimport { FilterProps } from '../BaseFilter/types';\nimport { RangeFilterProps } from './types';\nimport { RangeSelection } from './RangeSelection';\nimport { useCallback, useMemo, useState } from 'preact/hooks';\nimport { EMPTY_OBJECT, isUndefined } from '../../../../../utils';\nimport { PopoverContainerSize } from '../../../Popover/types';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport { AMOUNT_MULTIPLIER } from './constants';\n\nexport const AmountFilter = ({ updateFilters, selectedCurrencies, availableCurrencies, ...props }: FilterProps<RangeFilterProps>) => {\n const { i18n } = useCoreContext();\n const [value, setValue] = useState<{ minAmount: number | undefined; maxAmount: number | undefined } | undefined>();\n const [formattedValue, setValueFormattedValue] = useState<string | undefined>();\n\n const showCurrencySymbol = useMemo(() => {\n return selectedCurrencies?.length === 1 || availableCurrencies?.length === 1;\n }, [availableCurrencies?.length, selectedCurrencies?.length]);\n\n const formatAmount = useCallback(\n (amount: number, showSymbol: boolean) => {\n const currencyCode = selectedCurrencies?.[0] || availableCurrencies?.[0];\n const options =\n showSymbol && currencyCode\n ? {\n style: 'currency',\n currency: currencyCode,\n currencyDisplay: 'symbol',\n }\n : undefined;\n return amount.toLocaleString(i18n.locale, options);\n },\n [availableCurrencies, i18n, selectedCurrencies]\n );\n\n const onFilterChange = useCallback(\n (params: { minAmount: number | undefined; maxAmount: number | undefined; filterValue: string | undefined }) => {\n const { minAmount, maxAmount } = params ?? EMPTY_OBJECT;\n setValue({ minAmount, maxAmount });\n if (isUndefined(minAmount) && isUndefined(maxAmount)) setValueFormattedValue(undefined);\n updateFilters({\n minAmount: !isUndefined(minAmount) ? String(minAmount * AMOUNT_MULTIPLIER) : undefined,\n maxAmount: !isUndefined(maxAmount) ? String(maxAmount * AMOUNT_MULTIPLIER) : undefined,\n });\n },\n [updateFilters]\n );\n\n if (value && (value.minAmount || value.maxAmount)) {\n const { minAmount, maxAmount } = value ?? {};\n if (!isUndefined(minAmount) && !isUndefined(maxAmount) && minAmount <= maxAmount) {\n setValueFormattedValue(\n `${formatAmount(minAmount, showCurrencySymbol)} ${i18n.get('to').toLowerCase()} ${formatAmount(maxAmount, showCurrencySymbol)}`\n );\n } else if (!isUndefined(minAmount) && isUndefined(maxAmount) && minAmount >= 0) {\n setValueFormattedValue(`${i18n.get('from')} ${formatAmount(minAmount, showCurrencySymbol)}`);\n } else if (isUndefined(minAmount) && !isUndefined(maxAmount)) {\n setValueFormattedValue(`${i18n.get('to')} ${formatAmount(maxAmount, showCurrencySymbol)}`);\n } else {\n setValueFormattedValue(undefined);\n }\n }\n\n return (\n <BaseFilter<RangeFilterProps>\n {...props}\n updateFilters={updateFilters}\n minAmount={props.minAmount}\n maxAmount={props.maxAmount}\n onChange={onFilterChange}\n value={formattedValue}\n label={formattedValue ? formattedValue : props.label}\n type={'text'}\n containerSize={PopoverContainerSize.MEDIUM}\n selectedCurrencies={selectedCurrencies}\n availableCurrencies={availableCurrencies}\n render={RangeSelection}\n />\n );\n};\n","const _BASE_CLASS = 'adyen-pe-transactions';\n\nexport const BASE_CLASS = `${_BASE_CLASS}-overview`;\nexport const BASE_CLASS_DETAILS = `${_BASE_CLASS}-details`;\nexport const SUMMARY_CLASS = `${BASE_CLASS}__summary`;\nexport const SUMMARY_ITEM_CLASS = `${SUMMARY_CLASS}-item`;\n\nexport const MAX_TRANSACTIONS_DATE_RANGE_MONTHS = 24;\n","import { DataDetailsModal } from '../../../../internal/DataOverviewDisplay/DataDetailsModal';\nimport { TransactionsTable } from '../TransactionsTable/TransactionsTable';\nimport useBalanceAccountSelection from '../../../../hooks/useBalanceAccountSelection';\nimport BalanceAccountSelector from '../../../../internal/FormFields/Select/BalanceAccountSelector';\nimport { TypographyVariant } from '../../../../internal/Typography/types';\nimport Typography from '../../../../internal/Typography/Typography';\nimport DateFilter from '../../../../internal/FilterBar/filters/DateFilter/DateFilter';\nimport FilterBar from '../../../../internal/FilterBar';\nimport { TransactionOverviewComponentProps, ExternalUIComponentProps, FilterParam } from '../../../../types';\nimport useModalDetails from '../../../../../hooks/useModalDetails/useModalDetails';\nimport { useAuthContext } from '../../../../../core/Auth';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport { useCursorPaginatedRecords } from '../../../../internal/Pagination/hooks';\nimport { IBalanceAccountBase, ITransaction } from '../../../../../types';\nimport { isFunction, isUndefined, listFrom } from '../../../../../utils';\nimport { DEFAULT_PAGE_LIMIT, LIMIT_OPTIONS } from '../../../../internal/Pagination/constants';\nimport TransactionTotals from '../TransactionTotals/TransactionTotals';\nimport { Balances } from '../Balances/Balances';\nimport MultiSelectionFilter from '../MultiSelectionFilter';\nimport useDefaultOverviewFilterParams from '../../../../hooks/useDefaultOverviewFilterParams';\nimport useTransactionsOverviewMultiSelectionFilters from '../../hooks/useTransactionsOverviewMultiSelectionFilters';\nimport AdyenPlatformExperienceError from '../../../../../core/Errors/AdyenPlatformExperienceError';\nimport { AmountFilter } from '../../../../internal/FilterBar/filters/AmountFilter/AmountFilter';\nimport { BASE_CLASS, BASE_CLASS_DETAILS, MAX_TRANSACTIONS_DATE_RANGE_MONTHS, SUMMARY_CLASS, SUMMARY_ITEM_CLASS } from './constants';\nimport { mediaQueries, useResponsiveViewport } from '../../hooks/useResponsiveViewport';\nimport './TransactionsOverview.scss';\n\nexport const TransactionsOverview = ({\n onFiltersChanged,\n onLimitChanged,\n balanceAccounts,\n allowLimitSelection,\n preferredLimit = DEFAULT_PAGE_LIMIT,\n onRecordSelection,\n showDetails,\n isLoadingBalanceAccount,\n onContactSupport,\n hideTitle,\n}: ExternalUIComponentProps<\n TransactionOverviewComponentProps & { balanceAccounts: IBalanceAccountBase[] | undefined; isLoadingBalanceAccount: boolean }\n>) => {\n const { i18n } = useCoreContext();\n const { getTransactions: transactionsEndpointCall } = useAuthContext().endpoints;\n const { activeBalanceAccount, balanceAccountSelectionOptions, onBalanceAccountSelection } = useBalanceAccountSelection(balanceAccounts);\n const { defaultParams, nowTimestamp, refreshNowTimestamp } = useDefaultOverviewFilterParams('transactions', activeBalanceAccount);\n\n const getTransactions = useCallback(\n async ({ balanceAccount, ...pageRequestParams }: Record<FilterParam | 'cursor', string>, signal?: AbortSignal) => {\n const requestOptions = { signal, errorLevel: 'error' } as const;\n\n return transactionsEndpointCall!(requestOptions, {\n query: {\n ...pageRequestParams,\n statuses: listFrom<ITransaction['status']>(pageRequestParams[FilterParam.STATUSES]),\n categories: listFrom<ITransaction['category']>(pageRequestParams[FilterParam.CATEGORIES]),\n currencies: listFrom<ITransaction['amount']['currency']>(pageRequestParams[FilterParam.CURRENCIES]),\n createdSince:\n pageRequestParams[FilterParam.CREATED_SINCE] ?? defaultParams.current.defaultFilterParams[FilterParam.CREATED_SINCE],\n createdUntil:\n pageRequestParams[FilterParam.CREATED_UNTIL] ?? defaultParams.current.defaultFilterParams[FilterParam.CREATED_UNTIL],\n sortDirection: 'desc' as const,\n balanceAccountId: activeBalanceAccount?.id ?? '',\n minAmount: !isUndefined(pageRequestParams.minAmount) ? parseFloat(pageRequestParams.minAmount) : undefined,\n maxAmount: !isUndefined(pageRequestParams.maxAmount) ? parseFloat(pageRequestParams.maxAmount) : undefined,\n },\n });\n },\n [activeBalanceAccount?.id, defaultParams, transactionsEndpointCall]\n );\n\n // FILTERS\n const _onFiltersChanged = useMemo(() => (isFunction(onFiltersChanged) ? onFiltersChanged : void 0), [onFiltersChanged]);\n const _onLimitChanged = useMemo(() => (isFunction(onLimitChanged) ? onLimitChanged : void 0), [onLimitChanged]);\n const preferredLimitOptions = useMemo(() => (allowLimitSelection ? LIMIT_OPTIONS : undefined), [allowLimitSelection]);\n\n //TODO - Infer the return type of getTransactions instead of having to specify it\n const { canResetFilters, error, fetching, filters, limit, limitOptions, records, resetFilters, updateFilters, updateLimit, ...paginationProps } =\n useCursorPaginatedRecords<ITransaction, 'data', string, FilterParam>({\n fetchRecords: getTransactions,\n dataField: 'data',\n filterParams: defaultParams.current.defaultFilterParams,\n initialFiltersSameAsDefault: true,\n onLimitChanged: _onLimitChanged,\n onFiltersChanged: _onFiltersChanged,\n preferredLimit,\n preferredLimitOptions,\n enabled: !!activeBalanceAccount?.id && !!transactionsEndpointCall,\n });\n\n const [availableCurrencies, setAvailableCurrencies] = useState<ITransaction['amount']['currency'][] | undefined>([]);\n const [isAvailableCurrenciesFetching, setIsAvailableCurrenciesFetching] = useState(false);\n const handleCurrenciesChange = useCallback((currencies: ITransaction['amount']['currency'][] | undefined, isFetching: boolean) => {\n setAvailableCurrencies(currencies);\n setIsAvailableCurrenciesFetching(isFetching);\n }, []);\n const { categoriesFilter, currenciesFilter, statusesFilter } = useTransactionsOverviewMultiSelectionFilters(\n {\n filters,\n updateFilters,\n },\n availableCurrencies\n );\n\n useEffect(() => {\n setAvailableCurrencies(undefined);\n updateFilters({\n [FilterParam.BALANCE_ACCOUNT]: activeBalanceAccount?.id,\n [FilterParam.CURRENCIES]: undefined,\n });\n }, [updateFilters, activeBalanceAccount?.id]);\n\n useEffect(() => {\n refreshNowTimestamp();\n }, [filters, refreshNowTimestamp]);\n\n // Set status filter's value fixed as \"Booked\" temporarily\n useEffect(() => {\n statusesFilter.updateSelection({ target: { value: 'Booked', name: 'status' } });\n }, [statusesFilter]);\n\n const isNarrowViewport = useResponsiveViewport(mediaQueries.down.sm);\n\n const hasMultipleCurrencies = !!availableCurrencies && availableCurrencies.length > 1;\n\n const transactionDetails = useMemo(\n () => ({\n showDetails: showDetails ?? true,\n callback: onRecordSelection,\n }),\n [showDetails, onRecordSelection]\n );\n\n const modalOptions = useMemo(() => ({ transaction: transactionDetails }), [transactionDetails]);\n\n const { updateDetails, resetDetails, selectedDetail } = useModalDetails(modalOptions);\n\n const onRowClick = useCallback(\n (value: ITransaction) => {\n updateDetails({\n selection: { type: 'transaction', data: { ...value, balanceAccountDescription: activeBalanceAccount?.description } },\n modalSize: 'small',\n }).callback({ id: value.id });\n },\n [updateDetails, activeBalanceAccount]\n );\n\n const sinceDate = useMemo(() => {\n const date = new Date(nowTimestamp);\n date.setMonth(date.getMonth() - MAX_TRANSACTIONS_DATE_RANGE_MONTHS);\n return date.toString();\n }, [nowTimestamp]);\n\n return (\n <div className={BASE_CLASS}>\n {!hideTitle && (\n <Typography variant={TypographyVariant.TITLE} medium>\n {i18n.get('transactionsOverviewTitle')}\n </Typography>\n )}\n <FilterBar>\n <BalanceAccountSelector\n activeBalanceAccount={activeBalanceAccount}\n balanceAccountSelectionOptions={balanceAccountSelectionOptions}\n onBalanceAccountSelection={onBalanceAccountSelection}\n />\n <DateFilter\n canResetFilters={canResetFilters}\n defaultParams={defaultParams}\n filters={filters}\n nowTimestamp={nowTimestamp}\n refreshNowTimestamp={refreshNowTimestamp}\n sinceDate={sinceDate}\n updateFilters={updateFilters}\n />\n {/* Remove status filter temporarily */}\n {/* <MultiSelectionFilter {...statusesFilter} placeholder={i18n.get('filterPlaceholder.status')} /> */}\n <MultiSelectionFilter {...categoriesFilter} placeholder={i18n.get('filterPlaceholder.category')} />\n <AmountFilter\n availableCurrencies={availableCurrencies}\n selectedCurrencies={listFrom(filters[FilterParam.CURRENCIES])}\n name={'range'}\n label={i18n.get('amount')}\n minAmount={filters[FilterParam.MIN_AMOUNT]}\n maxAmount={filters[FilterParam.MAX_AMOUNT]}\n updateFilters={updateFilters}\n onChange={updateFilters}\n />\n <MultiSelectionFilter {...currenciesFilter} placeholder={i18n.get('filterPlaceholder.currency')} />\n </FilterBar>\n <div className={SUMMARY_CLASS}>\n <div className={SUMMARY_ITEM_CLASS}>\n <TransactionTotals\n availableCurrencies={availableCurrencies}\n isAvailableCurrenciesFetching={isAvailableCurrenciesFetching}\n balanceAccountId={activeBalanceAccount?.id}\n statuses={statusesFilter.selection}\n categories={categoriesFilter.selection}\n createdUntil={filters[FilterParam.CREATED_UNTIL]!}\n createdSince={filters[FilterParam.CREATED_SINCE]!}\n currencies={currenciesFilter.selection}\n minAmount={filters[FilterParam.MIN_AMOUNT] ? parseFloat(filters[FilterParam.MIN_AMOUNT]) : undefined}\n maxAmount={filters[FilterParam.MAX_AMOUNT] ? parseFloat(filters[FilterParam.MAX_AMOUNT]) : undefined}\n fullWidth={isNarrowViewport}\n />\n </div>\n <div className={SUMMARY_ITEM_CLASS}>\n <Balances\n balanceAccountId={activeBalanceAccount?.id}\n onCurrenciesChange={handleCurrenciesChange}\n defaultCurrencyCode={activeBalanceAccount?.defaultCurrencyCode}\n fullWidth={isNarrowViewport}\n />\n </div>\n </div>\n\n <DataDetailsModal\n selectedDetail={selectedDetail as ReturnType<typeof useModalDetails>['selectedDetail']}\n resetDetails={resetDetails}\n className={BASE_CLASS_DETAILS}\n >\n <TransactionsTable\n balanceAccounts={balanceAccounts}\n availableCurrencies={availableCurrencies}\n error={error as AdyenPlatformExperienceError}\n hasMultipleCurrencies={hasMultipleCurrencies}\n limit={limit}\n limitOptions={limitOptions}\n loading={fetching || isLoadingBalanceAccount || !balanceAccounts}\n onContactSupport={onContactSupport}\n onLimitSelection={updateLimit}\n onRowClick={onRowClick}\n showPagination={true}\n transactions={records}\n {...paginationProps}\n />\n </DataDetailsModal>\n </div>\n );\n};\n","export const BASE_CLASS = 'adyen-pe-transactions-overview-container';\n","import useBalanceAccounts from '../../../../hooks/useBalanceAccounts';\nimport DataOverviewContainer from '../../../../internal/DataOverviewContainer/DataOverviewContainer';\nimport type { TransactionOverviewComponentProps, ExternalUIComponentProps } from '../../../../types';\nimport { TransactionsOverview } from '../TransactionsOverview/TransactionsOverview';\nimport { BASE_CLASS } from './constants';\n\nfunction TransactionsOverviewContainer({ ...props }: ExternalUIComponentProps<TransactionOverviewComponentProps>) {\n const { balanceAccounts, isBalanceAccountIdWrong, isFetching, error } = useBalanceAccounts(props.balanceAccountId);\n\n return (\n <DataOverviewContainer\n balanceAccountsError={error}\n className={BASE_CLASS}\n errorMessage={'weCouldNotLoadTheTransactionsOverview'}\n isBalanceAccountIdWrong={isBalanceAccountIdWrong}\n onContactSupport={props.onContactSupport}\n >\n <TransactionsOverview {...props} balanceAccounts={balanceAccounts} isLoadingBalanceAccount={isFetching} />\n </DataOverviewContainer>\n );\n}\n\nexport default TransactionsOverviewContainer;\n","import { toChildArray } from 'preact';\nimport { useEffect, useMemo } from 'preact/hooks';\nimport { CoreContext } from './CoreContext';\nimport { CoreProviderProps } from './types';\nimport useBooleanState from '../../hooks/useBooleanState';\nimport Localization from '../Localization';\n\n/**\n * CoreProvider Component\n * Wraps a component delaying the render until after the i18n module is fully loaded\n */\nconst CoreProvider = ({\n i18n = new Localization().i18n,\n children,\n commonProps: _commonProps,\n loadingContext: _loadingContext,\n updateCore,\n}: CoreProviderProps) => {\n const [ready, setReady] = useBooleanState(false);\n const commonProps = useMemo(() => _commonProps || {}, [_commonProps]);\n const loadingContext = useMemo(() => _loadingContext ?? '', [_loadingContext]);\n\n useEffect(() => {\n (async () => {\n await i18n?.ready;\n setReady(true);\n })().catch();\n }, []);\n\n if (!ready) return null;\n\n return <CoreContext.Provider value={{ i18n, commonProps, loadingContext, updateCore }}>{toChildArray(children)}</CoreContext.Provider>;\n};\n\nexport default CoreProvider;\n","import { ComponentChild, render } from 'preact';\nimport { BaseElementProps, BaseElementState } from '../types';\nimport { isString, uuid } from '../../utils';\n\nclass BaseElement<P> {\n public static type: string;\n\n public _component: ComponentChild | Error;\n public _node: Document | ShadowRoot | DocumentFragment | Element | null = null;\n public readonly _id = `${(this.constructor as typeof BaseElement)?.type}-${uuid()}`;\n\n public defaultProps = {};\n public props: P & BaseElementProps;\n public state: BaseElementState = {};\n\n protected constructor(props: P & BaseElementProps) {\n this.props = this.formatProps({ ...this?.defaultProps, ...props });\n this.props.core.registerComponent(this);\n }\n\n /**\n * Executed during creation of any element.\n * Gives a chance to any component to format the props we're receiving.\n */\n protected formatProps(props: P & BaseElementProps): any {\n return props;\n }\n\n /**\n * Executed on the `data` getter.\n * Returns the component data necessary for making a request\n */\n protected formatData() {\n return {};\n }\n\n protected setState(newState: object): void {\n this.state = { ...this.state, ...newState };\n }\n\n /**\n * Returns the component data ready to submit to the Checkout API\n * Note: this does not ensure validity, check isValid first\n */\n get data(): any {\n return {\n ...this.formatData(),\n clientStateDataIndicator: true,\n };\n }\n\n public render(): ComponentChild | Error {\n // render() not implemented in the element\n throw new Error('Component cannot be rendered.');\n }\n\n /**\n * Mounts an element into the dom\n * @param domNode - Node (or selector) where we will mount the element\n * @returns this - the element instance we mounted\n */\n public mount(domNode: string): this;\n public mount(domNode: HTMLElement): this;\n public mount(domNode: any): any {\n const node = isString(domNode) ? document.querySelector(domNode) : domNode;\n\n if (!node) throw new Error('Component could not mount. Root node was not found.');\n\n // new, if this._node exists then we are \"remounting\" so we first need to unmount if it's not already been done\n if (this._node) this.unmount();\n\n this._node = node;\n this._component = this.render();\n\n render(this._component, node);\n return this;\n }\n\n /**\n * Updates props, resets the internal state and remounts the element.\n * @param props - props to update\n * @returns this - the element instance\n */\n public update(props: P): this {\n /*\n // OLD\n this.props = this.formatProps({ ...this.props, ...props });\n this.state = {};\n\n return this.unmount().mount(this._node); // for new mount fny\n */\n\n // /*\n this.props = this.formatProps({ ...this.props, ...props });\n this._component = this.render();\n\n if (this._node) render(this._component, this._node);\n return this;\n\n // return this.remount(this._component);\n // */\n }\n\n /**\n * Unmounts an element and mounts it again on the same node i.e. allows mount w/o having to pass a node.\n * Should be \"private\" & undocumented (although being a public function is useful for testing).\n * Left in for legacy reasons\n */\n public remount(component: BaseElement<any>): this {\n if (!this._node) throw new Error('Component is not mounted.');\n\n const newComponent = component || this.render();\n render(newComponent, this._node);\n return this;\n }\n\n /**\n * Unmounts an element from the DOM\n */\n public unmount(): this {\n if (this._node) render(null, this._node);\n return this;\n }\n\n /**\n * Unmounts an element and removes it from the parent instance\n * For \"destroy\" type cleanup - when you don't intend to use the component again\n */\n public remove() {\n this.unmount();\n this.props.core.remove(this);\n }\n}\n\nexport default BaseElement;\n","import { AuthProvider } from '../../../core/Auth';\nimport CoreProvider from '../../../core/Context/CoreProvider';\nimport { JSXInternal } from 'preact/src/jsx';\nimport BaseElement from '../BaseElement';\nimport { BaseElementProps, IUIElement, UIElementProps, UIElementStatus } from '../../types';\nimport './UIElement.scss';\n\nexport class UIElement<P> extends BaseElement<P & UIElementProps> implements IUIElement {\n protected componentRef: UIElement<P> | null = null;\n\n public componentToRender: (() => JSXInternal.Element) | null = null;\n public elementRef: UIElement<P> | null;\n public onContactSupport?: () => void;\n\n constructor(props: P & UIElementProps & BaseElementProps) {\n super(props);\n this.setState = this.setState.bind(this);\n this.onContactSupport = props.onContactSupport;\n this.elementRef = (this.props && this.props.elementRef) || this;\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Get the element's displayable name\n */\n get displayName(): string {\n return this.props.name || this.type;\n }\n\n /**\n * Get the element accessible name, used in the aria-label of the button that controls selected component\n */\n get accessibleName(): string {\n return this.displayName;\n }\n\n /**\n * Return the type of an element\n */\n get type(): string {\n return (this.constructor as typeof UIElement)?.type;\n }\n\n formatProps(props: P) {\n return props;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n return {\n ...this.state,\n };\n }\n\n public setState(newState: Record<any, any>): void {\n this.state = { ...this.state, ...newState };\n }\n\n private setUIElementStatus: ((status: string) => void) | undefined;\n\n public setStatus(status: UIElementStatus, props: P & UIElementProps): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status, props);\n } else {\n this.setUIElementStatus?.(status);\n }\n return this;\n }\n\n render() {\n const core = this.props.core;\n const updateCore = core.update.bind(core);\n\n return (\n <AuthProvider session={core.session} key={performance.now()}>\n <CoreProvider i18n={core.localization.i18n} loadingContext={core.loadingContext} updateCore={updateCore}>\n {this.componentToRender && <div className=\"adyen-pe-component\">{this.componentToRender()}</div>}\n </CoreProvider>\n </AuthProvider>\n );\n }\n}\n\nexport default UIElement;\n","import { _UIComponentProps, TransactionOverviewComponentProps } from '../../types';\nimport Transactions from './components/TransactionsOverviewContainer/TransactionsOverviewContainer';\nimport UIElement from '../UIElement/UIElement';\n\nexport class TransactionsElement extends UIElement<TransactionOverviewComponentProps> {\n public static type = 'transactions';\n\n constructor(props: _UIComponentProps<TransactionOverviewComponentProps>) {\n super(props);\n this.elementRef = (props && props.elementRef) || this;\n this.componentToRender = this.componentToRender.bind(this);\n }\n\n public componentToRender = () => {\n return (\n <Transactions\n {...this.props}\n balanceAccountId={this.props.core.options.balanceAccountId}\n ref={(ref: UIElement<TransactionOverviewComponentProps>) => {\n this.componentRef = ref;\n }}\n elementRef={this.elementRef}\n ></Transactions>\n );\n };\n}\n\nexport default TransactionsElement;\n","import { _UIComponentProps } from '../../types';\nimport UIElement from '../UIElement/UIElement';\nimport DataOverviewDetails from '../../internal/DataOverviewDetails/DataOverviewDetails';\nimport { DetailsComponentProps } from './types';\n\nexport class TransactionsElement extends UIElement<DetailsComponentProps> {\n public static type = 'transactionsDetails';\n\n constructor(props: _UIComponentProps<DetailsComponentProps>) {\n super(props);\n this.elementRef = (props && props.elementRef) || this;\n this.componentToRender = this.componentToRender.bind(this);\n }\n\n public componentToRender = () => {\n return <DataOverviewDetails {...(this.props as DetailsComponentProps)} type={'transaction'} />;\n };\n}\n\nexport default TransactionsElement;\n","export const BASE_CLASS = 'adyen-pe-payouts-overview';\nexport const BASE_CLASS_DETAILS = 'adyen-pe-payouts-details';\nexport const EARLIEST_PAYOUT_SINCE_DATE = new Date('2024-04-16T00:00:00.000Z').toString();\n","export const BASE_CLASS = 'adyen-pe-payouts-table';\nexport const NET_PAYOUT_CLASS = `${BASE_CLASS}__net-payout`;\n","import DataOverviewError from '../../../../internal/DataOverviewError/DataOverviewError';\nimport { BASE_CLASS, NET_PAYOUT_CLASS } from './constants';\nimport { PaginationProps, WithPaginationLimitSelection } from '../../../../internal/Pagination/types';\nimport { getLabel } from '../../../../utils/getLabel';\nimport { useAuthContext } from '../../../../../core/Auth';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport AdyenPlatformExperienceError from '../../../../../core/Errors/AdyenPlatformExperienceError';\nimport { getCurrencyCode } from '../../../../../core/Localization/amount/amount-util';\nimport { IBalanceAccountBase, IPayout } from '../../../../../types';\nimport { useMemo } from 'preact/hooks';\nimport DataGrid from '../../../../internal/DataGrid';\nimport Pagination from '../../../../internal/Pagination';\nimport { TranslationKey } from '../../../../../core/Localization/types';\nimport { FC } from 'preact/compat';\nimport { mediaQueries, useResponsiveViewport } from '../../../TransactionsOverview/hooks/useResponsiveViewport';\nimport { CellTextPosition } from '../../../../internal/DataGrid/types';\nimport cx from 'classnames';\nimport './PayoutsTable.scss';\n\nconst AMOUNT_FIELDS = ['fundsCapturedAmount', 'adjustmentAmount', 'payoutAmount'] as const;\nconst FIELDS = ['createdAt', ...AMOUNT_FIELDS] as const;\n\nconst _isAmountFieldKey = (key: (typeof FIELDS)[number]): key is (typeof AMOUNT_FIELDS)[number] => {\n return AMOUNT_FIELDS.includes(key as (typeof AMOUNT_FIELDS)[number]);\n};\n\nexport interface PayoutsTableProps extends WithPaginationLimitSelection<PaginationProps> {\n balanceAccounts: IBalanceAccountBase[] | undefined;\n loading: boolean;\n error?: AdyenPlatformExperienceError;\n onContactSupport?: () => void;\n onRowClick: (value: any) => void;\n showDetails?: boolean;\n showPagination: boolean;\n data: IPayout[] | undefined;\n}\n\nexport const PayoutsTable: FC<PayoutsTableProps> = ({\n error,\n loading,\n onContactSupport,\n onRowClick,\n showDetails,\n showPagination,\n data,\n ...paginationProps\n}) => {\n const { i18n } = useCoreContext();\n const { refreshing } = useAuthContext();\n const isLoading = useMemo(() => loading || refreshing, [loading, refreshing]);\n const isSmAndUpViewport = useResponsiveViewport(mediaQueries.up.sm);\n const fieldsVisibility: Partial<Record<(typeof FIELDS)[number], boolean>> = useMemo(\n () => ({\n fundsCapturedAmount: isSmAndUpViewport,\n adjustmentAmount: isSmAndUpViewport,\n }),\n [isSmAndUpViewport]\n );\n\n const columns = useMemo(\n () =>\n FIELDS.map(key => {\n const label = i18n.get(getLabel(key));\n if (_isAmountFieldKey(key)) {\n return {\n key,\n label: data?.[0]?.[key]?.currency ? `${label} (${getCurrencyCode(data?.[0]?.[key]?.currency)})` : label,\n visible: fieldsVisibility[key],\n position: CellTextPosition.RIGHT,\n };\n }\n\n return { key, label, visible: fieldsVisibility[key] };\n }),\n [i18n, fieldsVisibility, data]\n );\n\n const EMPTY_TABLE_MESSAGE = {\n title: 'noPayoutsFound',\n message: ['tryDifferentSearchOrResetYourFiltersAndWeWillTryAgain'],\n } satisfies { title: TranslationKey; message: TranslationKey | TranslationKey[] };\n\n const errorDisplay = useMemo(\n () => () => <DataOverviewError error={error} errorMessage={'weCouldNotLoadYourPayouts'} onContactSupport={onContactSupport} />,\n [error, onContactSupport]\n );\n\n return (\n <div className={BASE_CLASS}>\n <DataGrid\n errorDisplay={errorDisplay}\n error={error}\n columns={columns}\n data={data}\n loading={isLoading}\n outline={false}\n onRowClick={{ callback: onRowClick }}\n emptyTableMessage={EMPTY_TABLE_MESSAGE}\n customCells={{\n createdAt: ({ value }) => {\n if (!value) return null;\n if (!isSmAndUpViewport)\n return i18n.date(value, {\n month: 'short',\n day: 'numeric',\n year: undefined,\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n return value && i18n.fullDate(value);\n },\n fundsCapturedAmount: ({ value }) => {\n return value && <span>{i18n.amount(value.value, value.currency, { hideCurrency: true })}</span>;\n },\n adjustmentAmount: ({ value }) => {\n return value && <span>{i18n.amount(value.value, value.currency, { hideCurrency: true })}</span>;\n },\n payoutAmount: ({ value }) => {\n return (\n value && (\n <span className={cx({ [`${NET_PAYOUT_CLASS}--strong`]: !isSmAndUpViewport })}>\n {i18n.amount(value.value, value.currency, { hideCurrency: isSmAndUpViewport })}\n </span>\n )\n );\n },\n }}\n >\n {showPagination && (\n <DataGrid.Footer>\n <Pagination {...paginationProps} />\n </DataGrid.Footer>\n )}\n </DataGrid>\n </div>\n );\n};\n","import { BASE_CLASS, BASE_CLASS_DETAILS, EARLIEST_PAYOUT_SINCE_DATE } from './constants';\nimport { PayoutsTable } from '../PayoutsTable/PayoutsTable';\nimport FilterBar from '../../../../internal/FilterBar';\nimport BalanceAccountSelector from '../../../../internal/FormFields/Select/BalanceAccountSelector';\nimport { DEFAULT_PAGE_LIMIT, LIMIT_OPTIONS } from '../../../../internal/Pagination/constants';\nimport { useCursorPaginatedRecords } from '../../../../internal/Pagination/hooks';\nimport { TypographyVariant } from '../../../../internal/Typography/types';\nimport Typography from '../../../../internal/Typography/Typography';\nimport useBalanceAccountSelection from '../../../../hooks/useBalanceAccountSelection';\nimport DateFilter from '../../../../internal/FilterBar/filters/DateFilter/DateFilter';\nimport useModalDetails from '../../../../../hooks/useModalDetails/useModalDetails';\nimport { IPayout } from '../../../../../types';\nimport useDefaultOverviewFilterParams from '../../../../hooks/useDefaultOverviewFilterParams';\nimport { PayoutsOverviewComponentProps, ExternalUIComponentProps, FilterParam } from '../../../../types';\nimport { useAuthContext } from '../../../../../core/Auth';\nimport useCoreContext from '../../../../../core/Context/useCoreContext';\nimport AdyenPlatformExperienceError from '../../../../../core/Errors/AdyenPlatformExperienceError';\nimport { IBalanceAccountBase } from '../../../../../types';\nimport { isFunction } from '../../../../../utils';\nimport { useCallback, useEffect, useMemo } from 'preact/hooks';\nimport { DataDetailsModal } from '../../../../internal/DataOverviewDisplay/DataDetailsModal';\nimport './PayoutsOverview.scss';\n\nexport const PayoutsOverview = ({\n onFiltersChanged,\n onLimitChanged,\n balanceAccounts,\n allowLimitSelection,\n preferredLimit = DEFAULT_PAGE_LIMIT,\n onRecordSelection,\n showDetails,\n isLoadingBalanceAccount,\n onContactSupport,\n hideTitle,\n}: ExternalUIComponentProps<\n PayoutsOverviewComponentProps & { balanceAccounts: IBalanceAccountBase[] | undefined; isLoadingBalanceAccount: boolean }\n>) => {\n const { i18n } = useCoreContext();\n const { getPayouts: payoutsEndpointCall } = useAuthContext().endpoints;\n const { activeBalanceAccount, balanceAccountSelectionOptions, onBalanceAccountSelection } = useBalanceAccountSelection(balanceAccounts);\n const { defaultParams, nowTimestamp, refreshNowTimestamp } = useDefaultOverviewFilterParams('payouts', activeBalanceAccount);\n\n const getPayouts = useCallback(\n async (pageRequestParams: Record<FilterParam | 'cursor', string>, signal?: AbortSignal) => {\n const requestOptions = { signal, errorLevel: 'error' } as const;\n\n return payoutsEndpointCall!(requestOptions, {\n query: {\n ...pageRequestParams,\n createdSince:\n pageRequestParams[FilterParam.CREATED_SINCE] ?? defaultParams.current.defaultFilterParams[FilterParam.CREATED_SINCE],\n createdUntil:\n pageRequestParams[FilterParam.CREATED_UNTIL] ?? defaultParams.current.defaultFilterParams[FilterParam.CREATED_UNTIL],\n balanceAccountId: activeBalanceAccount?.id ?? '',\n },\n });\n },\n [activeBalanceAccount?.id, defaultParams, payoutsEndpointCall]\n );\n\n // FILTERS\n const _onFiltersChanged = useMemo(() => (isFunction(onFiltersChanged) ? onFiltersChanged : void 0), [onFiltersChanged]);\n const _onLimitChanged = useMemo(() => (isFunction(onLimitChanged) ? onLimitChanged : void 0), [onLimitChanged]);\n const preferredLimitOptions = useMemo(() => (allowLimitSelection ? LIMIT_OPTIONS : undefined), [allowLimitSelection]);\n\n const { canResetFilters, error, fetching, filters, limit, limitOptions, records, resetFilters, updateFilters, updateLimit, ...paginationProps } =\n useCursorPaginatedRecords<IPayout, 'data', string, FilterParam>({\n fetchRecords: getPayouts,\n dataField: 'data',\n filterParams: defaultParams.current.defaultFilterParams,\n initialFiltersSameAsDefault: true,\n onLimitChanged: _onLimitChanged,\n onFiltersChanged: _onFiltersChanged,\n preferredLimit,\n preferredLimitOptions,\n enabled: !!activeBalanceAccount?.id && !!payoutsEndpointCall,\n });\n\n useEffect(() => {\n refreshNowTimestamp();\n }, [filters, refreshNowTimestamp]);\n\n const payoutDetails = useMemo(\n () => ({\n showDetails: showDetails ?? true,\n callback: onRecordSelection,\n }),\n [showDetails, onRecordSelection]\n );\n\n const modalOptions = useMemo(() => ({ payout: payoutDetails }), [payoutDetails]);\n\n const { updateDetails, resetDetails, selectedDetail } = useModalDetails(modalOptions);\n\n const onRowClick = useCallback(\n (value: IPayout) => {\n updateDetails({\n selection: { type: 'payout', data: { id: activeBalanceAccount?.id, date: value.createdAt } },\n modalSize: 'small',\n }).callback({ balanceAccountId: activeBalanceAccount?.id || '', date: value.createdAt });\n },\n [updateDetails, activeBalanceAccount]\n );\n\n return (\n <div className={BASE_CLASS}>\n {!hideTitle && (\n <Typography variant={TypographyVariant.TITLE} medium>\n {i18n.get('payoutsTitle')}\n </Typography>\n )}\n <FilterBar>\n <BalanceAccountSelector\n activeBalanceAccount={activeBalanceAccount}\n balanceAccountSelectionOptions={balanceAccountSelectionOptions}\n onBalanceAccountSelection={onBalanceAccountSelection}\n />\n <DateFilter\n canResetFilters={canResetFilters}\n defaultParams={defaultParams}\n filters={filters}\n nowTimestamp={nowTimestamp}\n refreshNowTimestamp={refreshNowTimestamp}\n sinceDate={EARLIEST_PAYOUT_SINCE_DATE}\n timezone={'UTC'}\n updateFilters={updateFilters}\n />\n </FilterBar>\n <DataDetailsModal\n className={BASE_CLASS_DETAILS}\n onContactSupport={onContactSupport}\n selectedDetail={selectedDetail as ReturnType<typeof useModalDetails>['selectedDetail']}\n resetDetails={resetDetails}\n >\n <PayoutsTable\n balanceAccounts={balanceAccounts}\n loading={fetching || isLoadingBalanceAccount || !balanceAccounts}\n data={records}\n showPagination={true}\n onRowClick={onRowClick}\n showDetails={showDetails}\n limit={limit}\n limitOptions={limitOptions}\n onContactSupport={onContactSupport}\n onLimitSelection={updateLimit}\n error={error as AdyenPlatformExperienceError}\n {...paginationProps}\n />\n </DataDetailsModal>\n </div>\n );\n};\n","export const BASE_CLASS = 'adyen-pe-payouts-overview-container';\n","import useBalanceAccounts from '../../../../hooks/useBalanceAccounts';\nimport DataOverviewContainer from '../../../../internal/DataOverviewContainer/DataOverviewContainer';\nimport type { PayoutsOverviewComponentProps, ExternalUIComponentProps } from '../../../../types';\nimport { PayoutsOverview } from '../PayoutsOverview/PayoutsOverview';\nimport { BASE_CLASS } from './constants';\n\nfunction PayoutsOverviewContainer({ ...props }: ExternalUIComponentProps<PayoutsOverviewComponentProps>) {\n const { balanceAccounts, isBalanceAccountIdWrong, isFetching, error } = useBalanceAccounts(props.balanceAccountId);\n\n return (\n <DataOverviewContainer\n balanceAccountsError={error}\n className={BASE_CLASS}\n errorMessage={'weCouldNotLoadThePayoutsOverview'}\n isBalanceAccountIdWrong={isBalanceAccountIdWrong}\n onContactSupport={props.onContactSupport}\n >\n <PayoutsOverview {...props} balanceAccounts={balanceAccounts} isLoadingBalanceAccount={isFetching} />\n </DataOverviewContainer>\n );\n}\nexport default PayoutsOverviewContainer;\n","import { _UIComponentProps, PayoutsOverviewComponentProps } from '../../types';\nimport Payouts from './components/PayoutsOverviewContainer/PayoutsOverviewContainer';\nimport UIElement from '../UIElement/UIElement';\n\nexport class PayoutsElement extends UIElement<PayoutsOverviewComponentProps> {\n public static type = 'payouts';\n\n constructor(props: _UIComponentProps<PayoutsOverviewComponentProps>) {\n super(props);\n this.elementRef = (props && props.elementRef) || this;\n this.componentToRender = this.componentToRender.bind(this);\n }\n\n public componentToRender = () => {\n return (\n <Payouts\n {...this.props}\n balanceAccountId={this.props.core.options.balanceAccountId}\n ref={(ref: UIElement<PayoutsOverviewComponentProps>) => {\n this.componentRef = ref;\n }}\n elementRef={this.elementRef}\n />\n );\n };\n}\n\nexport default PayoutsElement;\n","import { PayoutDetailsWithIdProps } from '../../internal/DataOverviewDetails/types';\nimport { _UIComponentProps } from '../../types';\nimport UIElement from '../UIElement/UIElement';\nimport DataOverviewDetails from '../../internal/DataOverviewDetails/DataOverviewDetails';\n\nexport class PayoutElement extends UIElement<PayoutDetailsWithIdProps> {\n public static type = 'payoutDetails';\n\n constructor(props: _UIComponentProps<PayoutDetailsWithIdProps>) {\n super(props);\n this.elementRef = (props && props.elementRef) || this;\n this.componentToRender = this.componentToRender.bind(this);\n }\n\n public componentToRender = () => {\n return <DataOverviewDetails {...this.props} type={'payout'} />;\n };\n}\n\nexport default PayoutElement;\n","import { Core, CoreOptions } from './core';\nimport type { LangFile } from './core/Localization/types';\nimport './components/shared.scss';\nimport './style/index.scss';\n\nexport * from './core';\nexport * from './components';\nexport * from './types';\n\nexport async function AdyenPlatformExperience<AvailableTranslations extends LangFile[] = [], CustomTranslations extends {} = {}>(\n props: CoreOptions<AvailableTranslations, CustomTranslations>\n) {\n const core = new Core(props);\n return await core.initialize();\n}\n"],"names":["FALLBACK_ENV","normalizeLoadingContext","loadingContext","_a","normalizeUrl","url","resolveEnvironment","envs","env","EMPTY_ARRAY","EMPTY_OBJECT","ALREADY_RESOLVED_PROMISE","tryResolve","fn","args","resolve","constant","value","asyncNoop","identity","noop","_toString","toStringTag","isBoolean","isFunction","isNull","isNullish","isNumber","isPlainObject","isString","isSymbol","isUndefined","getMappedValue","key","map","factory","listFrom","fallbackList","stringedValue","stringedList","pickFrom","list","option","defaultOption","some","_uniqueFlatten","reversed","items","uniqueItems","item","parseDate","timestamp","uniqueId","counter","prefix","uuid","_UUID_V4_FILLER_STRING","xy","randomNibble","boolify","fallbackBoolean","boolOrFalse","boolOrTrue","falsify","_","truthify","asPlainObject","fallback","structFrom","struct","withFreezeProxyHandlers","handler","enumerable","writable","getter","get","hasOwnProperty","sameValue","a","b","clamp","min","max","isBitSafeInteger","isInfinity","mid","low","high","mod","modulo","capitalize","str","isEmptyString","ERR_AUTH_REFRESH_ABORTED","ERR_AUTH_REFRESH_FAILED","EVT_AUTH_STATE_CHANGE","SETUP_ENDPOINT_PATH","AUTO_REFRESH","MAX_AGE_MS","maxAgeMs","AdyenPlatformExperienceError","type","requestId","message","errorCode","__publicField","AdyenPlatformExperienceError$1","ErrorTypes","getErrorType","getRequestObject","options","data","headers","method","handleFetchError","level","isAdyenErrorResponse","parseSearchParams","parameters","params","param","AuthSetupContext","_session","refreshAbortablePromise","endpoints","signal","availableEndpoints","sessionAwareEndpoints","target","endpoint","receiver","httpOptions","path","request","requestParams","pathParams","searchParams","pathParamKey","AuthSetupContext$1","DEFAULT_INTERVAL_MS","MAX_INTERVAL_MS","createInterval","callback","ms","runCallbackAsap","_abortController","_intervalDelay","_shouldRunCallbackAsap","_startTime","_cancel","_frame","time","_scheduleFrame","delay","elapsed","roundedElapsed","createWatchListCurrentStateRecord","entries","statePropertyDescriptors","entriesPropertyDescriptors","createWatchListSubscriptionEventCallbacks","callbacks","descriptors","UNSUBSCRIBE_TOKEN","isWatchlistUnsubscribeToken","currentStateSnapshotOrUnsubscribeToken","createWatchlist","lastStateSnapshot","currentState","subscriptionEventCallbacks","subscriptionCallbacksWithReferenceCounting","unsubscribeCallbacks","_getCurrentStateSnapshot","_isWithoutSubscriptionCallbacks","_notifySubscriptions","unsubscribeToken","subscriptionCallbacks","referenceCount","unsubscribeCallback","currentStateSnapshot","subscribe","subscriptionCallback","unsubscribe","subscriptionCallbackReferenceCount","willResumeSubscriptions","clock","interval","cancelSubscriptions","requestNotification","on","clock$1","createAbortable","abortReason","_abortSignal","_abortPromise","_abort","_getAbortPromise","reject","_refreshIfNecessary","abortable","createDeferred","_promise","_reject","_resolve","_refresh","previousResolve","currentPromise","deferred","reason","createPromisor","_abortable","_deferred","resolveDeferred","ex","createEventEmitter","_eventTarget","_emitEvent","restArgs","detail","event","_onEvent","listener","_listener","evt","ERR_SESSION_EXPIRED","ERR_SESSION_FACTORY_UNAVAILABLE","ERR_SESSION_HTTP_UNAVAILABLE","ERR_SESSION_REFRESH_ABORTED","ERR_SESSION_INVALID","EVT_SESSION_EXPIRED_STATE_CHANGE","EVT_SESSION_REFRESHING_STATE_CHANGE","SessionContext","_specification","session","err","_b","canRefresh","_autoRefresh","skipCanRefreshCheck","nextSession","refreshImmediately","_c","unsubscribeClock","snapshotOrSignal","ABORT_EVENT","isAbortSignal","createAbortSink","sourceSignals","_sourceSignals","abort","disconnect","_cleanupSignals","unlink","maybeSignal","setup","filter","API_VERSION","http","errorLevel","decodedValue","errorPassThrough","error","res","response","AuthSessionSpecification","onSessionCreate","maybeSession","id","token","issuedAt","expiresAt","issuedAtDate","sessionSignal","destroyAbortSink","sessionHttpOptions","_http","AuthSessionSpecification$1","_NO_ERR","_assertError","createErrorContainer","_error","_resetError","_setError","AuthSession","_onAuthStateChanged","_onSessionExpiredStateChange","listeners","cancel","skipSessionRefresh","_setupRefreshAborted","getPromise","awaitablePromise","awaited","CURRENCY_CODES","CURRENCY_CODES$1","CURRENCY_DECIMALS","CURRENCY_DECIMALS$1","getDivider","currencyCode","isValidCurrencyCode","getCurrencyCode","getDecimalAmount","amount","divider","getLocalisedAmount","locale","hideCurrency","stringAmount","decimalAmount","formatterLocale","formatterOptions","formatAmountWithoutCurrency","p","FALLBACK_LOCALE","LOCALE_FORMAT_REGEX","defaultTranslation","defaultLocaleTranslation","SUPPORTED_LOCALES","DEFAULT_DATETIME_FORMAT","DEFAULT_LOCALES","EXCLUDE_PROPS","REGEX_TZ_OFFSET","BASE_FORMAT_OPTIONS","BASE_LOCALE","SYSTEM_TIMEZONE","SYSTEM_TIMEZONE_FORMATTER","DIGITS_2","NUMERIC","REGEX_GMT_OFFSET_UNWANTED_SUBSTRINGS","REGEX_TZ_SINGLE_DIGIT_OFFSET","computeTimezoneOffsetInMinutes","offsetHours","offsetMinutes","computeTimezoneOffsetsFromMinutes","timezoneOffsetInMinutes","parseTimezoneOffset","offset","getGMTSuffixForTimezoneOffset","timezoneOffset","getTimezoneOffsetFromFormattedDateString","date","offsets","getTimezoneOffsetForTimestamp","timezoneFormatter","systemOffset","restamp","restamper","direction","systemToTimezone","timezoneToSystem","getTimeZone","setTimeZone","timeZone","nextFormatter","nextTimeZone","formatter","context","set","tz","$restamper","da_DK","_da_DK","de_DE","_de_DE","en_US","_en_US","es_ES","_es_ES","fr_FR","_fr_FR","it_IT","_it_IT","nl_NL","_nl_NL","no_NO","_no_NO","pt_BR","_pt_BR","sv_SE","_sv_SE","all_locales","DEFAULT_TRANSLATION_OPTIONS","FALLBACK_TRANSLATIONS_FILES","toTwoLetterCode","matchLocale","supportedLocales","twoLetterCode","supportedLocale","formatLocale","localeString","languageCode","countryCode","fullLocale","parseLocale","trimmedLocale","formattedLocale","formatCustomTranslations","customTranslations","translations","replaceTranslationValues","translation","values","k","getTranslation","count","countKey","pluralKey","loadTranslations","translationFiles","localeToLoad","loadedLocale","createTranslationsLoader","_locale","_preferredLocale","_supportedLocales","getLocalizationProxyDescriptors","prop","descriptor","Localization","translationsFiles","__privateAdd","_refreshTranslations","_languageCode","__privateGet","_customTranslations","_translations","_translationsLoader","_ready","_currentRefresh","_markRefreshAsDone","_refreshWatchlist","_restamp","prev","curr","localesFromCustomTranslations","index","locales","__privateMethod","refreshTranslations_fn","timezone","restOfOptions","localisedAmount","dateOptions","month","day","year","__privateSet","currentRefreshDone","currentRefresh","Core","component","c","Core$1","n","l","u","t","i","o","r","f","e","s","h","v","y","d","g","w","x","C","P","S","O","j","$","I","N","H","A","q","T","F","L","M","m","B","z","D","G","J","AuthContext","createContext","AuthProvider","children","setContextCounter","useState","unsubscribeCounter","setUnsubscribeCounter","useEffect","maybeContext","jsx","toChildArray","useAuthContext","useContext","useFetch","fetchOptions","queryFn","useRef","cancelRequest","initialState","fetchReducer","state","action","dispatch","useReducer","fetchData","useCallback","useBalanceAccounts","balanceAccountId","balanceAccountEndpointCall","isFetching","useMemo","balanceAccounts","account","isBalanceAccountIdWrong","useBalanceAccounts$1","WITH_ERROR_CLASS","DEFAULT_TYPOGRAPHY_CLASSNAME","TypographyVariant","TypographyModifier","TypographyElement","E","R","V","W","Z","Y","K","Q","X","tn","en","rn","un","Typography","el","className","stronger","strongest","variant","medium","large","wide","Tag","conditionalClasses","cx","memo","CoreContext","useCoreContext","useCoreContext$1","noResults","fixedForwardRef","render","forwardRef","memoComparator","_comparedProps","_propHasChanged","next","getters","EXCESS_WHITESPACE_CHAR","parseClassName","fallbackClassName","getClassName","requiredClassName","classnames","getModifierClasses","modifiers","baseClasses","parseBooleanProp","useButton","classNameModifiers","defaultClassName","disabled","onClick","click","useButton$1","DEFAULT_BUTTON_CLASSNAME","BUTTON_ACTION_CLASSNAME","ICON_BUTTON_CLASSNAME","ICON_BUTTON_CONTENT_CLASSNAME","BUTTON_ACTION_CONTAINER_CLASSNAME","BUTTON_LABEL_CLASSNAME","BUTTON_ICON_RIGHT_CLASSNAME","BUTTON_ICON_LEFT_CLASSNAME","ButtonVariant","Button","iconLeft","iconRight","iconButton","restAttributes","ref","classNameValue","disabledValue","classes","jsxs","Fragment","Button$1","IMAGE_BREAKPOINT_SIZES","ErrorMessageDisplay","title","imageDesktop","imageMobile","withImage","centered","refreshComponent","onContactSupport","translationValues","i18n","updateCore","renderMessage","errorMessage","UNDEFINED_ERROR","getCommonErrorMessage","BREAKPOINTS","useMediaQuery","query","matches","setMatches","handleChange","mediaQueries","useResponsiveViewport","ButtonActionsLayoutBasic","ButtonActionsLayoutExtended","ButtonActionsLayout","ButtonActions","actions","layout","generateButtonVariantByIndex","actionIndex","lastActionIndex","reversedActions","button","DEFAULT_POPOVER_CLASSNAME","DEFAULT_TOOLTIP_CLASSNAME","POPOVER_CONTAINER_CLASSNAME","POPOVER_HEADER_CLASSNAME","POPOVER_HEADER_TITLE_CLASSNAME","POPOVER_CONTENT_CLASSNAME","TOOLTIP_CONTENT_CLASSNAME","POPOVER_FOOTER_CLASSNAME","PopoverDismissButton","image","PopoverTitle","isImageTitle","PopoverContainerVariant","PopoverContainerPosition","PopoverContainerSize","InteractionKeyCode","FilterParam","popoverUtil","popoverRefs","closePopoversOutsideOfClick","eventPath","pathMatchIndex","popoverRef","popoverRefId","pathId","closeNestedPopovers","remove","currentRef","refs","add","fromIndex","popoverLength","REF","ReflexError","UnknownRefError","MissingReflexActionError","assertReflexAction","isReflex","notDefined","size","unwrap","reflexable","createReflexRegister","_getRecordForRef","register","record","_bindReflexAction","_ref","isCallbackRef","_updateCurrentInstance","instance","_current","reflex","previous","_unbindReflexAction","bindings","_register","$globalReflexRegister","createIsolatedFauxReflex","$actions","createReflexContainer","_reflex","_reflexable","_reflexAction","_released","_refreshContainer","_releaseContainer","currentReflexable","useReflex","container","useLayoutEffect","useReflex$1","ClickOutsideVariant","onFocusoutCapture","useClickOutside","rootElementRef","disableClickOutside","handleClickOutside","samePath","clickOutsideHandlerRef","current","SELECTORS","ATTRIBUTES","CHECKED_RADIOS","isInput","element","isRadio","isCheckedRadio","name","form","checkedRadiosForForm","checkedRadio","shouldRefresh","tabbables","records","node","isTabbable","focusIsWithin","rootElement","elementWithFocus","parentElement","isFocusable","withTabbableRoot","observer","getTabbables","currentIndex","root","focusAt","tabbableIndex","constrainedIndex","maybeTabbable","tabbableRoot","maybeTabbableOrOffset","maybeElement","withTabbableRoot$1","useFocusTrap","onEscape","escapedFocus","focusElement","interactionKeyPressed","onClickCapture","lastFocusableElement","raf","onFocusInCapture","onFocusOutCapture","onKeyDownCapture","useFocusTrap$1","getIntersectionObserver","observerCallbackMap","withIntersectionObserver","findObserver","callbackFn","observerInstance","entry","currentObserver","getIntersectionObserver$1","calculateOffset","popover","targetElement","position","fullWidth","currentTarget","dimensionX","dimensionY","targetPosition","bodyPosition","popoverContent","toCenterFullWidth","toCenterX","toCenterY","result","acc","currentVal","usePopoverPositioner","arrowRef","setToTargetWidth","showOverlay","fitPosition","initialPosition","setInitialPosition","showPopover","setShowPopover","currentPosition","setCurrentPosition","checkedPositions","setCheckedPosition","observerCallback","bestPos","pos","observerCallbackRef","popoverStyle","style","styleWithWidth","usePopoverPositioner$1","useUniqueIdentifier","useUniqueIdentifier$1","findFirstFocusableElement","focusable","elements","elem","getGapByVariant","Popover","disableFocusTrap","actionsLayout","open","dismissible","fitContent","withoutSpace","containerSize","dismiss","withContentPadding","uncontrolledProps","isDismissible","popoverOpen","onCloseFocusTrap","onKeyDown","cachedOnKeyDown","autoFocusAnimFrame","popoverPositionAnchorElement","popoverFocusTrapElement","popoverElement","popoverElementWithId","classNamesByVariant","classNamesContentByVariant","createPortal","classNames","useBooleanState","setState","updateState","toggleState","useBooleanState$1","useTooltipListeners","isVisible","setIsVisible","showTooltip","hideTooltip","content","Tooltip","triggerRef","isContainerHovered","controllerRef","isMdViewport","cloneElement","Copy","props","Copy$1","CopyText","text","tooltipLabel","setTooltipLabel","resetTooltipLabel","CopyText$1","getErrorMessage","commonError","secondaryErrorMessage","DataOverviewContainer","balanceAccountsError","hasError","Close","Close$1","targetIsNode","Modal","isOpen","onClose","headerWithBorder","modalContainerRef","handleEscKey","CARD_BASE_CLASS","CARD_BODY","CARD_HEADER","CARD_TITLE","CARD_SUBTITLE","CARD_HEADER_CONTENT","CARD_BODY_WITH_TITLE","CARD_NO_OUTLINE","CARD_FILLED","CARD_FOOTER","Card","subTitle","footer","renderHeader","renderFooter","filled","noOutline","Card$1","DATE_FORMAT","SL_BASE_CLASS","SL_ITEM_CLASS","SL_GRID_CLASS","SL_CONTENT_CLASS","SL_LABEL_CLASS","SL_ITEM_WITH_HIGHLIGHT_CLASS","useStructuredListItems","DEFAULT_LAYOUT","StructuredList","highlightable","renderValue","renderLabel","grid","LABEL_COL_CLASS","VALUE_COL_CLASS","formattedItems","TransactionDataSkeleton","isLoading","skeletonRowNumber","skeletonRows","TransactionDataSkeleton$1","PD_BASE_CLASS","PD_TITLE_CLASS","PD_CONTENT_CLASS","PD_SECTION_CLASS","PD_CARD_CLASS","PD_CARD_TITLE_CLASS","PD_SECTION_AMOUNT_CLASS","PD_SECTION_GROSS_AMOUNT_CLASS","PD_SECTION_NET_AMOUNT_CLASS","PD_UNPAID_AMOUNT","PayoutData","payoutData","payout","adjustments","accumulator","currentValue","payoutValue","_d","_e","translationKey","categoryTranslation","categoryLabel","targetObj","_f","_g","fundsCaptured","breakdown","creationDate","FALLBACK_CDN_CONTEXT","returnImage","resourceContext","imageFolder","parentFolder","extension","subFolder","useImageUrl","Image","folder","alt","imageUrl","PAYMENT_METHODS","parsePaymentMethodType","paymentMethod","format","TagVariant","label","TransactionData","transaction","createdAt","amountStyle","ENDPOINTS_BY_TYPE","isDetailsWithId","DataOverviewDetails","details","dataId","getDetail","queryParam","errorProps","detailsData","CLASSNAMES","isDetailsWithoutId","ModalContent","detailProps","DataDetailsModal","selectedDetail","resetDetails","isModalOpen","Category","tooltipKey","DataOverviewError","ContactSupport","DataOverviewError$1","labels","getLabel","DataGridContext","useDataGridContext","CellTextPosition","DataGridCell","column","registerCells","isValidElement","TableCells","columns","customCells","rowIndex","TableBody","onRowHover","useInteractiveDataGrid","totalRows","total","nextIndex","INITIAL_STATE","optionIndex","onFocusCapture","InteractiveBody","onRowClick","onClickCallBack","SkeletonBody","columnsNumber","loading","emptyMessageDisplay","rows","SkeletonBody$1","emptyTableIcon","DataGridProvider","minWidthByColumn","width","existingWidth","getMinWidthByColumn","TableHeaderCell","cellKey","DataGrid","errorDisplay","DataGridTable","child","DataGridFooter","emptyBody","showMessage","visibleCols","cellWidths","col","DataGridBody","showSkeleton","ARIA_ERROR_SUFFIX","CommitAction","useCommitAction","applyDisabled","applyTitle","resetDisabled","resetTitle","commitAction","setCommitAction","committing","setCommitting","applyAction","resetAction","resetCommitAction","applyButtonAction","resetButtonAction","commitActionButtons","useCommitAction$1","Img","backgroundUrl","src","showOnError","loaded","setLoaded","imageRef","handleLoad","handleError","modifier","ChevronDown","ChevronDown$1","DROPDOWN_BASE_CLASS","DROPDOWN_BUTTON_CLASSNAME","DROPDOWN_BUTTON_CLASS","DROPDOWN_BUTTON_ACTIVE_CLASS","DROPDOWN_BUTTON_COLLAPSE_INDICATOR_CLASS","DROPDOWN_BUTTON_HAS_SELECTION_CLASS","DROPDOWN_BUTTON_ICON_CLASS","DROPDOWN_BUTTON_MULTI_SELECT_COUNTER_CLASS","DROPDOWN_BUTTON_READONLY_CLASS","DROPDOWN_BUTTON_TEXT_CLASS","DROPDOWN_BUTTON_VALID_CLASS","DROPDOWN_BUTTON_INVALID_CLASS","DROPDOWN_ELEMENT_CLASS","DROPDOWN_ELEMENT_ACTIVE_CLASS","DROPDOWN_ELEMENT_CHECKBOX_CLASS","DROPDOWN_ELEMENT_CHECKMARK_CLASS","DROPDOWN_ELEMENT_CONTENT_CLASS","DROPDOWN_ELEMENT_DISABLED_CLASS","DROPDOWN_ELEMENT_ICON_CLASS","DROPDOWN_ELEMENT_NO_OPTION_CLASS","DROPDOWN_LIST_CLASS","DROPDOWN_LIST_ACTIVE_CLASS","DROPDOWN_MULTI_SELECT_CLASS","SelectButtonElement","active","filterable","toggleButtonRef","baseClassName","SelectButton","multiSelect","placeholder","readonly","showList","withoutCollapseIndicator","placeholderText","buttonActiveItem","buttonTitleText","SelectButton$1","CheckedBox","CheckedBox$1","UncheckedBox","UncheckedBox$1","Checkmark","Checkmark$1","renderDefaultMultiSelectionCheckedness","renderDefaultSingleSelectionCheckedness","renderListItemDefault","SelectListItem","onSelect","renderListItem","selected","dataDisabled","itemClassName","SelectList","commitActions","selectListId","textFilter","dismissPopover","popoverClassNameModifiers","isSmViewport","filteredItems","listClassName","noOptionsClassName","renderSelectOption","multipleSelection","useSelect","getSelectedItems","selectedItems","_selected","_selectedItems","selection","setSelection","resetSelection","nextSelection","select","currentSelection","useSelect$1","Select","onChange","isInvalid","isValid","isCollatingErrors","setShowList","setTextFilter","filterInputRef","selectListRef","appliedFilterNumber","setAppliedFilterNumber","pendingClickOutsideTriggeredHideList","clearSelectionInProgress","cachedSelectedItems","dropdownClassName","closeList","commitSelection","handleSelect","handleButtonKeyDown","focus","firstAvailableItem","handleListKeyDown","handleTextFilter","toggleList","Select$1","ChevronLeft","ChevronLeft$1","ChevronRight","ChevronRight$1","Pagination","hasNext","hasPrev","page","limit","limitOptions","onLimitSelection","_limitOptions","_onLimitChanged","BASE_CLASS","AMOUNT_CLASS","PAYMENT_METHOD_CLASS","PAYMENT_METHOD_LOGO_CONTAINER_CLASS","PAYMENT_METHOD_LOGO_CLASS","DATE_AND_PAYMENT_METHOD_CLASS","PaymentMethodCell","bankAccount","PaymentMethodCell$1","FIELDS","TransactionsTable","availableCurrencies","hasMultipleCurrencies","showDetails","showPagination","transactions","paginationProps","hoveredRow","setHoveredRow","isSmAndUpViewport","isMdAndUpViewport","isXsAndDownViewport","fieldsVisibility","EMPTY_TABLE_MESSAGE","onHover","useBalanceAccountSelection","selectedBalanceAccountIndex","setSelectedBalanceAccountIndex","resetBalanceAccountSelection","activeBalanceAccount","balanceAccountSelectionOptions","description","onBalanceAccountSelection","useBalanceAccountSelection$1","BA_SELECTOR_CLASS","BA_SELECTOR_ACCOUNT_ID_CLASS","BA_SELECTOR_ACCOUNT_LABEL_CLASS","BalanceAccountSelector","BalanceAccountSelector$1","getTimezoneTime","getUsedTimezone","REGEX_CLOCK_TIME_MATCHER","formatted","meridian","clockTime","GMTOffsetString","useTimezone","withClock","shouldWatchClock","unwatchClock","setTimestamp","GMTOffset","snapshot","useTimezone$1","createRangeTimestampsConfigRestampingContext","getRangeTimestampsContextIntegerPropertyFactory","minInteger","maxInteger","defaultInteger","_getNormalizedValue","fallbackValue","normalizedValue","clampedValue","initialValue","valueGetter","getRangeTimestampsConfigParameterUnwrapper","config","isRangeTimestampsConfigWithoutOffsets","isRangeTimestampsConfigWithFromOffsets","nowTimestamp","now","offsetsForNDays","_cache","numberOfDays","parseRangeTimestamp","normalizedTimestamp","parsedTimestamp","startOfDay","startOfMonth","startOfYear","startOfWeekOffset","firstWeekDay","weekDay","createRangeTimestampsFactory","additionalContext","_config","_additionalContext","_restamper","nowDescriptor","NOW","tzDescriptor","configContext","from","to","nowSetter","parsing","withRangeFrom","years","months","days","hours","minutes","seconds","tzSetter","currentTimezone","createRangeTimestampsFactory$1","DEFAULT_FIRST_WEEK_DAY","ONE_WEEK_OFFSETS","_getFirstWeekDayContext","offsetWeek","weekCount","weeks","restConfig","firstWeekDayContext","restampedDate","dayDiff","dateDiff","dateOffset","offsetWeek$1","ONE_MONTH_OFFSETS","offsetMonth","monthCount","monthDiff","monthOffset","offsetMonth$1","lastMonth","lastMonth$1","MAX_NUM_DAYS","MIN_NUM_DAYS","DEFAULT_NUM_DAYS","_getNumberOfDaysContext","lastNDays","numberOfDaysContext","lastNDays$1","lastWeek","lastWeek$1","thisMonth","thisMonth$1","thisWeek","thisWeek$1","yearToDate","yearOffset","yearToDate$1","getTimeRangeSelectionDefaultPresetOptions","RangePreset.lastNDays","RangePreset.thisWeek","RangePreset.lastWeek","RangePreset.thisMonth","RangePreset.lastMonth","RangePreset.yearToDate","useTimeRangeSelection","presetOptions","selectedPresetOption","setFrom","setTo","selectedOption","setSelectedOption","TZ","customOption","getRangesForOption","selectionOptions","optionKeys","currentOption","isCustomSelection","setIsCustomSelection","selectionOptionsWithCustomOption","onSelection","ranges","customSelection","TimeRangeSelector","calendarRef","onTimeRangeSelected","useTimeRangeSelectionConfig","selectOptions","onSelectedOptionChanged","rangeSelectionInProgress","cachedTimestamp","TimeRangeSelector$1","property","field","isPropDescriptor","setter","propsProperty","deepImmutable","$props","maybeDescriptor","isDescriptor","CalendarGridRenderToken","CalendarGridRenderToken2","DEFAULT_DATE_CELL_CLASSNAME","DEFAULT_DATE_TIME_CLASSNAME","getGridDateRenderProps","computedProps","prepare","renderProps","CalendarGridDate","datetime","flags","onlyCellsWithin","cursorElementRef","withinMonth","withinRange","extendedProps","CalendarGridDate$1","DEFAULT_CELL_CLASSNAME","DEFAULT_CELL_ABBR_CLASSNAME","getGridDayOfWeekRenderProps","CalendarGridDayOfWeek","longLabel","shortLabel","__","childClassName","extendedChildProps","childClasses","CalendarGridDayOfWeek$1","CalendarGrid","cursorRootProps","block","row","rowindex","DAY_MS","DAY_OF_WEEK_FORMATS","FIRST_WEEK_DAYS","FRAME_SIZES","MAXIMUM_MONTH_UNITS","WEEKEND_DAYS_SEED","CONTROLS_ALL","CONTROLS_MINIMAL","CONTROLS_NONE","CALENDAR_CONTROLS","SELECT_MANY","SELECT_NONE","SELECT_ONE","CALENDAR_SELECTIONS","CURSOR_BACKWARD","CURSOR_BLOCK_END","CURSOR_BLOCK_START","CURSOR_DOWNWARD","CURSOR_FORWARD","CURSOR_LINE_END","CURSOR_LINE_START","CURSOR_NEXT_BLOCK","CURSOR_PREV_BLOCK","CURSOR_UPWARD","RANGE_FROM","RANGE_TO","SELECTION_COLLAPSE","SELECTION_FARTHEST","SELECTION_FROM","SELECTION_NEAREST","SELECTION_TO","SHIFT_BLOCK","SHIFT_FRAME","SHIFT_PERIOD","indexedProxyGetTrap","mapIteratorFactory","thisArg","__INDEXED_PROTO__","createIndexed","iterablePropertyDescriptorsOrSize","iteratorValueGetter","_NO_EXCEPTION","createEffectStack","effect","_stack","exception","today","timezones","getTimestampWithTomorrowOffset","withTimestamp","currentTimestamp","nextTimestamp","tomorrowOffset","getTimestamp","refreshTimestamps","today$1","downsizeTimeFrame","maxsize","resolveTimeFrameBlockSize","getWeekendDays","seed","computeTimestampOffset","getDateObjectFromTimestamp","getEdgesDistance","fromTime","toTime","getMonthDays","DAYS","nextMonth","monthIndex","nextYear","__TimeSlice__","_numberOfMonths","_endTimestamp","_startTimestamp","_endTimestampOffset","_startTimestampOffset","__privateWrapper","slice","UNBOUNDED_SLICE","sinceNow","untilNow","timeslice","TimeFlag","CalendarShiftControlFlag","CalendarShiftControlsFlag","createFlagsRecord","CACHE","FLAG_PROPS","isFlagProp","flagsTruncated","createFlagsRecord$1","_TimeFrame","_getClampedFrameOffset","_getContainedTimestamp","_getFrameBlockAtIndex","_shiftFrameCursorByOffset","_shiftOrigin","_shiftOriginIfNecessary","_cursorBlockIndex","_cursorBlockStartIndex","_cursorBlockEndIndex","_cursorStartIndex","_cursorEndIndex","_cursorIndex","_cursorOffset","_cursorTimestamp","_dynamicBlockHeight","_effect","_firstWeekDay","_frameBlocksCached","_DEFAULT_LOCALE","_maxFrameSize","_selectionStartTimestamp","_selectionEndTimestamp","_size","_timeslice","_today","_unwatchCurrentDay","_fromTimestamp","_toTimestamp","_fromBlockOffsetFromOrigin","_toBlockOffsetFromOrigin","_numberOfBlocks","_numberOfUnits","_daysOfWeek","_frameBlocks","getFrameBlockAtIndex_fn","bool","currentLocale","nextFrameSize","shiftOriginIfNecessary_fn","span","selectionStartTimestamp","selectionEndTimestamp","skipCursorRefresh","cursorBlock","startIndex","endIndex","nextCursorTimestamp","getContainedTimestamp_fn","nextCursorOffset","clampedNextCursorOffset","firstBlock","lastBlock","offsetType","shiftOrigin_fn","nextCursorPosition","shiftFrameCursorByOffset_fn","containedTimestamp","selectionEdge","selectionEdgeTimestamp","invertedComparison","timestampOffset","currentStart","currentEnd","startDistance","endDistance","getClampedFrameOffset_fn","frameOffset","withMidRangeFallback","clampedTimestamp","dateString","blockStartIndex","indexOffset","clampedOffset","size_1","TimeFrame","MonthFrame","_getBlockTimestampOffsetFromOrigin","_getStartForTimestamp","_updateSelectionTimestamps","_daysInWeek","_daysOfWeekCached","_daysOfWeekend","_currentDayTimestamp","_originMonthStartDate","_originMonthStartOffset","_originMonthStartTimestamp","_originYear","_selectionFromTimestamp","_selectionToTimestamp","labelDescriptors","getBlockTimestampOffsetFromOrigin_fn","ISOString","monthDays","innerStartIndex","innerEndIndex","outerStartIndex","outerEndAfterIndex","numberOfUnits","proxyForIndexPropertyAccess","startTimestamp","firstDayOffset","updateSelectionTimestamps_fn","getStartForTimestamp_fn","Calendar$2","_currentConfig","_timeframe","_canShiftInDirection","_configure","_cursorHandle","_destruct","_getShiftControlRecordAtIndex","_getShiftFactorFromEvent","_highlight","_clearHighlight","_rangeHighlight","_restoreHighlight","_reframe","_refreshHighlighting","_refreshShiftControls","_destructed","_highlightFrom","_highlightTo","_highlightInProgress","_highlightSelection","_pendingWatchNotification","_rangeOffsets","_lastHighlightRange","_cursorIndexFromEvent","_shiftFactorFromEvent","_watchCallback","_watchableEffect","_unwatch","_shiftControlsHandles","_shiftControlsList","_shiftControls","getShiftControlRecordAtIndex_fn","_watchlist","_lastWatchableSnapshot","_chainedNotifyEffectStack","_chainedWatchEffectStack","currentConfig_get","_grid","configure_fn","watchCallback","_watchableEffectCallback","_withNotifyEffect","withNotifyEffect_fn","cursorHandle_fn","blank","clearHighlight_fn","rangeHighlight_fn","_DAYS_OF_WEEK_FALLBACK","destruct_fn","_RANGE_OFFSETS_FORMAT_REGEX","_CURSOR_POINTER_INTERACTION_EVENTS","_SHIFT_ACTIVATION_KEYS","_SHIFT_ALL_CONTROLS","_SHIFT_MINIMAL_CONTROLS","_getOffsetsFromRange","getOffsetsFromRange_fn","range","_getShiftOffsetType","getShiftOffsetType_fn","_getShiftOffsetUnit","getShiftOffsetUnit_fn","timeframe_get","canShiftInDirection_fn","shiftDirection","highlight","minified","reframe_fn","refreshShiftControls_fn","refreshHighlighting_fn","highlight_fn","cursorIndex","isClick","control","shiftOffsetType","shiftOffsetUnit","canShift","shiftFactor","getShiftFactorFromEvent_fn","factor","secretFauxHighlightingHint","cursor","fromTimestamp","toTimestamp","selectionDirection","isFauxHighlighting","selectionStartDay","selectionStartDayEndTimestamp","selectionEndDayStartTimestamp","rangeOffsets","restoreHighlight_fn","controlsChanged","highlightChanged","selectionChanged","highlightRange","calendar","init","kill","Calendar","calendar$1","CalendarControls","controls","renderer","handle","useFocusCursor","finallyCallback","useFocusCursor$1","useCalendar","blocks","dynamicBlockRows","onHighlight","originDate","renderControl","sinceDate","trackCurrentDay","untilDate","useYearView","lastMutationTimestamp","setLastMutationTimestamp","activeControls","activeHighlight","highlightStart","highlightEnd","pointerHandle","useImperativeHandle","origins","useCalendar$1","ChevronUp","ChevronUp$1","useDetachedRender","targetRef","setRender","renderTarget","useDetachedRender$1","useCalendarControlsRendering","directionModifier","labelModifier","Chevron","shouldRenderControl","useCalendarControlsRendering$1","DatePicker","controlsRenderer","controlsContainerRef","lastUpdatedTimestamp","setLastUpdatedTimestamp","withTimezone","datePickerClassName","timezoneI18nOptions","DatePicker$1","DEFAULT_FILTER_BUTTON_CLASSNAME","FilterButton","FilterButton$1","InputBase","onInput","onKeyUp","trimOnBlur","onBlurHandler","onBlur","onFocusHandler","autoCorrect","spellCheck","handleInput","handleKeyUp","handleBlur","handleFocus","inputClassNames","cnm","uid","iiv","iv","ce","newProps","isValueEmptyFallback","renderFallback","DefaultEditModalBody","editAction","onValueUpdated","setCurrentValue","InputText","BaseFilter","editMode","_updateEditMode","editModalMounting","updateEditModalMounting","isValueEmpty","hasEmptyValue","updateHasEmptyValue","hasInitialValue","updateHasInitialValue","valueChanged","updateValueChanged","disabledApply","updateDisabledApply","renderModalBody","closeEditDialog","openEditDialog","updateEditMode","mode","isOnlySmDevice","isOnlyMdDevice","DateRangeFilterParam","formattingOptions","baseDateTimeFormatter","computeDateFilterValue","fromDate","toDate","resolveDate","renderDateFilterModalBody","DateFilterEditModalBody","showTimezoneInfo","timeRangePresetOptions","presetOption","setPresetOption","datePickerRef","customDateRangeFormat","DateFilterCore","selectedPresetOptionValue","setSelectedPresetOption","fromValue","toValue","dateTimeFormatter","DateFilter","canResetFilters","defaultParams","filters","refreshNowTimestamp","updateFilters","defaultTimeRangePreset","selectedTimeRangePreset","setSelectedTimeRangePreset","updateCreatedDateFilter","DateFilter$1","Filter","Filter$1","FilterBar","showFilters","setShowFilters","prevState","hasCallback","useModalDetails","setSelectedDetail","updateDetails","detailsToShow","LIMIT_OPTIONS","MAX_PAGE_LIMIT","DEFAULT_PAGE_LIMIT","getClampedPageLimit","pageLimit","getNearestFromSortedUniqueNums","nums","lastindex","lo","hi","usePageLimit","preferredLimit","preferredLimitOptions","cachedLimitOptions","cachedLimit","uniqueOptions","usePageLimit$1","useMounted","beforeUnmount","$mounted","unmount","useMounted$1","usePagination","paginationSetupConfig","requestPageCallback","$controller","$maxVisitedPage","$maxVisitedPageSize","$page","setCurrentPage","paginationChanged","updatePaginationChanged","getPageCount","getPageParams","resetPageCount","updatePagination","goto","PAGES","requestedPage","paginationData","pages","pageSize","resetPagination","usePagination$1","hasNextPage","hasPrevPage","useCursorPagination","cursors","updateCursor","currentCursor","useCursorPagination$1","useOffsetPagination","currentPage","useOffsetPagination$1","useReactiveState","initialStateSameAsDefault","$hasDefaultState","$defaultState","$stateParams","$changedParams","resetState","requestStateUpdate","stateUpdateRequest","stateUpdate","stateUpdateFlags","defaultValue","updateValue","flagIndex","updateFlag","STATE","flag","canResetState","useReactiveState$1","usePaginatedRecordsFilters","filterParams","initialFiltersSameAsDefault","defaultFilters","resetFilters","usePaginatedRecordsFilters$1","PageNeighbour","PaginationType","offsetPaginatedResponseFields","isCursorPaginatedResponseData","dataProperties","parseCursorPaginatedResponseData","dataField","parseOffsetPaginatedResponseData","hasPrevious","usePaginatedRecords","fetchRecords","initialize","onFiltersChanged","onLimitChanged","pagination","enabled","setRecords","fetching","updateFetching","setError","preferredPageLimit","setPreferredPageLimit","$initialFetchInProgress","$lastRequestedPage","$recordsFilters","filtersProps","parsePaginatedResponseData","updateLimit","pageRequestParams","usePaginatedRecords$1","useCursorPaginatedRecords","initOptions","useCursorPaginatedRecords$1","ITEM_CLASS","CONTAINER_CLASS","CONTAINER_BUTTON_CLASS","CONTAINER_FILLED_CLASS","CONTAINER_HIDDEN_CLASS","CONTAINER_OVERLAY_CLASS","CONTAINER_OVERLAY_ID","CONTENT_CLASS","CONTENT_EXPANDABLE_CLASS","CHEVRON_CLASS","DEFAULT_BASE_BUTTON_CLASSNAME","BaseButton","BaseButton$1","ExpandableCard","setIsOpen","toggleIsOpen","expandButtonRef","isClosedFromOutside","isOpenRef","clickOutsideRef","ExpandableCard$1","MARGIN_CLASS","LOADING_CLASS","AmountSkeleton","hasMargin","AmountSkeleton$1","LABEL_CONTAINER_CLASS","LABEL_CONTAINER_CLASS_LOADING","BODY_CLASS","LABEL_CLASS","PLACEHOLDER_CLASS","SummaryItemLabel","isSkeletonVisible","SummaryItem","columnConfigs","isHeader","isHovered","widths","onWidthsSet","isEmpty","newWidths","getColumnStyle","isXsScreen","typographyVariant","isLongValue","TransactionTotalItem","hiddenField","isSkeleton","incomingRef","expenseRef","currencyRef","incomingsConfig","expensesConfig","BaseList","useMaxWidthsState","maxWidths","setMaxWidths","setMaxWidthsConditionally","currentMaxWidths","currentMaxWidth","TotalsCard","totals","setIsHovered","firstTotal","restOfTotals","TransactionTotals","isAvailableCurrenciesFetching","createdSince","createdUntil","categories","statuses","maxAmount","minAmount","currencies","getTransactionTotals","fetchCallback","partialTotals","currency","TransactionTotals$1","BalanceItem","balance","amountRef","Balances","defaultCurrencyCode","onCurrenciesChange","getAccountsBalance","balances","firstCurrency","secondCurrency","firstBalance","restOfBalances","MultiSelectionFilter","updateSelection","MultiSelectionFilter$1","selectionOptionsFor","useMultiSelectionFilter","filterParam","filterValues","useMultiSelectionFilter$1","TRANSACTIONS_OVERVIEW_MULTI_SELECTION_FILTERS","DEFAULT_TRANSACTIONS_OVERVIEW_MULTI_SELECTION_FILTER_PARAMS","TRANSACTION_CATEGORIES","TRANSACTION_STATUSES","getDefaultFilterParams","timeRangeOptions","defaultTimeRange","useDefaultOverviewFilterParams","filterType","balanceAccount","setNowTimestamp","useDefaultOverviewFilterParams$1","useTransactionsOverviewMultiSelectionFilters","filtersConfig","categoriesFilter","statusesFilter","currenciesFilter","useTransactionsOverviewMultiSelectionFilters$1","AMOUNT_MULTIPLIER","RangeSelection","selectedCurrencies","setMinAmount","setMaxAmount","applyFilter","clearFilter","filterValue","AmountFilter","setValue","formattedValue","setValueFormattedValue","showCurrencySymbol","formatAmount","showSymbol","onFilterChange","_BASE_CLASS","BASE_CLASS_DETAILS","SUMMARY_CLASS","SUMMARY_ITEM_CLASS","MAX_TRANSACTIONS_DATE_RANGE_MONTHS","TransactionsOverview","allowLimitSelection","onRecordSelection","isLoadingBalanceAccount","hideTitle","transactionsEndpointCall","getTransactions","_onFiltersChanged","setAvailableCurrencies","setIsAvailableCurrenciesFetching","handleCurrenciesChange","isNarrowViewport","transactionDetails","modalOptions","TransactionsOverviewContainer","CoreProvider","_commonProps","_loadingContext","ready","setReady","commonProps","CoreProvider$1","BaseElement","newState","domNode","newComponent","BaseElement$1","UIElement","status","core","UIElement$1","Transactions","TransactionsElement$3","TransactionsElement","TransactionsElement$1","EARLIEST_PAYOUT_SINCE_DATE","NET_PAYOUT_CLASS","AMOUNT_FIELDS","_isAmountFieldKey","PayoutsTable","refreshing","PayoutsOverview","payoutsEndpointCall","getPayouts","payoutDetails","PayoutsOverviewContainer","PayoutsElement","Payouts","PayoutsElement$1","PayoutElement","PayoutElement$1","AdyenPlatformExperience"],"mappings":"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","x_google_ignoreList":[51,52,53,60]}
|