@mittwald/flow-react-components 0.2.0-alpha.515 → 0.2.0-alpha.517
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/CHANGELOG.md +11 -0
- package/dist/assets/doc-properties.json +11332 -11280
- package/dist/js/components/src/components/AccentBox/AccentBox.mjs.map +1 -1
- package/dist/js/components/src/components/Accordion/Accordion.mjs.map +1 -1
- package/dist/js/components/src/components/Action/Action.mjs.map +1 -1
- package/dist/js/components/src/components/Action/context.mjs.map +1 -1
- package/dist/js/components/src/components/Action/hooks/useActionButtonState.mjs.map +1 -1
- package/dist/js/components/src/components/Action/hooks/useConfirmationModalButtonSlot.mjs.map +1 -1
- package/dist/js/components/src/components/Action/lib/ariaLive.mjs.map +1 -1
- package/dist/js/components/src/components/Action/models/ActionExecution.mjs.map +1 -1
- package/dist/js/components/src/components/Action/models/ActionExecutionBatch.mjs.map +1 -1
- package/dist/js/components/src/components/Action/models/ActionModel.mjs.map +1 -1
- package/dist/js/components/src/components/Action/models/ActionState.mjs.map +1 -1
- package/dist/js/components/src/components/Action/models/ActionStateContext.mjs.map +1 -1
- package/dist/js/components/src/components/Action/models/getExecutionFunction.mjs.map +1 -1
- package/dist/js/components/src/components/ActionGroup/ActionGroup.mjs.map +1 -1
- package/dist/js/components/src/components/ActionGroup/lib/getActionGroupSlot.mjs.map +1 -1
- package/dist/js/components/src/components/Activity/Activity.mjs.map +1 -1
- package/dist/js/components/src/components/Alert/Alert.mjs.map +1 -1
- package/dist/js/components/src/components/AlertBadge/AlertBadge.mjs.map +1 -1
- package/dist/js/components/src/components/AlertIcon/AlertIcon.mjs.map +1 -1
- package/dist/js/components/src/components/Align/Align.mjs.map +1 -1
- package/dist/js/components/src/components/Autocomplete/Autocomplete.mjs.map +1 -1
- package/dist/js/components/src/components/Avatar/Avatar.mjs.map +1 -1
- package/dist/js/components/src/components/Avatar/avatarColors.mjs.map +1 -1
- package/dist/js/components/src/components/AvatarStack/AvatarStack.mjs.map +1 -1
- package/dist/js/components/src/components/Badge/Badge.mjs.map +1 -1
- package/dist/js/components/src/components/BigNumber/BigNumber.mjs.map +1 -1
- package/dist/js/components/src/components/Breadcrumb/Breadcrumb.mjs.map +1 -1
- package/dist/js/components/src/components/Breadcrumb/components/BreadcrumbItem/BreadcrumbItem.mjs.map +1 -1
- package/dist/js/components/src/components/BrowserOnly/BrowserOnly.mjs.map +1 -1
- package/dist/js/components/src/components/Button/Button.mjs.map +1 -1
- package/dist/js/components/src/components/Calendar/Calendar.mjs.map +1 -1
- package/dist/js/components/src/components/Calendar/RangeCalendar.mjs.map +1 -1
- package/dist/js/components/src/components/Calendar/components/CalendarHeader/CalendarHeader.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/CartesianChart.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/Area/Area.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/AreaDot/AreaDot.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/CartesianGrid/CartesianGrid.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/ChartLegend/ChartLegend.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/ChartLegend/LegendContent.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/ChartTooltip/ChartTooltip.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/ChartTooltip/TooltipContent.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/Line/Line.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/XAxis/XAxis.mjs.map +1 -1
- package/dist/js/components/src/components/CartesianChart/components/YAxis/YAxis.mjs.map +1 -1
- package/dist/js/components/src/components/Chat/Chat.mjs.map +1 -1
- package/dist/js/components/src/components/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/js/components/src/components/CheckboxButton/CheckboxButton.mjs.map +1 -1
- package/dist/js/components/src/components/CheckboxGroup/CheckboxGroup.mjs +1 -1
- package/dist/js/components/src/components/CheckboxGroup/CheckboxGroup.mjs.map +1 -1
- package/dist/js/components/src/components/CodeBlock/CodeBlock.mjs.map +1 -1
- package/dist/js/components/src/components/Color/Color.mjs.map +1 -1
- package/dist/js/components/src/components/ColumnLayout/ColumnLayout.mjs.map +1 -1
- package/dist/js/components/src/components/ColumnLayout/lib/getColumns.mjs.map +1 -1
- package/dist/js/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
- package/dist/js/components/src/components/Content/Content.mjs.map +1 -1
- package/dist/js/components/src/components/ContextMenu/ContextMenu.mjs.map +1 -1
- package/dist/js/components/src/components/ContextMenu/components/ContextMenuContent/ContextMenuContent.mjs.map +1 -1
- package/dist/js/components/src/components/ContextMenu/components/ContextMenuSection/ContextMenuSection.mjs.map +1 -1
- package/dist/js/components/src/components/ContextMenu/components/ContextMenuTrigger/ContextMenuTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/ContextMenu/lib.mjs.map +1 -1
- package/dist/js/components/src/components/ContextualHelp/ContextualHelp.mjs.map +1 -1
- package/dist/js/components/src/components/ContextualHelp/components/ContextualHelpTrigger/ContextualHelpTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/CopyButton/CopyButton.mjs.map +1 -1
- package/dist/js/components/src/components/CounterBadge/CounterBadge.mjs.map +1 -1
- package/dist/js/components/src/components/CountryOptions/CountryOptions.mjs.map +1 -1
- package/dist/js/components/src/components/CountryOptions/lib/sortBy.mjs.map +1 -1
- package/dist/js/components/src/components/DatePicker/DatePicker.mjs.map +1 -1
- package/dist/js/components/src/components/DatePicker/components/DateInput/DateInput.mjs.map +1 -1
- package/dist/js/components/src/components/DateRangePicker/DateRangePicker.mjs.map +1 -1
- package/dist/js/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.mjs.map +1 -1
- package/dist/js/components/src/components/Div/Div.mjs.map +1 -1
- package/dist/js/components/src/components/DonutChart/DonutChart.mjs.map +1 -1
- package/dist/js/components/src/components/DonutChart/components/Donut.mjs.map +1 -1
- package/dist/js/components/src/components/DonutChart/components/DonutChartFill.mjs.map +1 -1
- package/dist/js/components/src/components/DonutChart/components/DonutChartLegend.mjs.map +1 -1
- package/dist/js/components/src/components/DonutChart/components/DonutChartValue.mjs.map +1 -1
- package/dist/js/components/src/components/EmulatedBoldText/EmulatedBoldText.mjs.map +1 -1
- package/dist/js/components/src/components/FieldDescription/FieldDescription.mjs.map +1 -1
- package/dist/js/components/src/components/FieldError/FieldError.mjs.map +1 -1
- package/dist/js/components/src/components/FileCard/FileCard.mjs.map +1 -1
- package/dist/js/components/src/components/FileCard/components/Avatar/Avatar.mjs.map +1 -1
- package/dist/js/components/src/components/FileCard/components/DeleteButton/DeleteButton.mjs.map +1 -1
- package/dist/js/components/src/components/FileCard/components/FileSizeText/FileSizeText.mjs.map +1 -1
- package/dist/js/components/src/components/FileCardList/FileCardList.mjs.map +1 -1
- package/dist/js/components/src/components/FileDropZone/FileDropZone.mjs.map +1 -1
- package/dist/js/components/src/components/FileField/FileField.mjs.map +1 -1
- package/dist/js/components/src/components/FileField/components/FileInput.mjs.map +1 -1
- package/dist/js/components/src/components/Flex/Flex.mjs.map +1 -1
- package/dist/js/components/src/components/Header/Header.mjs.map +1 -1
- package/dist/js/components/src/components/HeaderNavigation/HeaderNavigation.mjs.map +1 -1
- package/dist/js/components/src/components/Heading/Heading.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/Icon.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconAI.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconAnalytics.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconApp.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconAttachment.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconAutoresponder.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconBackLink.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconBackup.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCamera.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCertificate.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconChangelog.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCheck.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCheckboxChecked.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCheckboxEmpty.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCheckboxIndeterminate.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconChevronDown.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconChevronLeft.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconChevronRight.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconChevronUp.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconClose.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCode.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconContainer.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconContextMenu.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconContextMenuVertical.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconContract.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconContributor.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCopy.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCronjob.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconCustomer.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDanger.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDashboard.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDatabase.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDate.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDelete.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDeliveryBox.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDesktop.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDirectory.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDnsSubZone.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDnsZone.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDomain.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconDownload.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconEdit.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconEmail.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconEmailArchive.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconExtension.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconExternalLink.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconFailed.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconFile.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconFilter.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconForwardAddress.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconHide.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconHome.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconImage.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconInfo.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconInvite.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconKnowledgeHint.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconLeadFyndr.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconLink.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconLock.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconLockOpen.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconLogout.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMainUser.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMarketplace.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMaximize.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMember.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMenu.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMinimize.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMinus.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMittwald.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMobile.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMonitoring.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconMove.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconNotification.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconNumber.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconOrder.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconPassword.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconPath.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconPause.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconPayment.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconPending.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconPicture.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconPlus.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconProject.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconRadioOff.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconRadioOn.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconRedo.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconRefresh.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconRegistry.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSave.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSearch.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSecurity.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSend.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconServer.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSettings.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconShare.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconShow.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSorting.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSsh.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSshKey.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSshSftp.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconStar.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconStarFilled.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconStart.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSubdomain.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSucceeded.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSuccess.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconSupport.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconTerminate.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconTicket.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconTime.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconUndo.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconUpload.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconUser.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconVhost.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconView.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconVolume.mjs.map +1 -1
- package/dist/js/components/src/components/Icon/components/icons/IconWarning.mjs.map +1 -1
- package/dist/js/components/src/components/IllustratedMessage/IllustratedMessage.mjs.map +1 -1
- package/dist/js/components/src/components/Image/Image.mjs.map +1 -1
- package/dist/js/components/src/components/Initials/Initials.mjs.map +1 -1
- package/dist/js/components/src/components/Initials/lib/getColorFromInitials.mjs.map +1 -1
- package/dist/js/components/src/components/Initials/lib/getInitialsFromString.mjs.map +1 -1
- package/dist/js/components/src/components/InlineCode/InlineCode.mjs.map +1 -1
- package/dist/js/components/src/components/Label/Label.mjs.map +1 -1
- package/dist/js/components/src/components/LabeledValue/LabeledValue.mjs.map +1 -1
- package/dist/js/components/src/components/LayoutCard/LayoutCard.mjs.map +1 -1
- package/dist/js/components/src/components/Legend/Legend.mjs.map +1 -1
- package/dist/js/components/src/components/Legend/components/LegendItem/LegendItem.mjs.map +1 -1
- package/dist/js/components/src/components/LightBox/LightBox.mjs.map +1 -1
- package/dist/js/components/src/components/LightBox/components/LightBoxTrigger/LightBoxTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/Link/Link.mjs.map +1 -1
- package/dist/js/components/src/components/Link/components/LinkIcon/LinkIcon.mjs.map +1 -1
- package/dist/js/components/src/components/Link/context.mjs.map +1 -1
- package/dist/js/components/src/components/List/List.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/DataLoader/DataLoader.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Footer/Footer.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/Header.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Filters/CombinedFilterMenu.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Filters/FilterMenu.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Filters/FilterMenuItem.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Filters/FilterMenuList.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/SearchField/SearchField.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Settings/SettingsMenu.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Settings/SortingMenu.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Settings/SortingMenuItem.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenu.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenuItem.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/lib.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/Items.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/components/FallbackItems/FallbackItems.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/components/Item/Item.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/components/Item/components/AccordionButton.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/components/Item/components/ListItemSkeletonView/ListItemSkeletonView.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/components/Item/components/OptionsButton/OptionsButton.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/views/GridList/GridList.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/views/GridListItem/GridListItem.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/ListItemView/ListItemView.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/ListItemView/components/ListItemViewContent/ListItemViewContent.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/ListSummary/ListSummary.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Table/Table.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Table/components/TableLoadingView.mjs.map +1 -1
- package/dist/js/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs.map +1 -1
- package/dist/js/components/src/components/List/hooks/useList.mjs.map +1 -1
- package/dist/js/components/src/components/List/listContext.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/List.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/ReactTable.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/filter/Filter.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/filter/FilterValue.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/item/Item.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/item/ItemCollection.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/item/ItemView.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/loading/IncrementalLoader.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/loading/IncrementalLoaderState.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/pagination/BatchesController.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/search/Search.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/sorting/Sorting.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/sorting/SortingFunctions.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/table/Table.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/table/TableBody.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/table/TableCell.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/table/TableColumn.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/table/TableHeader.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/table/TableRow.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/types.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/ListFilter.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/ListItem.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/ListLoaderAsync.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/ListLoaderAsyncResource.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/ListSearch.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/ListSorting.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/ListStaticData.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/Table.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/TableBody.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/TableCell.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/TableColumn.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/TableHeader.mjs.map +1 -1
- package/dist/js/components/src/components/List/setupComponents/TableRow.mjs.map +1 -1
- package/dist/js/components/src/components/List/typedList.mjs.map +1 -1
- package/dist/js/components/src/components/List/views/EmptyView/EmptyView.mjs.map +1 -1
- package/dist/js/components/src/components/LoadingSpinner/LoadingSpinner.mjs.map +1 -1
- package/dist/js/components/src/components/Markdown/Markdown.mjs.map +1 -1
- package/dist/js/components/src/components/Markdown/lib/getHeadingLevelWithOffset.mjs.map +1 -1
- package/dist/js/components/src/components/MarkdownEditor/MarkdownEditor.mjs.map +1 -1
- package/dist/js/components/src/components/MarkdownEditor/components/ModeButton.mjs.map +1 -1
- package/dist/js/components/src/components/MarkdownEditor/components/Toolbar.mjs.map +1 -1
- package/dist/js/components/src/components/MarkdownEditor/components/ToolbarButton.mjs.map +1 -1
- package/dist/js/components/src/components/MarkdownEditor/lib/handleKeyDown.mjs.map +1 -1
- package/dist/js/components/src/components/MarkdownEditor/lib/insertAtCursor.mjs.map +1 -1
- package/dist/js/components/src/components/MenuItem/MenuItem.mjs.map +1 -1
- package/dist/js/components/src/components/MenuItem/components/MenuItemContent/MenuItemContent.mjs.map +1 -1
- package/dist/js/components/src/components/Message/Message.mjs.map +1 -1
- package/dist/js/components/src/components/MessageThread/MessageThread.mjs.map +1 -1
- package/dist/js/components/src/components/MessageThread/components/MessageSeparator/MessageSeparator.mjs.map +1 -1
- package/dist/js/components/src/components/Modal/Modal.mjs.map +1 -1
- package/dist/js/components/src/components/Modal/components/ModalTrigger/ModalTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/Navigation/Navigation.mjs.map +1 -1
- package/dist/js/components/src/components/Navigation/components/NavigationGroup/NavigationGroup.mjs.map +1 -1
- package/dist/js/components/src/components/Notification/Notification.mjs.map +1 -1
- package/dist/js/components/src/components/NotificationProvider/ControlledNotification.mjs.map +1 -1
- package/dist/js/components/src/components/NotificationProvider/NotificationContainer/NotificationContainer.mjs.map +1 -1
- package/dist/js/components/src/components/NotificationProvider/NotificationController.mjs.map +1 -1
- package/dist/js/components/src/components/NotificationProvider/NotificationProvider.mjs.map +1 -1
- package/dist/js/components/src/components/NumberField/NumberField.mjs.map +1 -1
- package/dist/js/components/src/components/Option/Option.mjs.map +1 -1
- package/dist/js/components/src/components/Options/Options.mjs.map +1 -1
- package/dist/js/components/src/components/Overlay/Overlay.mjs.map +1 -1
- package/dist/js/components/src/components/Overlay/components/OverlayContent.mjs.map +1 -1
- package/dist/js/components/src/components/OverlayTrigger/OverlayTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/OverlayTrigger/components/DialogTrigger/DialogTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/OverlayTrigger/components/MenuTrigger/MenuTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/PasswordCreationField.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/components/ComplexityIndicator/ComplexityIndicator.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/components/PasswordGenerateButton/PasswordGenerateButton.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/components/TogglePasswordVisibilityButton/TogglePasswordVisibilityButton.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/components/ValidationResultButton/ValidationResultButton.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/components/ValidationResultEntry/ValidationResultEntry.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/lib/generateValidationTranslation.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/lib/getStateFromLatestPolicyValidationResult.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/lib/getStatusFromPolicyValidationResult.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/lib/usePolicyValidationResult.mjs.map +1 -1
- package/dist/js/components/src/components/PasswordCreationField/worker/generatePassword.mjs.map +1 -1
- package/dist/js/components/src/components/Popover/Popover.mjs.map +1 -1
- package/dist/js/components/src/components/Popover/components/PopoverContent/PopoverContent.mjs.map +1 -1
- package/dist/js/components/src/components/Popover/components/PopoverTrigger/PopoverTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/ProgressBar/ProgressBar.mjs.map +1 -1
- package/dist/js/components/src/components/ProgressBar/components/ProgressBarBar.mjs.map +1 -1
- package/dist/js/components/src/components/ProgressBar/components/ProgressBarLegend.mjs.map +1 -1
- package/dist/js/components/src/components/ProgressBar/components/ProgressBarValue.mjs.map +1 -1
- package/dist/js/components/src/components/RadioGroup/RadioGroup.mjs.map +1 -1
- package/dist/js/components/src/components/RadioGroup/components/Radio/Radio.mjs.map +1 -1
- package/dist/js/components/src/components/RadioGroup/components/RadioButton/RadioButton.mjs.map +1 -1
- package/dist/js/components/src/components/Rating/Rating.mjs.map +1 -1
- package/dist/js/components/src/components/SearchField/SearchField.mjs.map +1 -1
- package/dist/js/components/src/components/Section/Section.mjs.map +1 -1
- package/dist/js/components/src/components/Section/components/SectionHeader/SectionHeader.mjs.map +1 -1
- package/dist/js/components/src/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
- package/dist/js/components/src/components/SegmentedControl/components/Segment/Segment.mjs.map +1 -1
- package/dist/js/components/src/components/Select/Select.mjs +1 -1
- package/dist/js/components/src/components/Select/Select.mjs.map +1 -1
- package/dist/js/components/src/components/Separator/Separator.mjs.map +1 -1
- package/dist/js/components/src/components/SettingsProvider/SettingsProvider.mjs.map +1 -1
- package/dist/js/components/src/components/SettingsProvider/backends/LocalStorageSettingsBackend.mjs.map +1 -1
- package/dist/js/components/src/components/SettingsProvider/backends/settingsBackendFactory.mjs.map +1 -1
- package/dist/js/components/src/components/SettingsProvider/models/ComponentSettings.mjs.map +1 -1
- package/dist/js/components/src/components/SettingsProvider/models/SettingsStore.mjs.map +1 -1
- package/dist/js/components/src/components/Skeleton/Skeleton.mjs.map +1 -1
- package/dist/js/components/src/components/SkeletonText/SkeletonText.mjs.map +1 -1
- package/dist/js/components/src/components/Slider/Slider.mjs.map +1 -1
- package/dist/js/components/src/components/SuspenseTrigger/SuspenseTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/Switch/Switch.mjs.map +1 -1
- package/dist/js/components/src/components/Table/Table.mjs.map +1 -1
- package/dist/js/components/src/components/Table/components/TableBody/TableBody.mjs.map +1 -1
- package/dist/js/components/src/components/Table/components/TableCell/TableCell.mjs.map +1 -1
- package/dist/js/components/src/components/Table/components/TableColumn/TableColumn.mjs.map +1 -1
- package/dist/js/components/src/components/Table/components/TableFooterRow/TableFooterRow.mjs.map +1 -1
- package/dist/js/components/src/components/Table/components/TableHeader/TableHeader.mjs.map +1 -1
- package/dist/js/components/src/components/Table/components/TableRow/TableRow.mjs.map +1 -1
- package/dist/js/components/src/components/Tabs/Tabs.mjs.map +1 -1
- package/dist/js/components/src/components/Tabs/components/Tab/Tab.mjs.map +1 -1
- package/dist/js/components/src/components/Tabs/components/Tab/context.mjs.map +1 -1
- package/dist/js/components/src/components/Tabs/components/TabList/TabList.mjs.map +1 -1
- package/dist/js/components/src/components/Tabs/components/TabTitle/TabTitle.mjs.map +1 -1
- package/dist/js/components/src/components/Tabs/components/TabTitle/TabTitleCollapsed.mjs.map +1 -1
- package/dist/js/components/src/components/Text/Text.mjs.map +1 -1
- package/dist/js/components/src/components/TextArea/TextArea.mjs.map +1 -1
- package/dist/js/components/src/components/TextField/TextField.mjs.map +1 -1
- package/dist/js/components/src/components/TextFieldBase/TextFieldBase.mjs.map +1 -1
- package/dist/js/components/src/components/TimeField/TimeField.mjs.map +1 -1
- package/dist/js/components/src/components/Tooltip/Tooltip.mjs.map +1 -1
- package/dist/js/components/src/components/Tooltip/components/TooltipTrigger/TooltipTrigger.mjs.map +1 -1
- package/dist/js/components/src/components/TranslationProvider/TranslationProvider.mjs.map +1 -1
- package/dist/js/components/src/components/TranslationProvider/useLocalizedContextStringFormatter.mjs.map +1 -1
- package/dist/js/components/src/components/TunnelEntry/TunnelEntry.mjs.map +1 -1
- package/dist/js/components/src/components/Wrap/Wrap.mjs.map +1 -1
- package/dist/js/components/src/components/propTypes/index.mjs.map +1 -1
- package/dist/js/components/src/integrations/@mittwald/password-tools-js/defaultPasswordCreationPolicy.mjs.map +1 -1
- package/dist/js/components/src/integrations/@mittwald/password-tools-js/generatePasswordCreationFieldValidation.mjs.map +1 -1
- package/dist/js/components/src/integrations/nextjs/components/Link/Link.mjs.map +1 -1
- package/dist/js/components/src/integrations/nextjs/components/LinkProvider/LinkProvider.mjs.map +1 -1
- package/dist/js/components/src/integrations/nextjs/components/RouterProvider/RouterProvider.mjs.map +1 -1
- package/dist/js/components/src/integrations/react-hook-form/components/Field/Field.mjs +1 -3
- package/dist/js/components/src/integrations/react-hook-form/components/Field/Field.mjs.map +1 -1
- package/dist/js/components/src/integrations/react-hook-form/components/Form/Form.mjs.map +1 -1
- package/dist/js/components/src/integrations/react-hook-form/components/Form/lib/useRegisterActionStateContext.mjs.map +1 -1
- package/dist/js/components/src/integrations/react-hook-form/components/context/formContext.mjs.map +1 -1
- package/dist/js/components/src/lib/array/toArray.mjs.map +1 -1
- package/dist/js/components/src/lib/componentFactory/flowComponent.mjs +7 -5
- package/dist/js/components/src/lib/componentFactory/flowComponent.mjs.map +1 -1
- package/dist/js/components/src/lib/controller/overlay/OverlayContextProvider.mjs.map +1 -1
- package/dist/js/components/src/lib/controller/overlay/OverlayController.mjs.map +1 -1
- package/dist/js/components/src/lib/controller/overlay/context.mjs.map +1 -1
- package/dist/js/components/src/lib/controller/overlay/useOverlayController.mjs.map +1 -1
- package/dist/js/components/src/lib/getContainerBreakpointSizeClassName.mjs.map +1 -1
- package/dist/js/components/src/lib/hooks/dom/useMakeFocusable.mjs.map +1 -1
- package/dist/js/components/src/lib/hooks/dom/useObserveOverflow.mjs.map +1 -1
- package/dist/js/components/src/lib/hooks/useIsMounted.mjs.map +1 -1
- package/dist/js/components/src/lib/hooks/useManagedValue.mjs.map +1 -1
- package/dist/js/components/src/lib/hooks/useOnChange.mjs.map +1 -1
- package/dist/js/components/src/lib/hooks/useProps.mjs.map +1 -1
- package/dist/js/components/src/lib/hooks/useStatic.mjs.map +1 -1
- package/dist/js/components/src/lib/mobx/mobxMapToObject.mjs.map +1 -1
- package/dist/js/components/src/lib/mobx/useSelector.mjs.map +1 -1
- package/dist/js/components/src/lib/promises/callAndReact.mjs.map +1 -1
- package/dist/js/components/src/lib/promises/callFunctionsInOrder.mjs.map +1 -1
- package/dist/js/components/src/lib/promises/sleep.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/components/ClearPropsContext.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/components/ComponentPropsContextProvider.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/components/PropsContextProvider.mjs +4 -3
- package/dist/js/components/src/lib/propsContext/components/PropsContextProvider.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/dynamicProps/dynamic.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/dynamicProps/lib.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/dynamicProps/resolveDynamicProps.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/dynamicProps/types.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/inherit/PropsContextLevelProvider.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/inherit/lib.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/inherit/propsContextLevel.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/inherit/types.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/isFlowComponentName.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/isFlowComponentProp.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/mergePropsContext.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/nestedPropsContext/lib.mjs +3 -2
- package/dist/js/components/src/lib/propsContext/nestedPropsContext/lib.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/nestedPropsContext/types.mjs.map +1 -1
- package/dist/js/components/src/lib/propsContext/propsContext.mjs.map +1 -1
- package/dist/js/components/src/lib/react/ReactAriaControlledValueFix.mjs.map +1 -1
- package/dist/js/components/src/lib/react/areChildrenEmpty.mjs.map +1 -1
- package/dist/js/components/src/lib/react/cloneElement.mjs.map +1 -1
- package/dist/js/components/src/lib/react/components/Render/Render.mjs.map +1 -1
- package/dist/js/components/src/lib/react/components/Translate/Translate.mjs.map +1 -1
- package/dist/js/components/src/lib/react/deepFindOfType.mjs.map +1 -1
- package/dist/js/components/src/lib/react/emitElementValueChange.mjs.map +1 -1
- package/dist/js/components/src/lib/react/getPropsMerger.mjs.map +1 -1
- package/dist/js/components/src/lib/react/remote.mjs.map +1 -1
- package/dist/js/components/src/lib/slotContext/SlotContextProvider.mjs.map +1 -1
- package/dist/js/components/src/lib/slotContext/slotContext.mjs.map +1 -1
- package/dist/js/components/src/lib/slotContext/useContextSlot.mjs.map +1 -1
- package/dist/js/components/src/lib/timer/Timer.mjs.map +1 -1
- package/dist/js/components/src/lib/tokens/getCategoricalColorByIndex.mjs.map +1 -1
- package/dist/js/components/src/lib/viewComponentContext/ViewComponentContextProvider.mjs.map +1 -1
- package/dist/js/components/src/lib/viewComponentContext/viewComponentContext.mjs.map +1 -1
- package/dist/js/components/src/views/AvatarView.mjs.map +1 -1
- package/dist/js/components/src/views/BadgeView.mjs.map +1 -1
- package/dist/js/components/src/views/ButtonView.mjs.map +1 -1
- package/dist/js/components/src/views/ClearPropsContextView.mjs.map +1 -1
- package/dist/js/components/src/views/ComponentPropsContextProviderView.mjs.map +1 -1
- package/dist/js/components/src/views/ContextMenuContentView.mjs.map +1 -1
- package/dist/js/components/src/views/ContextMenuSectionView.mjs.map +1 -1
- package/dist/js/components/src/views/ContextMenuTriggerView.mjs.map +1 -1
- package/dist/js/components/src/views/ContextMenuView.mjs.map +1 -1
- package/dist/js/components/src/views/DialogTriggerView.mjs.map +1 -1
- package/dist/js/components/src/views/DivView.mjs.map +1 -1
- package/dist/js/components/src/views/FieldErrorView.mjs.map +1 -1
- package/dist/js/components/src/views/HeadingView.mjs.map +1 -1
- package/dist/js/components/src/views/IconView.mjs.map +1 -1
- package/dist/js/components/src/views/ItemsGridListItemView.mjs.map +1 -1
- package/dist/js/components/src/views/ItemsGridListView.mjs.map +1 -1
- package/dist/js/components/src/views/ListEmptyViewView.mjs.map +1 -1
- package/dist/js/components/src/views/ListItemViewContentView.mjs.map +1 -1
- package/dist/js/components/src/views/MenuItemView.mjs.map +1 -1
- package/dist/js/components/src/views/MenuTriggerView.mjs.map +1 -1
- package/dist/js/components/src/views/OptionView.mjs.map +1 -1
- package/dist/js/components/src/views/OverlayContentView.mjs.map +1 -1
- package/dist/js/components/src/views/PopoverContentView.mjs.map +1 -1
- package/dist/js/components/src/views/SearchFieldView.mjs.map +1 -1
- package/dist/js/components/src/views/SeparatorView.mjs.map +1 -1
- package/dist/js/components/src/views/SkeletonTextView.mjs.map +1 -1
- package/dist/js/components/src/views/SkeletonView.mjs.map +1 -1
- package/dist/js/components/src/views/TableBodyView.mjs.map +1 -1
- package/dist/js/components/src/views/TableCellView.mjs.map +1 -1
- package/dist/js/components/src/views/TableColumnView.mjs.map +1 -1
- package/dist/js/components/src/views/TableHeaderView.mjs.map +1 -1
- package/dist/js/components/src/views/TableRowView.mjs.map +1 -1
- package/dist/js/components/src/views/TableView.mjs.map +1 -1
- package/dist/js/components/src/views/TextView.mjs.map +1 -1
- package/dist/js/components/src/views/TooltipTriggerView.mjs.map +1 -1
- package/dist/js/components/src/views/TooltipView.mjs.map +1 -1
- package/dist/js/core/src/file.mjs.map +1 -1
- package/dist/types/components/ContextMenu/lib.d.ts +1 -1
- package/dist/types/components/Select/Select.d.ts +2 -1
- package/dist/types/components/Select/Select.d.ts.map +1 -1
- package/dist/types/integrations/react-hook-form/components/Field/Field.d.ts.map +1 -1
- package/dist/types/lib/componentFactory/flowComponent.d.ts.map +1 -1
- package/dist/types/lib/propsContext/components/PropsContextProvider.d.ts.map +1 -1
- package/dist/types/lib/propsContext/nestedPropsContext/lib.d.ts +80 -1
- package/dist/types/lib/propsContext/nestedPropsContext/lib.d.ts.map +1 -1
- package/package.json +49 -49
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.mjs","sources":["../../../../../../../src/components/List/model/List.ts"],"sourcesContent":["import { ItemCollection } from \"@/components/List/model/item/ItemCollection\";\nimport { BatchesController } from \"@/components/List/model/pagination/BatchesController\";\nimport { Filter } from \"./filter/Filter\";\nimport { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport ReactTable from \"@/components/List/model/ReactTable\";\nimport type {\n GetItemId,\n ItemActionFn,\n ListShape,\n ListSupportedComponentProps,\n ListViewMode,\n} from \"@/components/List/model/types\";\nimport { IncrementalLoader } from \"@/components/List/model/loading/IncrementalLoader\";\nimport invariant from \"invariant\";\nimport { Search } from \"@/components/List/model/search/Search\";\nimport { ItemView } from \"@/components/List/model/item/ItemView\";\nimport { Table } from \"@/components/List/model/table/Table\";\nimport { useEffect, useState } from \"react\";\nimport { useSettings } from \"@/components/SettingsProvider/SettingsProvider\";\nimport type { SettingsStore } from \"@/components/SettingsProvider/models/SettingsStore\";\nimport z from \"zod\";\n\nexport class List<T> {\n public static readonly viewModeSettingsStorageSchema = z\n .enum([\"list\", \"table\", \"tiles\"])\n .optional();\n public readonly filters: Filter<T, never, never>[];\n public readonly itemView?: ItemView<T>;\n public readonly table?: Table<T>;\n public readonly search?: Search<T>;\n public readonly sorting: Sorting<T>[];\n public readonly items: ItemCollection<T>;\n public readonly reactTable: ReactTable<T>;\n public readonly batches: BatchesController<T>;\n public readonly loader: IncrementalLoader<T>;\n public readonly onAction?: ItemActionFn<T>;\n public readonly accordion: boolean;\n public readonly getItemId?: GetItemId<T>;\n public readonly componentProps: ListSupportedComponentProps;\n public viewMode: ListViewMode;\n public readonly setViewMode: (viewMode: ListViewMode) => void;\n public readonly supportsSettingsStorage: boolean;\n public readonly settingStorageKey?: string;\n private readonly settingsStore?: SettingsStore;\n private readonly viewModeStorageKey?: string;\n private readonly filterSettingsStorageKey?: string;\n private readonly sortingStorageKey?: string;\n\n public constructor(shape: ListShape<T>) {\n const {\n settingStorageKey,\n itemView,\n table,\n filters = [],\n sorting = [],\n batchesController,\n onChange,\n loader,\n search,\n onAction,\n getItemId,\n defaultViewMode,\n accordion = false,\n ...componentProps\n } = shape;\n\n this.settingsStore = useSettings();\n this.settingStorageKey = settingStorageKey;\n this.filterSettingsStorageKey = settingStorageKey\n ? `${settingStorageKey}.activeFilters`\n : undefined;\n this.viewModeStorageKey = settingStorageKey\n ? `${settingStorageKey}.viewMode`\n : undefined;\n this.sortingStorageKey = settingStorageKey\n ? `${settingStorageKey}.sorting`\n : undefined;\n this.supportsSettingsStorage = !!this.settingStorageKey;\n\n this.items = new ItemCollection(this);\n this.filters = filters.map((shape) => new Filter(this, shape));\n this.sorting = sorting.map((shape) => new Sorting<T>(this, shape));\n this.search = search ? new Search(this, search) : undefined;\n this.itemView = itemView ? new ItemView(this, itemView) : undefined;\n this.accordion = accordion;\n this.table = table ? new Table(this, table) : undefined;\n this.batches = new BatchesController(this, batchesController);\n this.componentProps = componentProps;\n this.loader = IncrementalLoader.useNew<T>(this, loader);\n this.onAction = onAction;\n this.getItemId = getItemId;\n this.reactTable = ReactTable.useNew(this, onChange, {\n manualFiltering: this.loader.manualFiltering,\n manualPagination: this.loader.manualPagination,\n manualSorting: this.loader.manualSorting,\n });\n\n const [viewMode, setViewMode] = useState(\n this.getStoredViewModeDefaultSetting() ?? defaultViewMode ?? \"list\",\n );\n this.viewMode = viewMode;\n\n this.setViewMode = (viewMode) => {\n setViewMode(viewMode);\n if (this.settingsStore && this.viewModeStorageKey) {\n this.settingsStore.set(\n \"List\",\n this.viewModeStorageKey,\n List.viewModeSettingsStorageSchema,\n viewMode,\n );\n }\n };\n\n useEffect(() => {\n this.filters.forEach((f) => f.deleteUnknownFilterValues());\n }, [this.filters]);\n }\n\n public get isFiltered(): boolean {\n return (\n this.filters.some((f) => f.isActive()) ||\n (!!this.search && this.search.isSet)\n );\n }\n\n public get visibleSorting() {\n return this.sorting.filter((s) => s.defaultEnabled !== \"hidden\");\n }\n\n public static useNew<T>(shape: ListShape<T>): List<T> {\n return new List<T>(shape);\n }\n\n public storeFilterDefaultSettings() {\n if (this.settingsStore && this.filterSettingsStorageKey) {\n const data = Object.fromEntries(\n this.filters.map((f) => [\n f.property,\n f\n .getArrayValue()\n .filter((v) => v.isActive)\n .map((v) => v.id),\n ]),\n );\n\n this.settingsStore.set(\n \"List\",\n this.filterSettingsStorageKey,\n Filter.settingsStorageSchema,\n data,\n );\n }\n }\n\n public getStoredFilterDefaultSettings() {\n if (this.settingsStore && this.filterSettingsStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.filterSettingsStorageKey,\n Filter.settingsStorageSchema,\n );\n }\n }\n\n public getStoredViewModeDefaultSetting() {\n if (this.settingsStore && this.viewModeStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.viewModeStorageKey,\n List.viewModeSettingsStorageSchema,\n );\n }\n }\n\n public storeSortingSettings(sorting: Sorting<T>) {\n if (this.settingsStore && this.sortingStorageKey) {\n this.settingsStore.set(\n \"List\",\n this.sortingStorageKey,\n Sorting.storageSchema,\n { direction: sorting.direction, property: sorting.property },\n );\n }\n }\n\n public getStoredSortingDefaultSetting() {\n if (this.settingsStore && this.sortingStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.sortingStorageKey,\n Sorting.storageSchema,\n );\n }\n }\n\n public getSorting(id: string): Sorting<T> {\n const sorting = this.sorting.find((s) => s.id === id);\n invariant(!!sorting, `Could not get Sorting (ID: ${id})`);\n return sorting;\n }\n\n public clearSorting(): void {\n return this.sorting.forEach((s) => s.clear());\n }\n\n public resetFilters(): void {\n return this.filters.forEach((f) => f.resetValues());\n }\n\n public clearFilters(): void {\n return this.filters.forEach((f) => f.clear());\n }\n\n public useIsEmpty(): boolean {\n return !this.loader.useIsLoading() && this.items.entries.length === 0;\n }\n}\n\nexport default List;\n"],"names":["shape","viewMode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"List.mjs","sources":["../../../../../../../src/components/List/model/List.ts"],"sourcesContent":["import { ItemCollection } from \"@/components/List/model/item/ItemCollection\";\nimport { BatchesController } from \"@/components/List/model/pagination/BatchesController\";\nimport { Filter } from \"./filter/Filter\";\nimport { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport ReactTable from \"@/components/List/model/ReactTable\";\nimport type {\n GetItemId,\n ItemActionFn,\n ListShape,\n ListSupportedComponentProps,\n ListViewMode,\n} from \"@/components/List/model/types\";\nimport { IncrementalLoader } from \"@/components/List/model/loading/IncrementalLoader\";\nimport invariant from \"invariant\";\nimport { Search } from \"@/components/List/model/search/Search\";\nimport { ItemView } from \"@/components/List/model/item/ItemView\";\nimport { Table } from \"@/components/List/model/table/Table\";\nimport { useEffect, useState } from \"react\";\nimport { useSettings } from \"@/components/SettingsProvider/SettingsProvider\";\nimport type { SettingsStore } from \"@/components/SettingsProvider/models/SettingsStore\";\nimport z from \"zod\";\n\nexport class List<T> {\n public static readonly viewModeSettingsStorageSchema = z\n .enum([\"list\", \"table\", \"tiles\"])\n .optional();\n public readonly filters: Filter<T, never, never>[];\n public readonly itemView?: ItemView<T>;\n public readonly table?: Table<T>;\n public readonly search?: Search<T>;\n public readonly sorting: Sorting<T>[];\n public readonly items: ItemCollection<T>;\n public readonly reactTable: ReactTable<T>;\n public readonly batches: BatchesController<T>;\n public readonly loader: IncrementalLoader<T>;\n public readonly onAction?: ItemActionFn<T>;\n public readonly accordion: boolean;\n public readonly getItemId?: GetItemId<T>;\n public readonly componentProps: ListSupportedComponentProps;\n public viewMode: ListViewMode;\n public readonly setViewMode: (viewMode: ListViewMode) => void;\n public readonly supportsSettingsStorage: boolean;\n public readonly settingStorageKey?: string;\n private readonly settingsStore?: SettingsStore;\n private readonly viewModeStorageKey?: string;\n private readonly filterSettingsStorageKey?: string;\n private readonly sortingStorageKey?: string;\n\n public constructor(shape: ListShape<T>) {\n const {\n settingStorageKey,\n itemView,\n table,\n filters = [],\n sorting = [],\n batchesController,\n onChange,\n loader,\n search,\n onAction,\n getItemId,\n defaultViewMode,\n accordion = false,\n ...componentProps\n } = shape;\n\n this.settingsStore = useSettings();\n this.settingStorageKey = settingStorageKey;\n this.filterSettingsStorageKey = settingStorageKey\n ? `${settingStorageKey}.activeFilters`\n : undefined;\n this.viewModeStorageKey = settingStorageKey\n ? `${settingStorageKey}.viewMode`\n : undefined;\n this.sortingStorageKey = settingStorageKey\n ? `${settingStorageKey}.sorting`\n : undefined;\n this.supportsSettingsStorage = !!this.settingStorageKey;\n\n this.items = new ItemCollection(this);\n this.filters = filters.map((shape) => new Filter(this, shape));\n this.sorting = sorting.map((shape) => new Sorting<T>(this, shape));\n this.search = search ? new Search(this, search) : undefined;\n this.itemView = itemView ? new ItemView(this, itemView) : undefined;\n this.accordion = accordion;\n this.table = table ? new Table(this, table) : undefined;\n this.batches = new BatchesController(this, batchesController);\n this.componentProps = componentProps;\n this.loader = IncrementalLoader.useNew<T>(this, loader);\n this.onAction = onAction;\n this.getItemId = getItemId;\n this.reactTable = ReactTable.useNew(this, onChange, {\n manualFiltering: this.loader.manualFiltering,\n manualPagination: this.loader.manualPagination,\n manualSorting: this.loader.manualSorting,\n });\n\n const [viewMode, setViewMode] = useState(\n this.getStoredViewModeDefaultSetting() ?? defaultViewMode ?? \"list\",\n );\n this.viewMode = viewMode;\n\n this.setViewMode = (viewMode) => {\n setViewMode(viewMode);\n if (this.settingsStore && this.viewModeStorageKey) {\n this.settingsStore.set(\n \"List\",\n this.viewModeStorageKey,\n List.viewModeSettingsStorageSchema,\n viewMode,\n );\n }\n };\n\n useEffect(() => {\n this.filters.forEach((f) => f.deleteUnknownFilterValues());\n }, [this.filters]);\n }\n\n public get isFiltered(): boolean {\n return (\n this.filters.some((f) => f.isActive()) ||\n (!!this.search && this.search.isSet)\n );\n }\n\n public get visibleSorting() {\n return this.sorting.filter((s) => s.defaultEnabled !== \"hidden\");\n }\n\n public static useNew<T>(shape: ListShape<T>): List<T> {\n return new List<T>(shape);\n }\n\n public storeFilterDefaultSettings() {\n if (this.settingsStore && this.filterSettingsStorageKey) {\n const data = Object.fromEntries(\n this.filters.map((f) => [\n f.property,\n f\n .getArrayValue()\n .filter((v) => v.isActive)\n .map((v) => v.id),\n ]),\n );\n\n this.settingsStore.set(\n \"List\",\n this.filterSettingsStorageKey,\n Filter.settingsStorageSchema,\n data,\n );\n }\n }\n\n public getStoredFilterDefaultSettings() {\n if (this.settingsStore && this.filterSettingsStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.filterSettingsStorageKey,\n Filter.settingsStorageSchema,\n );\n }\n }\n\n public getStoredViewModeDefaultSetting() {\n if (this.settingsStore && this.viewModeStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.viewModeStorageKey,\n List.viewModeSettingsStorageSchema,\n );\n }\n }\n\n public storeSortingSettings(sorting: Sorting<T>) {\n if (this.settingsStore && this.sortingStorageKey) {\n this.settingsStore.set(\n \"List\",\n this.sortingStorageKey,\n Sorting.storageSchema,\n { direction: sorting.direction, property: sorting.property },\n );\n }\n }\n\n public getStoredSortingDefaultSetting() {\n if (this.settingsStore && this.sortingStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.sortingStorageKey,\n Sorting.storageSchema,\n );\n }\n }\n\n public getSorting(id: string): Sorting<T> {\n const sorting = this.sorting.find((s) => s.id === id);\n invariant(!!sorting, `Could not get Sorting (ID: ${id})`);\n return sorting;\n }\n\n public clearSorting(): void {\n return this.sorting.forEach((s) => s.clear());\n }\n\n public resetFilters(): void {\n return this.filters.forEach((f) => f.resetValues());\n }\n\n public clearFilters(): void {\n return this.filters.forEach((f) => f.clear());\n }\n\n public useIsEmpty(): boolean {\n return !this.loader.useIsLoading() && this.items.entries.length === 0;\n }\n}\n\nexport default List;\n"],"names":["shape","viewMode"],"mappings":";;;;;;;;;;;;;;AAsBO,MAAM,IAAA,CAAQ;AAAA,EACnB,OAAuB,6BAAA,GAAgC,CAAA,CACpD,IAAA,CAAK,CAAC,QAAQ,OAAA,EAAS,OAAO,CAAC,CAAA,CAC/B,QAAA,EAAS;AAAA,EACI,OAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACT,QAAA;AAAA,EACS,WAAA;AAAA,EACA,uBAAA;AAAA,EACA,iBAAA;AAAA,EACC,aAAA;AAAA,EACA,kBAAA;AAAA,EACA,wBAAA;AAAA,EACA,iBAAA;AAAA,EAEV,YAAY,KAAA,EAAqB;AACtC,IAAA,MAAM;AAAA,MACJ,iBAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAU,EAAC;AAAA,MACX,UAAU,EAAC;AAAA,MACX,iBAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,eAAA;AAAA,MACA,SAAA,GAAY,KAAA;AAAA,MACZ,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,IAAA,CAAK,gBAAgB,WAAA,EAAY;AACjC,IAAA,IAAA,CAAK,iBAAA,GAAoB,iBAAA;AACzB,IAAA,IAAA,CAAK,wBAAA,GAA2B,iBAAA,GAC5B,CAAA,EAAG,iBAAiB,CAAA,cAAA,CAAA,GACpB,MAAA;AACJ,IAAA,IAAA,CAAK,kBAAA,GAAqB,iBAAA,GACtB,CAAA,EAAG,iBAAiB,CAAA,SAAA,CAAA,GACpB,MAAA;AACJ,IAAA,IAAA,CAAK,iBAAA,GAAoB,iBAAA,GACrB,CAAA,EAAG,iBAAiB,CAAA,QAAA,CAAA,GACpB,MAAA;AACJ,IAAA,IAAA,CAAK,uBAAA,GAA0B,CAAC,CAAC,IAAA,CAAK,iBAAA;AAEtC,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,cAAA,CAAe,IAAI,CAAA;AACpC,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,GAAA,CAAI,CAACA,WAAU,IAAI,MAAA,CAAO,IAAA,EAAMA,MAAK,CAAC,CAAA;AAC7D,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,GAAA,CAAI,CAACA,WAAU,IAAI,OAAA,CAAW,IAAA,EAAMA,MAAK,CAAC,CAAA;AACjE,IAAA,IAAA,CAAK,SAAS,MAAA,GAAS,IAAI,MAAA,CAAO,IAAA,EAAM,MAAM,CAAA,GAAI,MAAA;AAClD,IAAA,IAAA,CAAK,WAAW,QAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,QAAQ,CAAA,GAAI,MAAA;AAC1D,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AACjB,IAAA,IAAA,CAAK,QAAQ,KAAA,GAAQ,IAAI,KAAA,CAAM,IAAA,EAAM,KAAK,CAAA,GAAI,MAAA;AAC9C,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,iBAAA,CAAkB,IAAA,EAAM,iBAAiB,CAAA;AAC5D,IAAA,IAAA,CAAK,cAAA,GAAiB,cAAA;AACtB,IAAA,IAAA,CAAK,MAAA,GAAS,iBAAA,CAAkB,MAAA,CAAU,IAAA,EAAM,MAAM,CAAA;AACtD,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AACjB,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA,CAAW,MAAA,CAAO,IAAA,EAAM,QAAA,EAAU;AAAA,MAClD,eAAA,EAAiB,KAAK,MAAA,CAAO,eAAA;AAAA,MAC7B,gBAAA,EAAkB,KAAK,MAAA,CAAO,gBAAA;AAAA,MAC9B,aAAA,EAAe,KAAK,MAAA,CAAO;AAAA,KAC5B,CAAA;AAED,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,QAAA;AAAA,MAC9B,IAAA,CAAK,+BAAA,EAAgC,IAAK,eAAA,IAAmB;AAAA,KAC/D;AACA,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAEhB,IAAA,IAAA,CAAK,WAAA,GAAc,CAACC,SAAAA,KAAa;AAC/B,MAAA,WAAA,CAAYA,SAAQ,CAAA;AACpB,MAAA,IAAI,IAAA,CAAK,aAAA,IAAiB,IAAA,CAAK,kBAAA,EAAoB;AACjD,QAAA,IAAA,CAAK,aAAA,CAAc,GAAA;AAAA,UACjB,MAAA;AAAA,UACA,IAAA,CAAK,kBAAA;AAAA,UACL,IAAA,CAAK,6BAAA;AAAA,UACLA;AAAA,SACF;AAAA,MACF;AAAA,IACF,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAA,CAAK,QAAQ,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,2BAA2B,CAAA;AAAA,IAC3D,CAAA,EAAG,CAAC,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,EACnB;AAAA,EAEA,IAAW,UAAA,GAAsB;AAC/B,IAAA,OACE,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,CAAC,MAAM,CAAA,CAAE,QAAA,EAAU,CAAA,IACpC,CAAC,CAAC,IAAA,CAAK,MAAA,IAAU,KAAK,MAAA,CAAO,KAAA;AAAA,EAElC;AAAA,EAEA,IAAW,cAAA,GAAiB;AAC1B,IAAA,OAAO,KAAK,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,mBAAmB,QAAQ,CAAA;AAAA,EACjE;AAAA,EAEA,OAAc,OAAU,KAAA,EAA8B;AACpD,IAAA,OAAO,IAAI,KAAQ,KAAK,CAAA;AAAA,EAC1B;AAAA,EAEO,0BAAA,GAA6B;AAClC,IAAA,IAAI,IAAA,CAAK,aAAA,IAAiB,IAAA,CAAK,wBAAA,EAA0B;AACvD,MAAA,MAAM,OAAO,MAAA,CAAO,WAAA;AAAA,QAClB,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,KAAM;AAAA,UACtB,CAAA,CAAE,QAAA;AAAA,UACF,CAAA,CACG,aAAA,EAAc,CACd,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CACxB,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE;AAAA,SACnB;AAAA,OACH;AAEA,MAAA,IAAA,CAAK,aAAA,CAAc,GAAA;AAAA,QACjB,MAAA;AAAA,QACA,IAAA,CAAK,wBAAA;AAAA,QACL,MAAA,CAAO,qBAAA;AAAA,QACP;AAAA,OACF;AAAA,IACF;AAAA,EACF;AAAA,EAEO,8BAAA,GAAiC;AACtC,IAAA,IAAI,IAAA,CAAK,aAAA,IAAiB,IAAA,CAAK,wBAAA,EAA0B;AACvD,MAAA,OAAO,KAAK,aAAA,CAAc,GAAA;AAAA,QACxB,MAAA;AAAA,QACA,IAAA,CAAK,wBAAA;AAAA,QACL,MAAA,CAAO;AAAA,OACT;AAAA,IACF;AAAA,EACF;AAAA,EAEO,+BAAA,GAAkC;AACvC,IAAA,IAAI,IAAA,CAAK,aAAA,IAAiB,IAAA,CAAK,kBAAA,EAAoB;AACjD,MAAA,OAAO,KAAK,aAAA,CAAc,GAAA;AAAA,QACxB,MAAA;AAAA,QACA,IAAA,CAAK,kBAAA;AAAA,QACL,IAAA,CAAK;AAAA,OACP;AAAA,IACF;AAAA,EACF;AAAA,EAEO,qBAAqB,OAAA,EAAqB;AAC/C,IAAA,IAAI,IAAA,CAAK,aAAA,IAAiB,IAAA,CAAK,iBAAA,EAAmB;AAChD,MAAA,IAAA,CAAK,aAAA,CAAc,GAAA;AAAA,QACjB,MAAA;AAAA,QACA,IAAA,CAAK,iBAAA;AAAA,QACL,OAAA,CAAQ,aAAA;AAAA,QACR,EAAE,SAAA,EAAW,OAAA,CAAQ,SAAA,EAAW,QAAA,EAAU,QAAQ,QAAA;AAAS,OAC7D;AAAA,IACF;AAAA,EACF;AAAA,EAEO,8BAAA,GAAiC;AACtC,IAAA,IAAI,IAAA,CAAK,aAAA,IAAiB,IAAA,CAAK,iBAAA,EAAmB;AAChD,MAAA,OAAO,KAAK,aAAA,CAAc,GAAA;AAAA,QACxB,MAAA;AAAA,QACA,IAAA,CAAK,iBAAA;AAAA,QACL,OAAA,CAAQ;AAAA,OACV;AAAA,IACF;AAAA,EACF;AAAA,EAEO,WAAW,EAAA,EAAwB;AACxC,IAAA,MAAM,OAAA,GAAU,KAAK,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AACpD,IAAA,SAAA,CAAU,CAAC,CAAC,OAAA,EAAS,CAAA,2BAAA,EAA8B,EAAE,CAAA,CAAA,CAAG,CAAA;AACxD,IAAA,OAAO,OAAA;AAAA,EACT;AAAA,EAEO,YAAA,GAAqB;AAC1B,IAAA,OAAO,KAAK,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,CAAA;AAAA,EAC9C;AAAA,EAEO,YAAA,GAAqB;AAC1B,IAAA,OAAO,KAAK,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,CAAA;AAAA,EACpD;AAAA,EAEO,YAAA,GAAqB;AAC1B,IAAA,OAAO,KAAK,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,CAAA;AAAA,EAC9C;AAAA,EAEO,UAAA,GAAsB;AAC3B,IAAA,OAAO,CAAC,KAAK,MAAA,CAAO,YAAA,MAAkB,IAAA,CAAK,KAAA,CAAM,QAAQ,MAAA,KAAW,CAAA;AAAA,EACtE;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactTable.mjs","sources":["../../../../../../../src/components/List/model/ReactTable.ts"],"sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnSort,\n InitialTableState,\n Table,\n TableOptions,\n Updater,\n} from \"@tanstack/react-table\";\nimport {\n getCoreRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport type List from \"@/components/List/model/List\";\nimport invariant from \"invariant\";\nimport type {\n OnListChanged,\n PropertyName,\n} from \"@/components/List/model/types\";\nimport type { SearchValue } from \"@/components/List/model/search/types\";\nimport type { Dispatch, SetStateAction } from \"react\";\nimport { useEffect, useState } from \"react\";\n\nexport class ReactTable<T> {\n public readonly list: List<T>;\n public readonly table: Table<T>;\n public readonly sortingState: ColumnSort[];\n public readonly updateSortingState: Dispatch<SetStateAction<ColumnSort[]>>;\n\n private constructor(\n list: List<T>,\n onChange?: OnListChanged<T>,\n tableOptions: Partial<TableOptions<T>> = {},\n ) {\n this.list = list;\n\n const defaultSorting = this.list.sorting.filter(\n (s) => s.defaultEnabled !== false,\n );\n\n const [sortingState, updateSortingState] = useState<ColumnSort[]>(\n defaultSorting.map((s) => s.getReactTableColumnSort()),\n );\n this.sortingState = sortingState;\n this.updateSortingState = updateSortingState;\n this.table = this.useReactTable(onChange, tableOptions);\n }\n\n public get searchString(): SearchValue {\n return this.table.getState().globalFilter;\n }\n\n public static useNew<T>(\n list: List<T>,\n onChange?: OnListChanged<T>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): ReactTable<T> {\n return new ReactTable<T>(list, onChange, tableOptions);\n }\n\n public getTableColumn(property: PropertyName<T>): Column<T> {\n const column = this.table.getColumn(property as string);\n invariant(!!column, `Column #${property} is not defined`);\n return column;\n }\n\n private useReactTable(\n onChange?: OnListChanged<T>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): Table<T> {\n const data = this.list.loader.useData();\n\n const initialState: InitialTableState = {\n pagination: {\n pageSize: this.list.batches.batchSize,\n },\n columnFilters: [],\n };\n\n for (const filter of this.list.filters) {\n filter.updateInitialState(initialState);\n }\n\n this.list.search?.updateInitialState(initialState);\n\n const table = useReactTable({\n data,\n state: {\n sorting: this.sortingState,\n },\n getRowId: this.list.getItemId,\n initialState,\n columns: this.getTableColumnDefs(),\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n onSortingChange: (updater) => {\n this.handleSortingStateUpdate(updater);\n },\n globalFilterFn: \"auto\",\n ...tableOptions,\n });\n\n useEffect(() => {\n if (onChange) {\n onChange(this.list);\n }\n }, [this.list, onChange, table]);\n\n return table;\n }\n\n private handleSortingStateUpdate(updater: Updater<ColumnSort[]>) {\n const newSortingState =\n typeof updater === \"function\" ? updater(this.sortingState) : updater;\n\n const additionalHiddenSorting = this.list.sorting\n .filter(\n (s) =>\n s.defaultEnabled === \"hidden\" &&\n !newSortingState.some((existing) => existing.id === s.property),\n )\n .map((s) => s.getReactTableColumnSort());\n\n this.updateSortingState([...additionalHiddenSorting, ...newSortingState]);\n }\n\n private getTableColumnDefs(): ColumnDef<T>[] {\n const columnDefsMap = new Map<PropertyName<T>, ColumnDef<T>>();\n\n const getOrCreateColumnDef = (p: PropertyName<T>): ColumnDef<T> => {\n const existing = columnDefsMap.get(p);\n if (existing) {\n return existing;\n }\n const newDef: ColumnDef<T> = {\n id: p as string,\n accessorKey: p as string,\n enableSorting: false,\n enableColumnFilter: false,\n sortingFn: \"alphanumeric\",\n };\n\n columnDefsMap.set(p, newDef);\n return newDef;\n };\n\n this.list.filters.forEach((f) =>\n f.updateTableColumnDef(getOrCreateColumnDef(f.property)),\n );\n\n this.list.sorting.forEach((s) =>\n s.updateTableColumnDef(getOrCreateColumnDef(s.property)),\n );\n\n this.list.loader.staticDataProperties.forEach((property) => {\n getOrCreateColumnDef(property);\n });\n\n return Array.from(columnDefsMap.values());\n }\n}\n\nexport default ReactTable;\n"],"names":[],"mappings":";;;;AA2BO,MAAM,
|
|
1
|
+
{"version":3,"file":"ReactTable.mjs","sources":["../../../../../../../src/components/List/model/ReactTable.ts"],"sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnSort,\n InitialTableState,\n Table,\n TableOptions,\n Updater,\n} from \"@tanstack/react-table\";\nimport {\n getCoreRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport type List from \"@/components/List/model/List\";\nimport invariant from \"invariant\";\nimport type {\n OnListChanged,\n PropertyName,\n} from \"@/components/List/model/types\";\nimport type { SearchValue } from \"@/components/List/model/search/types\";\nimport type { Dispatch, SetStateAction } from \"react\";\nimport { useEffect, useState } from \"react\";\n\nexport class ReactTable<T> {\n public readonly list: List<T>;\n public readonly table: Table<T>;\n public readonly sortingState: ColumnSort[];\n public readonly updateSortingState: Dispatch<SetStateAction<ColumnSort[]>>;\n\n private constructor(\n list: List<T>,\n onChange?: OnListChanged<T>,\n tableOptions: Partial<TableOptions<T>> = {},\n ) {\n this.list = list;\n\n const defaultSorting = this.list.sorting.filter(\n (s) => s.defaultEnabled !== false,\n );\n\n const [sortingState, updateSortingState] = useState<ColumnSort[]>(\n defaultSorting.map((s) => s.getReactTableColumnSort()),\n );\n this.sortingState = sortingState;\n this.updateSortingState = updateSortingState;\n this.table = this.useReactTable(onChange, tableOptions);\n }\n\n public get searchString(): SearchValue {\n return this.table.getState().globalFilter;\n }\n\n public static useNew<T>(\n list: List<T>,\n onChange?: OnListChanged<T>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): ReactTable<T> {\n return new ReactTable<T>(list, onChange, tableOptions);\n }\n\n public getTableColumn(property: PropertyName<T>): Column<T> {\n const column = this.table.getColumn(property as string);\n invariant(!!column, `Column #${property} is not defined`);\n return column;\n }\n\n private useReactTable(\n onChange?: OnListChanged<T>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): Table<T> {\n const data = this.list.loader.useData();\n\n const initialState: InitialTableState = {\n pagination: {\n pageSize: this.list.batches.batchSize,\n },\n columnFilters: [],\n };\n\n for (const filter of this.list.filters) {\n filter.updateInitialState(initialState);\n }\n\n this.list.search?.updateInitialState(initialState);\n\n const table = useReactTable({\n data,\n state: {\n sorting: this.sortingState,\n },\n getRowId: this.list.getItemId,\n initialState,\n columns: this.getTableColumnDefs(),\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n onSortingChange: (updater) => {\n this.handleSortingStateUpdate(updater);\n },\n globalFilterFn: \"auto\",\n ...tableOptions,\n });\n\n useEffect(() => {\n if (onChange) {\n onChange(this.list);\n }\n }, [this.list, onChange, table]);\n\n return table;\n }\n\n private handleSortingStateUpdate(updater: Updater<ColumnSort[]>) {\n const newSortingState =\n typeof updater === \"function\" ? updater(this.sortingState) : updater;\n\n const additionalHiddenSorting = this.list.sorting\n .filter(\n (s) =>\n s.defaultEnabled === \"hidden\" &&\n !newSortingState.some((existing) => existing.id === s.property),\n )\n .map((s) => s.getReactTableColumnSort());\n\n this.updateSortingState([...additionalHiddenSorting, ...newSortingState]);\n }\n\n private getTableColumnDefs(): ColumnDef<T>[] {\n const columnDefsMap = new Map<PropertyName<T>, ColumnDef<T>>();\n\n const getOrCreateColumnDef = (p: PropertyName<T>): ColumnDef<T> => {\n const existing = columnDefsMap.get(p);\n if (existing) {\n return existing;\n }\n const newDef: ColumnDef<T> = {\n id: p as string,\n accessorKey: p as string,\n enableSorting: false,\n enableColumnFilter: false,\n sortingFn: \"alphanumeric\",\n };\n\n columnDefsMap.set(p, newDef);\n return newDef;\n };\n\n this.list.filters.forEach((f) =>\n f.updateTableColumnDef(getOrCreateColumnDef(f.property)),\n );\n\n this.list.sorting.forEach((s) =>\n s.updateTableColumnDef(getOrCreateColumnDef(s.property)),\n );\n\n this.list.loader.staticDataProperties.forEach((property) => {\n getOrCreateColumnDef(property);\n });\n\n return Array.from(columnDefsMap.values());\n }\n}\n\nexport default ReactTable;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.mjs","sources":["../../../../../../../../src/components/List/model/filter/Filter.ts"],"sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnFilter,\n InitialTableState,\n} from \"@tanstack/react-table\";\nimport type List from \"@/components/List/model/List\";\nimport { getProperty } from \"dot-prop\";\nimport type {\n FilterMatcher,\n FilterMode,\n FilterShape,\n} from \"@/components/List/model/filter/types\";\nimport type {\n PropertyName,\n PropertyValueRenderMethod,\n} from \"@/components/List/model/types\";\nimport { customPropertyPrefix } from \"@/components/List/model/types\";\nimport { difference, unique } from \"remeda\";\nimport { FilterValue } from \"@/components/List/model/filter/FilterValue\";\nimport z from \"zod\";\nimport { toArray } from \"@/lib/array/toArray\";\n\nconst equalsPropertyMatcher: FilterMatcher<unknown, never, never> = (\n filterValue,\n propertyValue,\n) => filterValue === propertyValue;\n\nconst stringCastRenderMethod: PropertyValueRenderMethod<unknown> = (value) =>\n String(value);\n\nexport class Filter<T, TProp extends PropertyName<T>, TMatchValue> {\n public static readonly settingsStorageSchema = z\n .record(z.array(z.string()))\n .optional();\n\n private _values?: FilterValue[] | undefined;\n private _valuesFromTableState?: FilterValue[];\n public readonly list: List<T>;\n public readonly property: PropertyName<T>;\n public readonly mode: FilterMode;\n public readonly matcher: FilterMatcher<T, never, never>;\n public readonly renderItem: PropertyValueRenderMethod<TMatchValue>;\n public readonly name?: string;\n private onFilterUpdateCallbacks = new Set<() => unknown>();\n private readonly defaultSelectedValues?: readonly NonNullable<TMatchValue>[];\n\n public constructor(list: List<T>, shape: FilterShape<T, TProp, TMatchValue>) {\n this.list = list;\n this.property = shape.property;\n this.mode = shape.mode ?? \"some\";\n this._values = shape.values?.map((v) => FilterValue.create(this, v));\n this.matcher = shape.matcher ?? equalsPropertyMatcher;\n this.renderItem = shape.renderItem ?? stringCastRenderMethod;\n this.name = shape.name;\n\n this.defaultSelectedValues = shape.defaultSelected;\n }\n\n private getStoredSelectedIds() {\n return this.list.getStoredFilterDefaultSettings()?.[String(this.property)];\n }\n\n public updateInitialState(initialState: InitialTableState) {\n const initialValues = this.getInitialValues();\n\n if (initialValues?.length) {\n initialState.columnFilters = [\n ...(initialState.columnFilters ?? []),\n {\n id: this.property as string,\n value: initialValues,\n },\n ];\n }\n }\n\n public updateTableColumnDef(def: ColumnDef<T>): void {\n def.enableColumnFilter = true;\n def.filterFn = this.getReactTableFilterFn();\n }\n\n private getReactTableFilterFn(): ColumnDef<T>[\"filterFn\"] {\n return (row, _, filterValue) => {\n const propertyAsString = this.property as string;\n\n const filterBy = propertyAsString.startsWith(customPropertyPrefix)\n ? row.original\n : getProperty(row.original, propertyAsString);\n\n return this.checkFilterMatches(filterBy, filterValue);\n };\n }\n\n private checkFilterMatches(\n property: unknown,\n filterValueInput: unknown,\n ): boolean {\n if (filterValueInput === null) {\n return true;\n }\n\n const predicate = (filterValue: FilterValue) =>\n this.matcher(filterValue.value as never, property as never);\n\n const toFilterValue = (something: unknown) =>\n FilterValue.create(this, something);\n\n if (this.mode === \"all\") {\n return toArray(filterValueInput).map(toFilterValue).every(predicate);\n } else if (this.mode === \"some\") {\n const filterArr = toArray(filterValueInput);\n return (\n filterArr.length === 0 || filterArr.map(toFilterValue).some(predicate)\n );\n } else if (this.mode === \"one\") {\n return predicate(toFilterValue(filterValueInput));\n }\n\n throw new Error(`Unknown filter mode '${this.mode}'`);\n }\n\n protected getTableColumnFilter(): ColumnFilter | undefined {\n return this.list.reactTable.table\n .getState()\n .columnFilters.find((f) => f.id === this.property);\n }\n\n private getTableColumn(): Column<T> {\n return this.list.reactTable.getTableColumn(this.property);\n }\n\n public getValue(): unknown {\n return this.getTableColumnFilter()?.value ?? null;\n }\n\n private getValuesFromTableState() {\n return unique(\n Array.from(this.getTableColumn().getFacetedUniqueValues().keys())\n .flatMap((v) => v)\n .filter((v) => v !== undefined && v !== null),\n ).map((v) => FilterValue.create(this, v));\n }\n\n private checkIfValueIsUnknown(value: FilterValue) {\n const isKnown = this.values.some((v) => v.id === value.id);\n return !isKnown;\n }\n\n public deleteUnknownFilterValues() {\n if (this.values === this.valuesFromTableState) {\n return;\n }\n\n for (const currentValues of this.getArrayValue()) {\n if (this.checkIfValueIsUnknown(currentValues)) {\n this.deactivateValue(currentValues);\n }\n }\n }\n\n public get values(): FilterValue[] {\n return this._values ?? this.valuesFromTableState;\n }\n\n private get valuesFromTableState(): FilterValue[] {\n if (!this._valuesFromTableState) {\n this._valuesFromTableState = this.getValuesFromTableState();\n }\n return this._valuesFromTableState;\n }\n\n public getArrayValue(): FilterValue[] {\n const value = this.getValue();\n return value === null\n ? []\n : toArray(value).map((v) => FilterValue.create(this, v));\n }\n\n public isValueActive(value: FilterValue): boolean {\n return this.getArrayValue().some((v) => v.equals(value));\n }\n\n public isActive(): boolean {\n return this.getArrayValue().length > 0;\n }\n\n public deactivateValue(value: FilterValue): void {\n const currentValueAsArray = this.getArrayValue();\n\n let updatedValue: unknown;\n\n if (this.mode === \"all\" || this.mode === \"some\") {\n updatedValue = currentValueAsArray.filter((v) => !v.equals(value));\n } else {\n updatedValue = null;\n }\n\n this.list.reactTable\n .getTableColumn(this.property)\n .setFilterValue(updatedValue);\n this.onFilterUpdateCallbacks.forEach((cb) => cb());\n }\n\n public hasChanged(): boolean {\n const currentValues = this.getArrayValue().map((v) => v.value);\n const initialValues =\n this.getInitialFilterValues()?.map((v) => v.value) ?? [];\n\n return (\n currentValues.length !== initialValues.length ||\n difference(currentValues, initialValues).length > 0\n );\n }\n\n private getInitialValues() {\n return this.getStoredSelectedIds() ?? this.defaultSelectedValues;\n }\n\n private getInitialFilterValues() {\n return this.getInitialValues()?.map((v) => FilterValue.create(this, v));\n }\n\n public resetValues(): void {\n let resetTo: unknown;\n const initialValues = this.getInitialValues();\n\n if (initialValues) {\n resetTo = initialValues;\n } else {\n if (this.mode === \"all\" || this.mode === \"some\") {\n resetTo = [];\n } else {\n resetTo = null;\n }\n }\n\n this.list.reactTable.getTableColumn(this.property).setFilterValue(resetTo);\n this.onFilterUpdateCallbacks.forEach((cb) => cb());\n }\n\n public clear(): void {\n this.list.reactTable.getTableColumn(this.property).setFilterValue(null);\n this.onFilterUpdateCallbacks.forEach((cb) => cb());\n }\n\n public toggleValue(newValue: FilterValue): void {\n const currentValueAsArray = this.getArrayValue();\n\n let updatedValue: unknown;\n\n if (this.mode === \"all\" || this.mode === \"some\") {\n if (newValue.isActive) {\n updatedValue = currentValueAsArray.filter((v) => !v.equals(newValue));\n } else {\n updatedValue = [...currentValueAsArray, newValue];\n }\n } else {\n updatedValue = newValue.isActive ? null : newValue;\n }\n\n this.list.reactTable\n .getTableColumn(this.property)\n .setFilterValue(updatedValue);\n this.onFilterUpdateCallbacks.forEach((cb) => cb());\n }\n\n public onFilterUpdated(cb: () => unknown): void {\n this.onFilterUpdateCallbacks.add(cb);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filter.mjs","sources":["../../../../../../../../src/components/List/model/filter/Filter.ts"],"sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnFilter,\n InitialTableState,\n} from \"@tanstack/react-table\";\nimport type List from \"@/components/List/model/List\";\nimport { getProperty } from \"dot-prop\";\nimport type {\n FilterMatcher,\n FilterMode,\n FilterShape,\n} from \"@/components/List/model/filter/types\";\nimport type {\n PropertyName,\n PropertyValueRenderMethod,\n} from \"@/components/List/model/types\";\nimport { customPropertyPrefix } from \"@/components/List/model/types\";\nimport { difference, unique } from \"remeda\";\nimport { FilterValue } from \"@/components/List/model/filter/FilterValue\";\nimport z from \"zod\";\nimport { toArray } from \"@/lib/array/toArray\";\n\nconst equalsPropertyMatcher: FilterMatcher<unknown, never, never> = (\n filterValue,\n propertyValue,\n) => filterValue === propertyValue;\n\nconst stringCastRenderMethod: PropertyValueRenderMethod<unknown> = (value) =>\n String(value);\n\nexport class Filter<T, TProp extends PropertyName<T>, TMatchValue> {\n public static readonly settingsStorageSchema = z\n .record(z.array(z.string()))\n .optional();\n\n private _values?: FilterValue[] | undefined;\n private _valuesFromTableState?: FilterValue[];\n public readonly list: List<T>;\n public readonly property: PropertyName<T>;\n public readonly mode: FilterMode;\n public readonly matcher: FilterMatcher<T, never, never>;\n public readonly renderItem: PropertyValueRenderMethod<TMatchValue>;\n public readonly name?: string;\n private onFilterUpdateCallbacks = new Set<() => unknown>();\n private readonly defaultSelectedValues?: readonly NonNullable<TMatchValue>[];\n\n public constructor(list: List<T>, shape: FilterShape<T, TProp, TMatchValue>) {\n this.list = list;\n this.property = shape.property;\n this.mode = shape.mode ?? \"some\";\n this._values = shape.values?.map((v) => FilterValue.create(this, v));\n this.matcher = shape.matcher ?? equalsPropertyMatcher;\n this.renderItem = shape.renderItem ?? stringCastRenderMethod;\n this.name = shape.name;\n\n this.defaultSelectedValues = shape.defaultSelected;\n }\n\n private getStoredSelectedIds() {\n return this.list.getStoredFilterDefaultSettings()?.[String(this.property)];\n }\n\n public updateInitialState(initialState: InitialTableState) {\n const initialValues = this.getInitialValues();\n\n if (initialValues?.length) {\n initialState.columnFilters = [\n ...(initialState.columnFilters ?? []),\n {\n id: this.property as string,\n value: initialValues,\n },\n ];\n }\n }\n\n public updateTableColumnDef(def: ColumnDef<T>): void {\n def.enableColumnFilter = true;\n def.filterFn = this.getReactTableFilterFn();\n }\n\n private getReactTableFilterFn(): ColumnDef<T>[\"filterFn\"] {\n return (row, _, filterValue) => {\n const propertyAsString = this.property as string;\n\n const filterBy = propertyAsString.startsWith(customPropertyPrefix)\n ? row.original\n : getProperty(row.original, propertyAsString);\n\n return this.checkFilterMatches(filterBy, filterValue);\n };\n }\n\n private checkFilterMatches(\n property: unknown,\n filterValueInput: unknown,\n ): boolean {\n if (filterValueInput === null) {\n return true;\n }\n\n const predicate = (filterValue: FilterValue) =>\n this.matcher(filterValue.value as never, property as never);\n\n const toFilterValue = (something: unknown) =>\n FilterValue.create(this, something);\n\n if (this.mode === \"all\") {\n return toArray(filterValueInput).map(toFilterValue).every(predicate);\n } else if (this.mode === \"some\") {\n const filterArr = toArray(filterValueInput);\n return (\n filterArr.length === 0 || filterArr.map(toFilterValue).some(predicate)\n );\n } else if (this.mode === \"one\") {\n return predicate(toFilterValue(filterValueInput));\n }\n\n throw new Error(`Unknown filter mode '${this.mode}'`);\n }\n\n protected getTableColumnFilter(): ColumnFilter | undefined {\n return this.list.reactTable.table\n .getState()\n .columnFilters.find((f) => f.id === this.property);\n }\n\n private getTableColumn(): Column<T> {\n return this.list.reactTable.getTableColumn(this.property);\n }\n\n public getValue(): unknown {\n return this.getTableColumnFilter()?.value ?? null;\n }\n\n private getValuesFromTableState() {\n return unique(\n Array.from(this.getTableColumn().getFacetedUniqueValues().keys())\n .flatMap((v) => v)\n .filter((v) => v !== undefined && v !== null),\n ).map((v) => FilterValue.create(this, v));\n }\n\n private checkIfValueIsUnknown(value: FilterValue) {\n const isKnown = this.values.some((v) => v.id === value.id);\n return !isKnown;\n }\n\n public deleteUnknownFilterValues() {\n if (this.values === this.valuesFromTableState) {\n return;\n }\n\n for (const currentValues of this.getArrayValue()) {\n if (this.checkIfValueIsUnknown(currentValues)) {\n this.deactivateValue(currentValues);\n }\n }\n }\n\n public get values(): FilterValue[] {\n return this._values ?? this.valuesFromTableState;\n }\n\n private get valuesFromTableState(): FilterValue[] {\n if (!this._valuesFromTableState) {\n this._valuesFromTableState = this.getValuesFromTableState();\n }\n return this._valuesFromTableState;\n }\n\n public getArrayValue(): FilterValue[] {\n const value = this.getValue();\n return value === null\n ? []\n : toArray(value).map((v) => FilterValue.create(this, v));\n }\n\n public isValueActive(value: FilterValue): boolean {\n return this.getArrayValue().some((v) => v.equals(value));\n }\n\n public isActive(): boolean {\n return this.getArrayValue().length > 0;\n }\n\n public deactivateValue(value: FilterValue): void {\n const currentValueAsArray = this.getArrayValue();\n\n let updatedValue: unknown;\n\n if (this.mode === \"all\" || this.mode === \"some\") {\n updatedValue = currentValueAsArray.filter((v) => !v.equals(value));\n } else {\n updatedValue = null;\n }\n\n this.list.reactTable\n .getTableColumn(this.property)\n .setFilterValue(updatedValue);\n this.onFilterUpdateCallbacks.forEach((cb) => cb());\n }\n\n public hasChanged(): boolean {\n const currentValues = this.getArrayValue().map((v) => v.value);\n const initialValues =\n this.getInitialFilterValues()?.map((v) => v.value) ?? [];\n\n return (\n currentValues.length !== initialValues.length ||\n difference(currentValues, initialValues).length > 0\n );\n }\n\n private getInitialValues() {\n return this.getStoredSelectedIds() ?? this.defaultSelectedValues;\n }\n\n private getInitialFilterValues() {\n return this.getInitialValues()?.map((v) => FilterValue.create(this, v));\n }\n\n public resetValues(): void {\n let resetTo: unknown;\n const initialValues = this.getInitialValues();\n\n if (initialValues) {\n resetTo = initialValues;\n } else {\n if (this.mode === \"all\" || this.mode === \"some\") {\n resetTo = [];\n } else {\n resetTo = null;\n }\n }\n\n this.list.reactTable.getTableColumn(this.property).setFilterValue(resetTo);\n this.onFilterUpdateCallbacks.forEach((cb) => cb());\n }\n\n public clear(): void {\n this.list.reactTable.getTableColumn(this.property).setFilterValue(null);\n this.onFilterUpdateCallbacks.forEach((cb) => cb());\n }\n\n public toggleValue(newValue: FilterValue): void {\n const currentValueAsArray = this.getArrayValue();\n\n let updatedValue: unknown;\n\n if (this.mode === \"all\" || this.mode === \"some\") {\n if (newValue.isActive) {\n updatedValue = currentValueAsArray.filter((v) => !v.equals(newValue));\n } else {\n updatedValue = [...currentValueAsArray, newValue];\n }\n } else {\n updatedValue = newValue.isActive ? null : newValue;\n }\n\n this.list.reactTable\n .getTableColumn(this.property)\n .setFilterValue(updatedValue);\n this.onFilterUpdateCallbacks.forEach((cb) => cb());\n }\n\n public onFilterUpdated(cb: () => unknown): void {\n this.onFilterUpdateCallbacks.add(cb);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterValue.mjs","sources":["../../../../../../../../src/components/List/model/filter/FilterValue.ts"],"sourcesContent":["import type { Filter } from \"@/components/List/model/filter/Filter\";\nimport { isShallowEqual } from \"remeda\";\nimport { hash } from \"object-code\";\n\nexport class FilterValue {\n public readonly filter: Filter<unknown, string, unknown>;\n public readonly value: unknown;\n public readonly id: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private constructor(filter: Filter<any, any, any>, value: unknown) {\n this.filter = filter;\n\n if (typeof value === \"string\" && value.startsWith(\"FilterValueId@@\")) {\n this.value = filter.values.find((v) => v.id === value)?.value;\n this.id = value;\n } else {\n this.value = value;\n this.id = `FilterValueId@@${this.filter.property}@@${hash(this.value)}`;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public static create(filter: Filter<any, any, any>, value: unknown) {\n if (value instanceof FilterValue) {\n return value;\n }\n return new FilterValue(filter, value);\n }\n\n public equals(otherValue: FilterValue) {\n return isShallowEqual(this.value, otherValue.value);\n }\n\n public get isActive() {\n return this.filter.isValueActive(this);\n }\n\n public render() {\n return this.filter.renderItem(this.value as never);\n }\n\n public toggle() {\n this.filter.toggleValue(this);\n }\n\n public deactivate() {\n this.filter.deactivateValue(this);\n }\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,
|
|
1
|
+
{"version":3,"file":"FilterValue.mjs","sources":["../../../../../../../../src/components/List/model/filter/FilterValue.ts"],"sourcesContent":["import type { Filter } from \"@/components/List/model/filter/Filter\";\nimport { isShallowEqual } from \"remeda\";\nimport { hash } from \"object-code\";\n\nexport class FilterValue {\n public readonly filter: Filter<unknown, string, unknown>;\n public readonly value: unknown;\n public readonly id: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private constructor(filter: Filter<any, any, any>, value: unknown) {\n this.filter = filter;\n\n if (typeof value === \"string\" && value.startsWith(\"FilterValueId@@\")) {\n this.value = filter.values.find((v) => v.id === value)?.value;\n this.id = value;\n } else {\n this.value = value;\n this.id = `FilterValueId@@${this.filter.property}@@${hash(this.value)}`;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public static create(filter: Filter<any, any, any>, value: unknown) {\n if (value instanceof FilterValue) {\n return value;\n }\n return new FilterValue(filter, value);\n }\n\n public equals(otherValue: FilterValue) {\n return isShallowEqual(this.value, otherValue.value);\n }\n\n public get isActive() {\n return this.filter.isValueActive(this);\n }\n\n public render() {\n return this.filter.renderItem(this.value as never);\n }\n\n public toggle() {\n this.filter.toggleValue(this);\n }\n\n public deactivate() {\n this.filter.deactivateValue(this);\n }\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,WAAA,CAAY;AAAA,EACP,MAAA;AAAA,EACA,KAAA;AAAA,EACA,EAAA;AAAA;AAAA,EAGR,WAAA,CAAY,QAA+B,KAAA,EAAgB;AACjE,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAEd,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,UAAA,CAAW,iBAAiB,CAAA,EAAG;AACpE,MAAA,IAAA,CAAK,KAAA,GAAQ,OAAO,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,KAAK,CAAA,EAAG,KAAA;AACxD,MAAA,IAAA,CAAK,EAAA,GAAK,KAAA;AAAA,IACZ,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,MAAA,IAAA,CAAK,EAAA,GAAK,kBAAkB,IAAA,CAAK,MAAA,CAAO,QAAQ,CAAA,EAAA,EAAK,IAAA,CAAK,IAAA,CAAK,KAAK,CAAC,CAAA,CAAA;AAAA,IACvE;AAAA,EACF;AAAA;AAAA,EAGA,OAAc,MAAA,CAAO,MAAA,EAA+B,KAAA,EAAgB;AAClE,IAAA,IAAI,iBAAiB,WAAA,EAAa;AAChC,MAAA,OAAO,KAAA;AAAA,IACT;AACA,IAAA,OAAO,IAAI,WAAA,CAAY,MAAA,EAAQ,KAAK,CAAA;AAAA,EACtC;AAAA,EAEO,OAAO,UAAA,EAAyB;AACrC,IAAA,OAAO,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,UAAA,CAAW,KAAK,CAAA;AAAA,EACpD;AAAA,EAEA,IAAW,QAAA,GAAW;AACpB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,aAAA,CAAc,IAAI,CAAA;AAAA,EACvC;AAAA,EAEO,MAAA,GAAS;AACd,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW,IAAA,CAAK,KAAc,CAAA;AAAA,EACnD;AAAA,EAEO,MAAA,GAAS;AACd,IAAA,IAAA,CAAK,MAAA,CAAO,YAAY,IAAI,CAAA;AAAA,EAC9B;AAAA,EAEO,UAAA,GAAa;AAClB,IAAA,IAAA,CAAK,MAAA,CAAO,gBAAgB,IAAI,CAAA;AAAA,EAClC;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.mjs","sources":["../../../../../../../../src/components/List/model/item/Item.ts"],"sourcesContent":["import type { ItemCollection } from \"@/components/List/model/item/ItemCollection\";\nimport type { Row } from \"@tanstack/react-table\";\n\nexport class Item<T> {\n public readonly id: string;\n public readonly data: T;\n public readonly collection: ItemCollection<T>;\n\n public constructor(collection: ItemCollection<T>, id: string, data: T) {\n this.collection = collection;\n this.id = id;\n this.data = data;\n }\n\n public static fromRow<T>(\n collection: ItemCollection<T>,\n row: Row<T>,\n ): Item<T> {\n return new Item(collection, row.id, row.original);\n }\n}\n"],"names":[],"mappings":"AAGO,MAAM,
|
|
1
|
+
{"version":3,"file":"Item.mjs","sources":["../../../../../../../../src/components/List/model/item/Item.ts"],"sourcesContent":["import type { ItemCollection } from \"@/components/List/model/item/ItemCollection\";\nimport type { Row } from \"@tanstack/react-table\";\n\nexport class Item<T> {\n public readonly id: string;\n public readonly data: T;\n public readonly collection: ItemCollection<T>;\n\n public constructor(collection: ItemCollection<T>, id: string, data: T) {\n this.collection = collection;\n this.id = id;\n this.data = data;\n }\n\n public static fromRow<T>(\n collection: ItemCollection<T>,\n row: Row<T>,\n ): Item<T> {\n return new Item(collection, row.id, row.original);\n }\n}\n"],"names":[],"mappings":"AAGO,MAAM,IAAA,CAAQ;AAAA,EACH,EAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA;AAAA,EAET,WAAA,CAAY,UAAA,EAA+B,EAAA,EAAY,IAAA,EAAS;AACrE,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,IAAA,IAAA,CAAK,EAAA,GAAK,EAAA;AACV,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACd;AAAA,EAEA,OAAc,OAAA,CACZ,UAAA,EACA,GAAA,EACS;AACT,IAAA,OAAO,IAAI,IAAA,CAAK,UAAA,EAAY,GAAA,CAAI,EAAA,EAAI,IAAI,QAAQ,CAAA;AAAA,EAClD;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemCollection.mjs","sources":["../../../../../../../../src/components/List/model/item/ItemCollection.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport { Item } from \"@/components/List/model/item/Item\";\n\nexport class ItemCollection<T> {\n public readonly list: List<T>;\n\n public constructor(list: List<T>) {\n this.list = list;\n }\n\n public get entries(): Item<T>[] {\n return this.list.reactTable.table\n .getRowModel()\n .rows.map((r) => Item.fromRow(this, r));\n }\n}\n"],"names":[],"mappings":";;AAGO,MAAM,
|
|
1
|
+
{"version":3,"file":"ItemCollection.mjs","sources":["../../../../../../../../src/components/List/model/item/ItemCollection.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport { Item } from \"@/components/List/model/item/Item\";\n\nexport class ItemCollection<T> {\n public readonly list: List<T>;\n\n public constructor(list: List<T>) {\n this.list = list;\n }\n\n public get entries(): Item<T>[] {\n return this.list.reactTable.table\n .getRowModel()\n .rows.map((r) => Item.fromRow(this, r));\n }\n}\n"],"names":[],"mappings":";;AAGO,MAAM,cAAA,CAAkB;AAAA,EACb,IAAA;AAAA,EAET,YAAY,IAAA,EAAe;AAChC,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACd;AAAA,EAEA,IAAW,OAAA,GAAqB;AAC9B,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,KAAA,CACzB,aAAY,CACZ,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM,IAAA,CAAK,OAAA,CAAQ,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,EAC1C;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemView.mjs","sources":["../../../../../../../../src/components/List/model/item/ItemView.ts"],"sourcesContent":["import type { ReactElement, ReactNode } from \"react\";\nimport { createElement } from \"react\";\nimport type { RenderItemFn } from \"@/components/List/model/item/types\";\nimport type List from \"@/components/List/model/List\";\n\nexport interface ItemViewShape<T> {\n textValue?: (data: T) => string;\n href?: (data: T) => string;\n defaultExpanded?: (data: T) => boolean;\n renderFn?: RenderItemFn<T>;\n fallback?: ReactElement;\n showList?: boolean;\n showTiles?: boolean;\n tileMaxWidth?: number;\n}\n\nexport class ItemView<T> {\n public readonly list: List<T>;\n public readonly textValue?: (data: T) => string;\n public readonly href?: (data: T) => string;\n public readonly defaultExpanded?: (data: T) => boolean;\n public readonly fallback?: ReactElement;\n public readonly showTiles?: boolean;\n public readonly showList?: boolean;\n public readonly tileMaxWidth: number;\n private readonly renderFn?: RenderItemFn<T>;\n\n public constructor(list: List<T>, shape: ItemViewShape<T> = {}) {\n const {\n fallback,\n textValue,\n href,\n defaultExpanded,\n renderFn,\n showTiles,\n showList = true,\n tileMaxWidth = 230,\n } = shape;\n this.list = list;\n this.textValue = textValue;\n this.renderFn = renderFn;\n this.href = href;\n this.defaultExpanded = defaultExpanded;\n this.fallback = fallback;\n this.showTiles = showTiles;\n this.showList = showList;\n this.tileMaxWidth = tileMaxWidth;\n }\n\n private static fallbackRenderItemFn: RenderItemFn<never> = (item) =>\n createElement(\"pre\", undefined, JSON.stringify(item));\n\n public render(data: T): ReactNode {\n const renderFn = (this.renderFn ??\n ItemView.fallbackRenderItemFn) as RenderItemFn<T>;\n return renderFn(data as never, this.list);\n }\n}\n"],"names":[],"mappings":";;AAgBO,MAAM,
|
|
1
|
+
{"version":3,"file":"ItemView.mjs","sources":["../../../../../../../../src/components/List/model/item/ItemView.ts"],"sourcesContent":["import type { ReactElement, ReactNode } from \"react\";\nimport { createElement } from \"react\";\nimport type { RenderItemFn } from \"@/components/List/model/item/types\";\nimport type List from \"@/components/List/model/List\";\n\nexport interface ItemViewShape<T> {\n textValue?: (data: T) => string;\n href?: (data: T) => string;\n defaultExpanded?: (data: T) => boolean;\n renderFn?: RenderItemFn<T>;\n fallback?: ReactElement;\n showList?: boolean;\n showTiles?: boolean;\n tileMaxWidth?: number;\n}\n\nexport class ItemView<T> {\n public readonly list: List<T>;\n public readonly textValue?: (data: T) => string;\n public readonly href?: (data: T) => string;\n public readonly defaultExpanded?: (data: T) => boolean;\n public readonly fallback?: ReactElement;\n public readonly showTiles?: boolean;\n public readonly showList?: boolean;\n public readonly tileMaxWidth: number;\n private readonly renderFn?: RenderItemFn<T>;\n\n public constructor(list: List<T>, shape: ItemViewShape<T> = {}) {\n const {\n fallback,\n textValue,\n href,\n defaultExpanded,\n renderFn,\n showTiles,\n showList = true,\n tileMaxWidth = 230,\n } = shape;\n this.list = list;\n this.textValue = textValue;\n this.renderFn = renderFn;\n this.href = href;\n this.defaultExpanded = defaultExpanded;\n this.fallback = fallback;\n this.showTiles = showTiles;\n this.showList = showList;\n this.tileMaxWidth = tileMaxWidth;\n }\n\n private static fallbackRenderItemFn: RenderItemFn<never> = (item) =>\n createElement(\"pre\", undefined, JSON.stringify(item));\n\n public render(data: T): ReactNode {\n const renderFn = (this.renderFn ??\n ItemView.fallbackRenderItemFn) as RenderItemFn<T>;\n return renderFn(data as never, this.list);\n }\n}\n"],"names":[],"mappings":";;AAgBO,MAAM,QAAA,CAAY;AAAA,EACP,IAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,eAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACC,QAAA;AAAA,EAEV,WAAA,CAAY,IAAA,EAAe,KAAA,GAA0B,EAAC,EAAG;AAC9D,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,IAAA;AAAA,MACA,eAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA,GAAW,IAAA;AAAA,MACX,YAAA,GAAe;AAAA,KACjB,GAAI,KAAA;AACJ,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AACjB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,eAAA,GAAkB,eAAA;AACvB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AACjB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AAAA,EACtB;AAAA,EAEA,OAAe,oBAAA,GAA4C,CAAC,IAAA,KAC1D,aAAA,CAAc,OAAO,MAAA,EAAW,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,EAE/C,OAAO,IAAA,EAAoB;AAChC,IAAA,MAAM,QAAA,GAAY,IAAA,CAAK,QAAA,IACrB,QAAA,CAAS,oBAAA;AACX,IAAA,OAAO,QAAA,CAAS,IAAA,EAAe,IAAA,CAAK,IAAI,CAAA;AAAA,EAC1C;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalLoader.mjs","sources":["../../../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n DataLoaderOptions,\n DataLoaderResult,\n DataSource,\n IncrementalLoaderShape,\n} from \"@/components/List/model/loading/types\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { getAsyncResource } from \"@mittwald/react-use-promise\";\nimport { useEffect } from \"react\";\nimport { times } from \"remeda\";\nimport { IncrementalLoaderState } from \"@/components/List/model/loading/IncrementalLoaderState\";\nimport { hash } from \"object-code\";\nimport type { PropertyName } from \"@/components/List/model/types\";\n\ntype AsyncResourceLoadingState = AsyncResource[\"state\"][\"value\"];\n\nconst emptyData: never[] = [];\n\nexport class IncrementalLoader<T> {\n private readonly list: List<T>;\n private readonly dataSource: DataSource<T>;\n public readonly manualSorting: boolean;\n public readonly manualFiltering: boolean;\n public readonly manualPagination: boolean;\n public readonly loaderState: IncrementalLoaderState<T>;\n public readonly staticDataProperties: PropertyName<T>[] = [];\n\n private constructor(list: List<T>, shape: IncrementalLoaderShape<T> = {}) {\n const { source } = shape;\n\n this.dataSource = source ?? { staticData: emptyData };\n\n const manualPagination =\n \"manualPagination\" in this.dataSource\n ? this.dataSource.manualPagination\n : undefined;\n\n const manualFiltering =\n \"manualFiltering\" in this.dataSource\n ? this.dataSource.manualFiltering\n : undefined;\n\n const manualSorting =\n \"manualSorting\" in this.dataSource\n ? this.dataSource.manualSorting\n : undefined;\n\n this.list = list;\n this.loaderState = IncrementalLoaderState.useNew<T>();\n\n this.manualPagination = manualPagination ?? false;\n this.manualFiltering = manualFiltering ?? this.manualPagination;\n this.manualSorting = manualSorting ?? this.manualPagination;\n this.list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n this.list.search?.onUpdated(() => this.reset());\n\n this.initStaticDataProperties();\n }\n\n public static useNew<T>(\n list: List<T>,\n shape: IncrementalLoaderShape<T> = {},\n ): IncrementalLoader<T> {\n return new IncrementalLoader(list, shape);\n }\n\n private initStaticDataProperties() {\n const addPropertiesOfDataEntry = (data: unknown) => {\n if (typeof data !== \"object\" || data === null) {\n return;\n }\n\n (Object.keys(data) as PropertyName<T>[])\n .filter((p) => !this.staticDataProperties.includes(p))\n .forEach((p) => {\n this.staticDataProperties.push(p);\n });\n };\n\n if (\"staticData\" in this.dataSource) {\n this.dataSource.staticData\n // collect properties from just the first 100 items\n .slice(0, 100)\n .forEach(addPropertiesOfDataEntry);\n }\n }\n\n private reset(): void {\n this.loaderState.reset();\n }\n\n public useIsLoading(): boolean {\n return this.loaderState.useIsLoading();\n }\n\n public useIsInitiallyLoading(): boolean {\n return this.useIsLoading() && this.list.batches.getBatchIndex() === 0;\n }\n\n public useData(): T[] {\n return this.loaderState.useMergedData();\n }\n\n public getLoaderInvocationHooks(): (() => void)[] {\n const batchesCount = times(this.list.batches.getBatchIndex() + 1, (i) => i);\n return batchesCount.map((i) => () => {\n this.useLoadBatch(i);\n });\n }\n\n private useLoadBatch(batchIndex: number): void {\n const asyncResource = this.getBatchDataAsyncResource(batchIndex);\n\n asyncResource.use({\n useSuspense: false,\n });\n\n this.useObserveBatchData(asyncResource, batchIndex);\n this.useObserveBatchLoadingState(asyncResource, batchIndex);\n }\n\n private useObserveBatchLoadingState(\n asyncResource: AsyncResource<DataLoaderResult<T>>,\n batchIndex: number,\n ): void {\n const setNewState = (newState: AsyncResourceLoadingState) => {\n this.loaderState.setBatchLoadingState(\n batchIndex,\n this.loaderState.isBatchLoaded(batchIndex) ? \"loaded\" : newState,\n );\n };\n\n useEffect(() => {\n setNewState(asyncResource.state.value);\n return asyncResource.state.observe(setNewState);\n }, [asyncResource, batchIndex]);\n }\n\n private useObserveBatchData(\n asyncResource: AsyncResource<DataLoaderResult<T>>,\n batchIndex: number,\n ): void {\n const setData = (loaderResult: DataLoaderResult<T>): void => {\n const { data, itemTotalCount } = loaderResult;\n this.loaderState.setDataBatch(batchIndex, data);\n\n if (itemTotalCount !== undefined) {\n this.list.batches.updateItemTotalCount(itemTotalCount);\n }\n };\n\n useEffect(() => {\n if (asyncResource.value.value.isSet) {\n setData(asyncResource.value.value.value);\n }\n\n return asyncResource.value.observe((asyncData) => {\n if (asyncData.isSet) {\n setData(asyncData.value);\n }\n });\n }, [asyncResource, batchIndex]);\n }\n\n private getDataLoaderOptions(batchIndex: number): DataLoaderOptions<T> {\n return {\n pagination: this.manualPagination\n ? {\n limit: this.list.batches.batchSize,\n offset: this.list.batches.batchSize * batchIndex,\n }\n : undefined,\n\n sorting: this.manualSorting\n ? (Object.fromEntries(\n this.list.sorting\n .filter((s) => s.isSorted())\n .map((s) => [s.property, s.direction]),\n ) as DataLoaderOptions<T>[\"sorting\"])\n : undefined,\n\n filtering: this.manualFiltering\n ? (Object.fromEntries(\n this.list.filters\n .filter((f) => f.getValue() !== null)\n .map((f) => [\n f.property,\n {\n mode: f.mode,\n values: f.getArrayValue().map((v) => v.value),\n },\n ]),\n ) as DataLoaderOptions<T>[\"filtering\"])\n : undefined,\n\n searchString: this.manualFiltering\n ? this.list.reactTable.searchString\n : undefined,\n };\n }\n\n private getBatchDataAsyncResource(\n batchIndex: number,\n ): AsyncResource<DataLoaderResult<T>> {\n const dataSource = this.dataSource;\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n\n if (\"staticData\" in dataSource) {\n return getAsyncResource(\n async (staticData) => ({\n data: staticData as T[],\n itemTotalCount: staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies ? hash(dependencies).toString() : undefined;\n return getAsyncResource(asyncLoader, [loaderOptions], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n const asyncResourceFactory = dataSource.asyncResourceFactory;\n return asyncResourceFactory(loaderOptions);\n }\n\n throw new Error(\"Unknown data source\");\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IncrementalLoader.mjs","sources":["../../../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n DataLoaderOptions,\n DataLoaderResult,\n DataSource,\n IncrementalLoaderShape,\n} from \"@/components/List/model/loading/types\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { getAsyncResource } from \"@mittwald/react-use-promise\";\nimport { useEffect } from \"react\";\nimport { times } from \"remeda\";\nimport { IncrementalLoaderState } from \"@/components/List/model/loading/IncrementalLoaderState\";\nimport { hash } from \"object-code\";\nimport type { PropertyName } from \"@/components/List/model/types\";\n\ntype AsyncResourceLoadingState = AsyncResource[\"state\"][\"value\"];\n\nconst emptyData: never[] = [];\n\nexport class IncrementalLoader<T> {\n private readonly list: List<T>;\n private readonly dataSource: DataSource<T>;\n public readonly manualSorting: boolean;\n public readonly manualFiltering: boolean;\n public readonly manualPagination: boolean;\n public readonly loaderState: IncrementalLoaderState<T>;\n public readonly staticDataProperties: PropertyName<T>[] = [];\n\n private constructor(list: List<T>, shape: IncrementalLoaderShape<T> = {}) {\n const { source } = shape;\n\n this.dataSource = source ?? { staticData: emptyData };\n\n const manualPagination =\n \"manualPagination\" in this.dataSource\n ? this.dataSource.manualPagination\n : undefined;\n\n const manualFiltering =\n \"manualFiltering\" in this.dataSource\n ? this.dataSource.manualFiltering\n : undefined;\n\n const manualSorting =\n \"manualSorting\" in this.dataSource\n ? this.dataSource.manualSorting\n : undefined;\n\n this.list = list;\n this.loaderState = IncrementalLoaderState.useNew<T>();\n\n this.manualPagination = manualPagination ?? false;\n this.manualFiltering = manualFiltering ?? this.manualPagination;\n this.manualSorting = manualSorting ?? this.manualPagination;\n this.list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n this.list.search?.onUpdated(() => this.reset());\n\n this.initStaticDataProperties();\n }\n\n public static useNew<T>(\n list: List<T>,\n shape: IncrementalLoaderShape<T> = {},\n ): IncrementalLoader<T> {\n return new IncrementalLoader(list, shape);\n }\n\n private initStaticDataProperties() {\n const addPropertiesOfDataEntry = (data: unknown) => {\n if (typeof data !== \"object\" || data === null) {\n return;\n }\n\n (Object.keys(data) as PropertyName<T>[])\n .filter((p) => !this.staticDataProperties.includes(p))\n .forEach((p) => {\n this.staticDataProperties.push(p);\n });\n };\n\n if (\"staticData\" in this.dataSource) {\n this.dataSource.staticData\n // collect properties from just the first 100 items\n .slice(0, 100)\n .forEach(addPropertiesOfDataEntry);\n }\n }\n\n private reset(): void {\n this.loaderState.reset();\n }\n\n public useIsLoading(): boolean {\n return this.loaderState.useIsLoading();\n }\n\n public useIsInitiallyLoading(): boolean {\n return this.useIsLoading() && this.list.batches.getBatchIndex() === 0;\n }\n\n public useData(): T[] {\n return this.loaderState.useMergedData();\n }\n\n public getLoaderInvocationHooks(): (() => void)[] {\n const batchesCount = times(this.list.batches.getBatchIndex() + 1, (i) => i);\n return batchesCount.map((i) => () => {\n this.useLoadBatch(i);\n });\n }\n\n private useLoadBatch(batchIndex: number): void {\n const asyncResource = this.getBatchDataAsyncResource(batchIndex);\n\n asyncResource.use({\n useSuspense: false,\n });\n\n this.useObserveBatchData(asyncResource, batchIndex);\n this.useObserveBatchLoadingState(asyncResource, batchIndex);\n }\n\n private useObserveBatchLoadingState(\n asyncResource: AsyncResource<DataLoaderResult<T>>,\n batchIndex: number,\n ): void {\n const setNewState = (newState: AsyncResourceLoadingState) => {\n this.loaderState.setBatchLoadingState(\n batchIndex,\n this.loaderState.isBatchLoaded(batchIndex) ? \"loaded\" : newState,\n );\n };\n\n useEffect(() => {\n setNewState(asyncResource.state.value);\n return asyncResource.state.observe(setNewState);\n }, [asyncResource, batchIndex]);\n }\n\n private useObserveBatchData(\n asyncResource: AsyncResource<DataLoaderResult<T>>,\n batchIndex: number,\n ): void {\n const setData = (loaderResult: DataLoaderResult<T>): void => {\n const { data, itemTotalCount } = loaderResult;\n this.loaderState.setDataBatch(batchIndex, data);\n\n if (itemTotalCount !== undefined) {\n this.list.batches.updateItemTotalCount(itemTotalCount);\n }\n };\n\n useEffect(() => {\n if (asyncResource.value.value.isSet) {\n setData(asyncResource.value.value.value);\n }\n\n return asyncResource.value.observe((asyncData) => {\n if (asyncData.isSet) {\n setData(asyncData.value);\n }\n });\n }, [asyncResource, batchIndex]);\n }\n\n private getDataLoaderOptions(batchIndex: number): DataLoaderOptions<T> {\n return {\n pagination: this.manualPagination\n ? {\n limit: this.list.batches.batchSize,\n offset: this.list.batches.batchSize * batchIndex,\n }\n : undefined,\n\n sorting: this.manualSorting\n ? (Object.fromEntries(\n this.list.sorting\n .filter((s) => s.isSorted())\n .map((s) => [s.property, s.direction]),\n ) as DataLoaderOptions<T>[\"sorting\"])\n : undefined,\n\n filtering: this.manualFiltering\n ? (Object.fromEntries(\n this.list.filters\n .filter((f) => f.getValue() !== null)\n .map((f) => [\n f.property,\n {\n mode: f.mode,\n values: f.getArrayValue().map((v) => v.value),\n },\n ]),\n ) as DataLoaderOptions<T>[\"filtering\"])\n : undefined,\n\n searchString: this.manualFiltering\n ? this.list.reactTable.searchString\n : undefined,\n };\n }\n\n private getBatchDataAsyncResource(\n batchIndex: number,\n ): AsyncResource<DataLoaderResult<T>> {\n const dataSource = this.dataSource;\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n\n if (\"staticData\" in dataSource) {\n return getAsyncResource(\n async (staticData) => ({\n data: staticData as T[],\n itemTotalCount: staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies ? hash(dependencies).toString() : undefined;\n return getAsyncResource(asyncLoader, [loaderOptions], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n const asyncResourceFactory = dataSource.asyncResourceFactory;\n return asyncResourceFactory(loaderOptions);\n }\n\n throw new Error(\"Unknown data source\");\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalLoaderState.mjs","sources":["../../../../../../../../src/components/List/model/loading/IncrementalLoaderState.ts"],"sourcesContent":["import type { ListData } from \"@/components/List/model/loading/types\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { action, computed, makeObservable, observable } from \"mobx\";\nimport { useStatic } from \"@/lib/hooks/useStatic\";\n\ntype AsyncResourceLoadingState = AsyncResource[\"state\"][\"value\"];\ntype DataBatches<T> = ListData<T>[];\ntype BatchesLoadingState = AsyncResourceLoadingState[];\n\nexport class IncrementalLoaderState<T> {\n public dataBatches: DataBatches<T> = [];\n public prevDataBatches: DataBatches<T> = [];\n public batchLoadingStates: BatchesLoadingState = [\"void\"];\n\n private constructor() {\n makeObservable(this, {\n prevDataBatches: false,\n useMergedData: false,\n useIsLoading: false,\n dataBatches: observable.shallow,\n batchLoadingStates: observable.shallow,\n mergedData: computed,\n isLoading: computed,\n reset: action.bound,\n setDataBatch: action.bound,\n setBatchLoadingState: action.bound,\n });\n }\n\n public static useNew<T>(): IncrementalLoaderState<T> {\n return useStatic(() => new IncrementalLoaderState<T>());\n }\n\n public reset(): void {\n this.batchLoadingStates = [];\n this.dataBatches = [];\n }\n\n public setDataBatch(index: number, data: ListData<T>): void {\n if (this.dataBatches.length === 0) {\n this.prevDataBatches = [];\n }\n\n if (this.dataBatches[index] !== data) {\n this.dataBatches[index] = data;\n this.prevDataBatches[index] = data;\n }\n }\n\n public setBatchLoadingState(\n index: number,\n state: AsyncResourceLoadingState,\n ): void {\n if (this.batchLoadingStates[index] !== state) {\n this.batchLoadingStates[index] = state;\n }\n }\n\n public get mergedData(): T[] {\n const dataBatches =\n this.dataBatches.length === 0 ? this.prevDataBatches : this.dataBatches;\n\n return dataBatches.flatMap((d) => d);\n }\n\n public useMergedData(): T[] {\n return useSelector(() => this.mergedData, [this.prevDataBatches]);\n }\n\n public get isLoading(): boolean {\n return this.batchLoadingStates.some((s) => s === \"loading\" || s === \"void\");\n }\n\n public useIsLoading(): boolean {\n return useSelector(() => this.isLoading);\n }\n\n public isBatchLoaded(batchIndex: number) {\n return batchIndex in this.dataBatches;\n }\n}\n"],"names":[],"mappings":";;;;AAUO,MAAM,
|
|
1
|
+
{"version":3,"file":"IncrementalLoaderState.mjs","sources":["../../../../../../../../src/components/List/model/loading/IncrementalLoaderState.ts"],"sourcesContent":["import type { ListData } from \"@/components/List/model/loading/types\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { action, computed, makeObservable, observable } from \"mobx\";\nimport { useStatic } from \"@/lib/hooks/useStatic\";\n\ntype AsyncResourceLoadingState = AsyncResource[\"state\"][\"value\"];\ntype DataBatches<T> = ListData<T>[];\ntype BatchesLoadingState = AsyncResourceLoadingState[];\n\nexport class IncrementalLoaderState<T> {\n public dataBatches: DataBatches<T> = [];\n public prevDataBatches: DataBatches<T> = [];\n public batchLoadingStates: BatchesLoadingState = [\"void\"];\n\n private constructor() {\n makeObservable(this, {\n prevDataBatches: false,\n useMergedData: false,\n useIsLoading: false,\n dataBatches: observable.shallow,\n batchLoadingStates: observable.shallow,\n mergedData: computed,\n isLoading: computed,\n reset: action.bound,\n setDataBatch: action.bound,\n setBatchLoadingState: action.bound,\n });\n }\n\n public static useNew<T>(): IncrementalLoaderState<T> {\n return useStatic(() => new IncrementalLoaderState<T>());\n }\n\n public reset(): void {\n this.batchLoadingStates = [];\n this.dataBatches = [];\n }\n\n public setDataBatch(index: number, data: ListData<T>): void {\n if (this.dataBatches.length === 0) {\n this.prevDataBatches = [];\n }\n\n if (this.dataBatches[index] !== data) {\n this.dataBatches[index] = data;\n this.prevDataBatches[index] = data;\n }\n }\n\n public setBatchLoadingState(\n index: number,\n state: AsyncResourceLoadingState,\n ): void {\n if (this.batchLoadingStates[index] !== state) {\n this.batchLoadingStates[index] = state;\n }\n }\n\n public get mergedData(): T[] {\n const dataBatches =\n this.dataBatches.length === 0 ? this.prevDataBatches : this.dataBatches;\n\n return dataBatches.flatMap((d) => d);\n }\n\n public useMergedData(): T[] {\n return useSelector(() => this.mergedData, [this.prevDataBatches]);\n }\n\n public get isLoading(): boolean {\n return this.batchLoadingStates.some((s) => s === \"loading\" || s === \"void\");\n }\n\n public useIsLoading(): boolean {\n return useSelector(() => this.isLoading);\n }\n\n public isBatchLoaded(batchIndex: number) {\n return batchIndex in this.dataBatches;\n }\n}\n"],"names":[],"mappings":";;;;AAUO,MAAM,sBAAA,CAA0B;AAAA,EAC9B,cAA8B,EAAC;AAAA,EAC/B,kBAAkC,EAAC;AAAA,EACnC,kBAAA,GAA0C,CAAC,MAAM,CAAA;AAAA,EAEhD,WAAA,GAAc;AACpB,IAAA,cAAA,CAAe,IAAA,EAAM;AAAA,MACnB,eAAA,EAAiB,KAAA;AAAA,MACjB,aAAA,EAAe,KAAA;AAAA,MACf,YAAA,EAAc,KAAA;AAAA,MACd,aAAa,UAAA,CAAW,OAAA;AAAA,MACxB,oBAAoB,UAAA,CAAW,OAAA;AAAA,MAC/B,UAAA,EAAY,QAAA;AAAA,MACZ,SAAA,EAAW,QAAA;AAAA,MACX,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,cAAc,MAAA,CAAO,KAAA;AAAA,MACrB,sBAAsB,MAAA,CAAO;AAAA,KAC9B,CAAA;AAAA,EACH;AAAA,EAEA,OAAc,MAAA,GAAuC;AACnD,IAAA,OAAO,SAAA,CAAU,MAAM,IAAI,sBAAA,EAA2B,CAAA;AAAA,EACxD;AAAA,EAEO,KAAA,GAAc;AACnB,IAAA,IAAA,CAAK,qBAAqB,EAAC;AAC3B,IAAA,IAAA,CAAK,cAAc,EAAC;AAAA,EACtB;AAAA,EAEO,YAAA,CAAa,OAAe,IAAA,EAAyB;AAC1D,IAAA,IAAI,IAAA,CAAK,WAAA,CAAY,MAAA,KAAW,CAAA,EAAG;AACjC,MAAA,IAAA,CAAK,kBAAkB,EAAC;AAAA,IAC1B;AAEA,IAAA,IAAI,IAAA,CAAK,WAAA,CAAY,KAAK,CAAA,KAAM,IAAA,EAAM;AACpC,MAAA,IAAA,CAAK,WAAA,CAAY,KAAK,CAAA,GAAI,IAAA;AAC1B,MAAA,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA,GAAI,IAAA;AAAA,IAChC;AAAA,EACF;AAAA,EAEO,oBAAA,CACL,OACA,KAAA,EACM;AACN,IAAA,IAAI,IAAA,CAAK,kBAAA,CAAmB,KAAK,CAAA,KAAM,KAAA,EAAO;AAC5C,MAAA,IAAA,CAAK,kBAAA,CAAmB,KAAK,CAAA,GAAI,KAAA;AAAA,IACnC;AAAA,EACF;AAAA,EAEA,IAAW,UAAA,GAAkB;AAC3B,IAAA,MAAM,cACJ,IAAA,CAAK,WAAA,CAAY,WAAW,CAAA,GAAI,IAAA,CAAK,kBAAkB,IAAA,CAAK,WAAA;AAE9D,IAAA,OAAO,WAAA,CAAY,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAA;AAAA,EACrC;AAAA,EAEO,aAAA,GAAqB;AAC1B,IAAA,OAAO,YAAY,MAAM,IAAA,CAAK,YAAY,CAAC,IAAA,CAAK,eAAe,CAAC,CAAA;AAAA,EAClE;AAAA,EAEA,IAAW,SAAA,GAAqB;AAC9B,IAAA,OAAO,IAAA,CAAK,mBAAmB,IAAA,CAAK,CAAC,MAAM,CAAA,KAAM,SAAA,IAAa,MAAM,MAAM,CAAA;AAAA,EAC5E;AAAA,EAEO,YAAA,GAAwB;AAC7B,IAAA,OAAO,WAAA,CAAY,MAAM,IAAA,CAAK,SAAS,CAAA;AAAA,EACzC;AAAA,EAEO,cAAc,UAAA,EAAoB;AACvC,IAAA,OAAO,cAAc,IAAA,CAAK,WAAA;AAAA,EAC5B;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchesController.mjs","sources":["../../../../../../../../src/components/List/model/pagination/BatchesController.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type { BatchesControllerShape } from \"@/components/List/model/pagination/types\";\nimport type { Table } from \"@tanstack/react-table\";\n\nexport class BatchesController<T> {\n public readonly batchSize: number;\n private readonly list: List<T>;\n\n public constructor(list: List<T>, shape: BatchesControllerShape = {}) {\n const { batchSize = 20 } = shape;\n\n this.list = list;\n this.batchSize = batchSize;\n list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n list.search?.onUpdated(() => this.reset());\n }\n\n private get reactTable(): Table<T> {\n return this.list.reactTable.table;\n }\n\n public getBatchIndex(): number {\n return this.reactTable.getState().pagination.pageIndex;\n }\n\n public hasNextBatch(): boolean {\n if (this.list.loader.manualPagination) {\n return this.reactTable.getCanNextPage();\n }\n return (\n this.reactTable.getState().pagination.pageSize < this.getTotalItemsCount()\n );\n }\n\n public getTotalItemsCount(): number {\n if (this.list.loader.manualPagination) {\n return this.reactTable.getRowCount();\n }\n return this.reactTable.getFilteredRowModel().rows.length;\n }\n\n public getVisibleItemsCount(): number {\n return this.reactTable.getRowModel().rows.length ?? 0;\n }\n\n public updateItemTotalCount(value: number): void {\n this.reactTable.setOptions((s) => ({\n ...s,\n rowCount: value,\n }));\n }\n\n public reset(): void {\n if (this.list.loader.manualFiltering) {\n this.updateItemTotalCount(0);\n }\n this.reactTable.setPagination(() => ({\n pageIndex: 0,\n pageSize: this.batchSize,\n }));\n }\n\n public nextBatch(): void {\n if (this.list.loader.manualPagination) {\n this.reactTable.nextPage();\n } else {\n const newSize =\n this.reactTable.getState().pagination.pageSize + this.batchSize;\n\n this.reactTable.setPagination((prev) => ({\n ...prev,\n pageSize: newSize,\n }));\n }\n }\n}\n"],"names":[],"mappings":"AAIO,MAAM,
|
|
1
|
+
{"version":3,"file":"BatchesController.mjs","sources":["../../../../../../../../src/components/List/model/pagination/BatchesController.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type { BatchesControllerShape } from \"@/components/List/model/pagination/types\";\nimport type { Table } from \"@tanstack/react-table\";\n\nexport class BatchesController<T> {\n public readonly batchSize: number;\n private readonly list: List<T>;\n\n public constructor(list: List<T>, shape: BatchesControllerShape = {}) {\n const { batchSize = 20 } = shape;\n\n this.list = list;\n this.batchSize = batchSize;\n list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n list.search?.onUpdated(() => this.reset());\n }\n\n private get reactTable(): Table<T> {\n return this.list.reactTable.table;\n }\n\n public getBatchIndex(): number {\n return this.reactTable.getState().pagination.pageIndex;\n }\n\n public hasNextBatch(): boolean {\n if (this.list.loader.manualPagination) {\n return this.reactTable.getCanNextPage();\n }\n return (\n this.reactTable.getState().pagination.pageSize < this.getTotalItemsCount()\n );\n }\n\n public getTotalItemsCount(): number {\n if (this.list.loader.manualPagination) {\n return this.reactTable.getRowCount();\n }\n return this.reactTable.getFilteredRowModel().rows.length;\n }\n\n public getVisibleItemsCount(): number {\n return this.reactTable.getRowModel().rows.length ?? 0;\n }\n\n public updateItemTotalCount(value: number): void {\n this.reactTable.setOptions((s) => ({\n ...s,\n rowCount: value,\n }));\n }\n\n public reset(): void {\n if (this.list.loader.manualFiltering) {\n this.updateItemTotalCount(0);\n }\n this.reactTable.setPagination(() => ({\n pageIndex: 0,\n pageSize: this.batchSize,\n }));\n }\n\n public nextBatch(): void {\n if (this.list.loader.manualPagination) {\n this.reactTable.nextPage();\n } else {\n const newSize =\n this.reactTable.getState().pagination.pageSize + this.batchSize;\n\n this.reactTable.setPagination((prev) => ({\n ...prev,\n pageSize: newSize,\n }));\n }\n }\n}\n"],"names":[],"mappings":"AAIO,MAAM,iBAAA,CAAqB;AAAA,EAChB,SAAA;AAAA,EACC,IAAA;AAAA,EAEV,WAAA,CAAY,IAAA,EAAe,KAAA,GAAgC,EAAC,EAAG;AACpE,IAAA,MAAM,EAAE,SAAA,GAAY,EAAA,EAAG,GAAI,KAAA;AAE3B,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AACjB,IAAA,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,gBAAgB,MAAM,IAAA,CAAK,KAAA,EAAO,CAAC,CAAA;AACjE,IAAA,IAAA,CAAK,MAAA,EAAQ,SAAA,CAAU,MAAM,IAAA,CAAK,OAAO,CAAA;AAAA,EAC3C;AAAA,EAEA,IAAY,UAAA,GAAuB;AACjC,IAAA,OAAO,IAAA,CAAK,KAAK,UAAA,CAAW,KAAA;AAAA,EAC9B;AAAA,EAEO,aAAA,GAAwB;AAC7B,IAAA,OAAO,IAAA,CAAK,UAAA,CAAW,QAAA,EAAS,CAAE,UAAA,CAAW,SAAA;AAAA,EAC/C;AAAA,EAEO,YAAA,GAAwB;AAC7B,IAAA,IAAI,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,gBAAA,EAAkB;AACrC,MAAA,OAAO,IAAA,CAAK,WAAW,cAAA,EAAe;AAAA,IACxC;AACA,IAAA,OACE,KAAK,UAAA,CAAW,QAAA,GAAW,UAAA,CAAW,QAAA,GAAW,KAAK,kBAAA,EAAmB;AAAA,EAE7E;AAAA,EAEO,kBAAA,GAA6B;AAClC,IAAA,IAAI,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,gBAAA,EAAkB;AACrC,MAAA,OAAO,IAAA,CAAK,WAAW,WAAA,EAAY;AAAA,IACrC;AACA,IAAA,OAAO,IAAA,CAAK,UAAA,CAAW,mBAAA,EAAoB,CAAE,IAAA,CAAK,MAAA;AAAA,EACpD;AAAA,EAEO,oBAAA,GAA+B;AACpC,IAAA,OAAO,IAAA,CAAK,UAAA,CAAW,WAAA,EAAY,CAAE,KAAK,MAAA,IAAU,CAAA;AAAA,EACtD;AAAA,EAEO,qBAAqB,KAAA,EAAqB;AAC/C,IAAA,IAAA,CAAK,UAAA,CAAW,UAAA,CAAW,CAAC,CAAA,MAAO;AAAA,MACjC,GAAG,CAAA;AAAA,MACH,QAAA,EAAU;AAAA,KACZ,CAAE,CAAA;AAAA,EACJ;AAAA,EAEO,KAAA,GAAc;AACnB,IAAA,IAAI,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,eAAA,EAAiB;AACpC,MAAA,IAAA,CAAK,qBAAqB,CAAC,CAAA;AAAA,IAC7B;AACA,IAAA,IAAA,CAAK,UAAA,CAAW,cAAc,OAAO;AAAA,MACnC,SAAA,EAAW,CAAA;AAAA,MACX,UAAU,IAAA,CAAK;AAAA,KACjB,CAAE,CAAA;AAAA,EACJ;AAAA,EAEO,SAAA,GAAkB;AACvB,IAAA,IAAI,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,gBAAA,EAAkB;AACrC,MAAA,IAAA,CAAK,WAAW,QAAA,EAAS;AAAA,IAC3B,CAAA,MAAO;AACL,MAAA,MAAM,UACJ,IAAA,CAAK,UAAA,CAAW,UAAS,CAAE,UAAA,CAAW,WAAW,IAAA,CAAK,SAAA;AAExD,MAAA,IAAA,CAAK,UAAA,CAAW,aAAA,CAAc,CAAC,IAAA,MAAU;AAAA,QACvC,GAAG,IAAA;AAAA,QACH,QAAA,EAAU;AAAA,OACZ,CAAE,CAAA;AAAA,IACJ;AAAA,EACF;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.mjs","sources":["../../../../../../../../src/components/List/model/search/Search.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n SearchFieldRenderComponent,\n SearchShape,\n SearchValue,\n} from \"@/components/List/model/search/types\";\nimport type { InitialTableState } from \"@tanstack/react-table\";\n\nexport class Search<T> {\n public readonly list: List<T>;\n public readonly render?: SearchFieldRenderComponent;\n public readonly textFieldProps: SearchShape<T>[\"textFieldProps\"];\n private onUpdateCallbacks = new Set<() => unknown>();\n private readonly defaultValue?: string;\n\n public constructor(list: List<T>, searchShape: SearchShape<T>) {\n this.list = list;\n this.render = searchShape.render;\n this.textFieldProps = searchShape.textFieldProps;\n this.defaultValue = searchShape.defaultValue;\n }\n\n public get value(): SearchValue {\n return this.list.reactTable.searchString;\n }\n\n public get isSet() {\n return this.value !== undefined;\n }\n\n private callOnUpdateCallbacks(): void {\n this.onUpdateCallbacks.forEach((cb) => cb());\n }\n\n public updateInitialState(initialState: InitialTableState) {\n initialState.globalFilter = this.defaultValue;\n }\n\n public setValue(value: SearchValue): void {\n if (value === undefined || value.trim() === \"\") {\n if (this.list.reactTable.table.getState().globalFilter) {\n this.list.reactTable.table.setGlobalFilter(undefined);\n this.callOnUpdateCallbacks();\n }\n } else {\n this.list.reactTable.table.setGlobalFilter(value);\n this.callOnUpdateCallbacks();\n }\n }\n\n public clear(): void {\n this.setValue(undefined);\n }\n\n public onUpdated(cb: () => unknown): void {\n this.onUpdateCallbacks.add(cb);\n }\n}\n"],"names":[],"mappings":"AAQO,MAAM,
|
|
1
|
+
{"version":3,"file":"Search.mjs","sources":["../../../../../../../../src/components/List/model/search/Search.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n SearchFieldRenderComponent,\n SearchShape,\n SearchValue,\n} from \"@/components/List/model/search/types\";\nimport type { InitialTableState } from \"@tanstack/react-table\";\n\nexport class Search<T> {\n public readonly list: List<T>;\n public readonly render?: SearchFieldRenderComponent;\n public readonly textFieldProps: SearchShape<T>[\"textFieldProps\"];\n private onUpdateCallbacks = new Set<() => unknown>();\n private readonly defaultValue?: string;\n\n public constructor(list: List<T>, searchShape: SearchShape<T>) {\n this.list = list;\n this.render = searchShape.render;\n this.textFieldProps = searchShape.textFieldProps;\n this.defaultValue = searchShape.defaultValue;\n }\n\n public get value(): SearchValue {\n return this.list.reactTable.searchString;\n }\n\n public get isSet() {\n return this.value !== undefined;\n }\n\n private callOnUpdateCallbacks(): void {\n this.onUpdateCallbacks.forEach((cb) => cb());\n }\n\n public updateInitialState(initialState: InitialTableState) {\n initialState.globalFilter = this.defaultValue;\n }\n\n public setValue(value: SearchValue): void {\n if (value === undefined || value.trim() === \"\") {\n if (this.list.reactTable.table.getState().globalFilter) {\n this.list.reactTable.table.setGlobalFilter(undefined);\n this.callOnUpdateCallbacks();\n }\n } else {\n this.list.reactTable.table.setGlobalFilter(value);\n this.callOnUpdateCallbacks();\n }\n }\n\n public clear(): void {\n this.setValue(undefined);\n }\n\n public onUpdated(cb: () => unknown): void {\n this.onUpdateCallbacks.add(cb);\n }\n}\n"],"names":[],"mappings":"AAQO,MAAM,MAAA,CAAU;AAAA,EACL,IAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACR,iBAAA,uBAAwB,GAAA,EAAmB;AAAA,EAClC,YAAA;AAAA,EAEV,WAAA,CAAY,MAAe,WAAA,EAA6B;AAC7D,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,SAAS,WAAA,CAAY,MAAA;AAC1B,IAAA,IAAA,CAAK,iBAAiB,WAAA,CAAY,cAAA;AAClC,IAAA,IAAA,CAAK,eAAe,WAAA,CAAY,YAAA;AAAA,EAClC;AAAA,EAEA,IAAW,KAAA,GAAqB;AAC9B,IAAA,OAAO,IAAA,CAAK,KAAK,UAAA,CAAW,YAAA;AAAA,EAC9B;AAAA,EAEA,IAAW,KAAA,GAAQ;AACjB,IAAA,OAAO,KAAK,KAAA,KAAU,MAAA;AAAA,EACxB;AAAA,EAEQ,qBAAA,GAA8B;AACpC,IAAA,IAAA,CAAK,iBAAA,CAAkB,OAAA,CAAQ,CAAC,EAAA,KAAO,IAAI,CAAA;AAAA,EAC7C;AAAA,EAEO,mBAAmB,YAAA,EAAiC;AACzD,IAAA,YAAA,CAAa,eAAe,IAAA,CAAK,YAAA;AAAA,EACnC;AAAA,EAEO,SAAS,KAAA,EAA0B;AACxC,IAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,CAAM,IAAA,OAAW,EAAA,EAAI;AAC9C,MAAA,IAAI,KAAK,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,QAAA,GAAW,YAAA,EAAc;AACtD,QAAA,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,eAAA,CAAgB,MAAS,CAAA;AACpD,QAAA,IAAA,CAAK,qBAAA,EAAsB;AAAA,MAC7B;AAAA,IACF,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,eAAA,CAAgB,KAAK,CAAA;AAChD,MAAA,IAAA,CAAK,qBAAA,EAAsB;AAAA,IAC7B;AAAA,EACF;AAAA,EAEO,KAAA,GAAc;AACnB,IAAA,IAAA,CAAK,SAAS,MAAS,CAAA;AAAA,EACzB;AAAA,EAEO,UAAU,EAAA,EAAyB;AACxC,IAAA,IAAA,CAAK,iBAAA,CAAkB,IAAI,EAAE,CAAA;AAAA,EAC/B;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sorting.mjs","sources":["../../../../../../../../src/components/List/model/sorting/Sorting.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n SortingDefaultMode,\n SortingShape,\n} from \"@/components/List/model/sorting/types\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport type {\n Column,\n ColumnDef,\n ColumnSort,\n SortDirection,\n SortingFn,\n} from \"@tanstack/react-table\";\nimport z from \"zod\";\n\nexport class Sorting<T> {\n public static readonly storageSchema = z\n .object({\n direction: z.enum([\"asc\", \"desc\"]),\n property: z.string().or(z.number()),\n })\n .optional();\n public readonly list: List<T>;\n public readonly property: PropertyName<T>;\n public readonly name?: string;\n public readonly direction: SortDirection;\n public readonly defaultEnabled: SortingDefaultMode;\n public readonly customSortingFn?: SortingFn<T>;\n\n public constructor(list: List<T>, shape: SortingShape<T>) {\n this.list = list;\n this.property = shape.property;\n this.name = shape.name;\n this.direction = shape.direction ?? \"asc\";\n const storedDefaultEnabled = this.getStoredDefaultEnabled();\n this.defaultEnabled =\n shape.defaultEnabled === \"hidden\"\n ? \"hidden\"\n : (storedDefaultEnabled ?? shape.defaultEnabled ?? false);\n this.customSortingFn = shape.customSortingFn;\n }\n\n private getStoredDefaultEnabled() {\n const storedSorting = this.list.getStoredSortingDefaultSetting();\n if (!storedSorting) {\n return undefined;\n }\n return (\n storedSorting.property === this.property &&\n storedSorting.direction === this.direction\n );\n }\n\n public updateTableColumnDef(def: ColumnDef<T>): void {\n def.enableSorting = true;\n if (this.customSortingFn) {\n def.sortingFn = this.customSortingFn;\n }\n }\n\n public getReactTableColumnSort(): ColumnSort {\n return {\n id: this.property as string,\n desc: this.direction === \"desc\",\n };\n }\n\n public isSorted(): boolean {\n const col = this.getTableColumn();\n return col.getIsSorted() == this.direction;\n }\n\n public getTableColumn(): Column<T> {\n return this.list.reactTable.getTableColumn(this.property);\n }\n\n public enable(): void {\n this.list.reactTable\n .getTableColumn(this.property)\n .toggleSorting(this.direction === \"desc\", false);\n this.list.storeSortingSettings(this);\n }\n\n public clear(): void {\n this.list.reactTable.getTableColumn(this.property).clearSorting();\n }\n\n public get id(): string {\n return `${this.getTableColumn().id}:${this.direction}`;\n }\n}\n"],"names":[],"mappings":";;AAeO,MAAM,
|
|
1
|
+
{"version":3,"file":"Sorting.mjs","sources":["../../../../../../../../src/components/List/model/sorting/Sorting.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n SortingDefaultMode,\n SortingShape,\n} from \"@/components/List/model/sorting/types\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport type {\n Column,\n ColumnDef,\n ColumnSort,\n SortDirection,\n SortingFn,\n} from \"@tanstack/react-table\";\nimport z from \"zod\";\n\nexport class Sorting<T> {\n public static readonly storageSchema = z\n .object({\n direction: z.enum([\"asc\", \"desc\"]),\n property: z.string().or(z.number()),\n })\n .optional();\n public readonly list: List<T>;\n public readonly property: PropertyName<T>;\n public readonly name?: string;\n public readonly direction: SortDirection;\n public readonly defaultEnabled: SortingDefaultMode;\n public readonly customSortingFn?: SortingFn<T>;\n\n public constructor(list: List<T>, shape: SortingShape<T>) {\n this.list = list;\n this.property = shape.property;\n this.name = shape.name;\n this.direction = shape.direction ?? \"asc\";\n const storedDefaultEnabled = this.getStoredDefaultEnabled();\n this.defaultEnabled =\n shape.defaultEnabled === \"hidden\"\n ? \"hidden\"\n : (storedDefaultEnabled ?? shape.defaultEnabled ?? false);\n this.customSortingFn = shape.customSortingFn;\n }\n\n private getStoredDefaultEnabled() {\n const storedSorting = this.list.getStoredSortingDefaultSetting();\n if (!storedSorting) {\n return undefined;\n }\n return (\n storedSorting.property === this.property &&\n storedSorting.direction === this.direction\n );\n }\n\n public updateTableColumnDef(def: ColumnDef<T>): void {\n def.enableSorting = true;\n if (this.customSortingFn) {\n def.sortingFn = this.customSortingFn;\n }\n }\n\n public getReactTableColumnSort(): ColumnSort {\n return {\n id: this.property as string,\n desc: this.direction === \"desc\",\n };\n }\n\n public isSorted(): boolean {\n const col = this.getTableColumn();\n return col.getIsSorted() == this.direction;\n }\n\n public getTableColumn(): Column<T> {\n return this.list.reactTable.getTableColumn(this.property);\n }\n\n public enable(): void {\n this.list.reactTable\n .getTableColumn(this.property)\n .toggleSorting(this.direction === \"desc\", false);\n this.list.storeSortingSettings(this);\n }\n\n public clear(): void {\n this.list.reactTable.getTableColumn(this.property).clearSorting();\n }\n\n public get id(): string {\n return `${this.getTableColumn().id}:${this.direction}`;\n }\n}\n"],"names":[],"mappings":";;AAeO,MAAM,OAAA,CAAW;AAAA,EACtB,OAAuB,aAAA,GAAgB,CAAA,CACpC,MAAA,CAAO;AAAA,IACN,WAAW,CAAA,CAAE,IAAA,CAAK,CAAC,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,IACjC,UAAU,CAAA,CAAE,MAAA,GAAS,EAAA,CAAG,CAAA,CAAE,QAAQ;AAAA,GACnC,EACA,QAAA,EAAS;AAAA,EACI,IAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EAET,WAAA,CAAY,MAAe,KAAA,EAAwB;AACxD,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,WAAW,KAAA,CAAM,QAAA;AACtB,IAAA,IAAA,CAAK,OAAO,KAAA,CAAM,IAAA;AAClB,IAAA,IAAA,CAAK,SAAA,GAAY,MAAM,SAAA,IAAa,KAAA;AACpC,IAAA,MAAM,oBAAA,GAAuB,KAAK,uBAAA,EAAwB;AAC1D,IAAA,IAAA,CAAK,iBACH,KAAA,CAAM,cAAA,KAAmB,WACrB,QAAA,GACC,oBAAA,IAAwB,MAAM,cAAA,IAAkB,KAAA;AACvD,IAAA,IAAA,CAAK,kBAAkB,KAAA,CAAM,eAAA;AAAA,EAC/B;AAAA,EAEQ,uBAAA,GAA0B;AAChC,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,IAAA,CAAK,8BAAA,EAA+B;AAC/D,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,OAAO,MAAA;AAAA,IACT;AACA,IAAA,OACE,cAAc,QAAA,KAAa,IAAA,CAAK,QAAA,IAChC,aAAA,CAAc,cAAc,IAAA,CAAK,SAAA;AAAA,EAErC;AAAA,EAEO,qBAAqB,GAAA,EAAyB;AACnD,IAAA,GAAA,CAAI,aAAA,GAAgB,IAAA;AACpB,IAAA,IAAI,KAAK,eAAA,EAAiB;AACxB,MAAA,GAAA,CAAI,YAAY,IAAA,CAAK,eAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEO,uBAAA,GAAsC;AAC3C,IAAA,OAAO;AAAA,MACL,IAAI,IAAA,CAAK,QAAA;AAAA,MACT,IAAA,EAAM,KAAK,SAAA,KAAc;AAAA,KAC3B;AAAA,EACF;AAAA,EAEO,QAAA,GAAoB;AACzB,IAAA,MAAM,GAAA,GAAM,KAAK,cAAA,EAAe;AAChC,IAAA,OAAO,GAAA,CAAI,WAAA,EAAY,IAAK,IAAA,CAAK,SAAA;AAAA,EACnC;AAAA,EAEO,cAAA,GAA4B;AACjC,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,cAAA,CAAe,KAAK,QAAQ,CAAA;AAAA,EAC1D;AAAA,EAEO,MAAA,GAAe;AACpB,IAAA,IAAA,CAAK,IAAA,CAAK,UAAA,CACP,cAAA,CAAe,IAAA,CAAK,QAAQ,EAC5B,aAAA,CAAc,IAAA,CAAK,SAAA,KAAc,MAAA,EAAQ,KAAK,CAAA;AACjD,IAAA,IAAA,CAAK,IAAA,CAAK,qBAAqB,IAAI,CAAA;AAAA,EACrC;AAAA,EAEO,KAAA,GAAc;AACnB,IAAA,IAAA,CAAK,KAAK,UAAA,CAAW,cAAA,CAAe,IAAA,CAAK,QAAQ,EAAE,YAAA,EAAa;AAAA,EAClE;AAAA,EAEA,IAAW,EAAA,GAAa;AACtB,IAAA,OAAO,GAAG,IAAA,CAAK,cAAA,GAAiB,EAAE,CAAA,CAAA,EAAI,KAAK,SAAS,CAAA,CAAA;AAAA,EACtD;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortingFunctions.mjs","sources":["../../../../../../../../src/components/List/model/sorting/SortingFunctions.ts"],"sourcesContent":["import type { Row, SortingFn } from \"@tanstack/react-table\";\nimport invariant from \"invariant\";\n\nexport const SortingFunctions = {\n bigInt: ((rowA: Row<bigint>, rowB: Row<bigint>, columnId) => {\n const valueA = rowA.getValue(columnId);\n const valueB = rowB.getValue(columnId);\n\n if (valueA == null) return valueB == null ? 0 : -1;\n if (valueB == null) return 1;\n\n try {\n invariant(\n typeof valueA === \"bigint\" && typeof valueB === \"bigint\",\n `Expected BigInt values, got ${typeof valueA} and ${typeof valueB}`,\n );\n\n return valueA < valueB ? -1 : valueA > valueB ? 1 : 0;\n } catch (error) {\n console.error(`Error in BigInt comparison: ${error}`);\n }\n }) as SortingFn<unknown>,\n\n alphanumeric: \"alphanumeric\" as const,\n};\n"],"names":[],"mappings":";;AAGO,MAAM,
|
|
1
|
+
{"version":3,"file":"SortingFunctions.mjs","sources":["../../../../../../../../src/components/List/model/sorting/SortingFunctions.ts"],"sourcesContent":["import type { Row, SortingFn } from \"@tanstack/react-table\";\nimport invariant from \"invariant\";\n\nexport const SortingFunctions = {\n bigInt: ((rowA: Row<bigint>, rowB: Row<bigint>, columnId) => {\n const valueA = rowA.getValue(columnId);\n const valueB = rowB.getValue(columnId);\n\n if (valueA == null) return valueB == null ? 0 : -1;\n if (valueB == null) return 1;\n\n try {\n invariant(\n typeof valueA === \"bigint\" && typeof valueB === \"bigint\",\n `Expected BigInt values, got ${typeof valueA} and ${typeof valueB}`,\n );\n\n return valueA < valueB ? -1 : valueA > valueB ? 1 : 0;\n } catch (error) {\n console.error(`Error in BigInt comparison: ${error}`);\n }\n }) as SortingFn<unknown>,\n\n alphanumeric: \"alphanumeric\" as const,\n};\n"],"names":[],"mappings":";;AAGO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,MAAA,GAAS,CAAC,IAAA,EAAmB,IAAA,EAAmB,QAAA,KAAa;AAC3D,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,QAAA,CAAS,QAAQ,CAAA;AACrC,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,QAAA,CAAS,QAAQ,CAAA;AAErC,IAAA,IAAI,MAAA,IAAU,IAAA,EAAM,OAAO,MAAA,IAAU,OAAO,CAAA,GAAI,EAAA;AAChD,IAAA,IAAI,MAAA,IAAU,MAAM,OAAO,CAAA;AAE3B,IAAA,IAAI;AACF,MAAA,SAAA;AAAA,QACE,OAAO,MAAA,KAAW,QAAA,IAAY,OAAO,MAAA,KAAW,QAAA;AAAA,QAChD,CAAA,4BAAA,EAA+B,OAAO,MAAM,CAAA,KAAA,EAAQ,OAAO,MAAM,CAAA;AAAA,OACnE;AAEA,MAAA,OAAO,MAAA,GAAS,MAAA,GAAS,CAAA,CAAA,GAAK,MAAA,GAAS,SAAS,CAAA,GAAI,CAAA;AAAA,IACtD,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,4BAAA,EAA+B,KAAK,CAAA,CAAE,CAAA;AAAA,IACtD;AAAA,EACF,CAAA,CAAA;AAAA,EAEA,YAAA,EAAc;AAChB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.mjs","sources":["../../../../../../../../src/components/List/model/table/Table.ts"],"sourcesContent":["import type {\n TableShape,\n TableSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport type List from \"@/components/List/model/List\";\nimport { TableHeader } from \"@/components/List/model/table/TableHeader\";\nimport { TableBody } from \"@/components/List/model/table/TableBody\";\n\nexport class Table<T> {\n public readonly list: List<T>;\n public readonly header: TableHeader<T>;\n public readonly body: TableBody<T>;\n public readonly componentProps: TableSupportedComponentProps;\n\n public constructor(list: List<T>, shape: TableShape<T> = {}) {\n const { header, body, ...restProps } = shape;\n this.list = list;\n this.header = new TableHeader(this, header);\n this.body = new TableBody(this, body);\n this.componentProps = restProps;\n }\n}\n"],"names":[],"mappings":";;;AAQO,MAAM,
|
|
1
|
+
{"version":3,"file":"Table.mjs","sources":["../../../../../../../../src/components/List/model/table/Table.ts"],"sourcesContent":["import type {\n TableShape,\n TableSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport type List from \"@/components/List/model/List\";\nimport { TableHeader } from \"@/components/List/model/table/TableHeader\";\nimport { TableBody } from \"@/components/List/model/table/TableBody\";\n\nexport class Table<T> {\n public readonly list: List<T>;\n public readonly header: TableHeader<T>;\n public readonly body: TableBody<T>;\n public readonly componentProps: TableSupportedComponentProps;\n\n public constructor(list: List<T>, shape: TableShape<T> = {}) {\n const { header, body, ...restProps } = shape;\n this.list = list;\n this.header = new TableHeader(this, header);\n this.body = new TableBody(this, body);\n this.componentProps = restProps;\n }\n}\n"],"names":[],"mappings":";;;AAQO,MAAM,KAAA,CAAS;AAAA,EACJ,IAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,cAAA;AAAA,EAET,WAAA,CAAY,IAAA,EAAe,KAAA,GAAuB,EAAC,EAAG;AAC3D,IAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAM,GAAG,WAAU,GAAI,KAAA;AACvC,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,WAAA,CAAY,IAAA,EAAM,MAAM,CAAA;AAC1C,IAAA,IAAA,CAAK,IAAA,GAAO,IAAI,SAAA,CAAU,IAAA,EAAM,IAAI,CAAA;AACpC,IAAA,IAAA,CAAK,cAAA,GAAiB,SAAA;AAAA,EACxB;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBody.mjs","sources":["../../../../../../../../src/components/List/model/table/TableBody.ts"],"sourcesContent":["import type { Table } from \"@/components/List/model/table/Table\";\nimport type {\n TableBodyShape,\n TableBodySupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport { TableRow } from \"@/components/List/model/table/TableRow\";\n\nexport class TableBody<T> {\n public readonly table: Table<T>;\n public readonly componentProps: TableBodySupportedComponentProps;\n public readonly row: TableRow<T>;\n\n public constructor(table: Table<T>, shape: TableBodyShape<T> = {}) {\n const { row, ...rest } = shape;\n this.table = table;\n this.row = new TableRow(this, row);\n this.componentProps = rest;\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,
|
|
1
|
+
{"version":3,"file":"TableBody.mjs","sources":["../../../../../../../../src/components/List/model/table/TableBody.ts"],"sourcesContent":["import type { Table } from \"@/components/List/model/table/Table\";\nimport type {\n TableBodyShape,\n TableBodySupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport { TableRow } from \"@/components/List/model/table/TableRow\";\n\nexport class TableBody<T> {\n public readonly table: Table<T>;\n public readonly componentProps: TableBodySupportedComponentProps;\n public readonly row: TableRow<T>;\n\n public constructor(table: Table<T>, shape: TableBodyShape<T> = {}) {\n const { row, ...rest } = shape;\n this.table = table;\n this.row = new TableRow(this, row);\n this.componentProps = rest;\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,SAAA,CAAa;AAAA,EACR,KAAA;AAAA,EACA,cAAA;AAAA,EACA,GAAA;AAAA,EAET,WAAA,CAAY,KAAA,EAAiB,KAAA,GAA2B,EAAC,EAAG;AACjE,IAAA,MAAM,EAAE,GAAA,EAAK,GAAG,IAAA,EAAK,GAAI,KAAA;AACzB,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,IAAA,IAAA,CAAK,GAAA,GAAM,IAAI,QAAA,CAAS,IAAA,EAAM,GAAG,CAAA;AACjC,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAA;AAAA,EACxB;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCell.mjs","sources":["../../../../../../../../src/components/List/model/table/TableCell.ts"],"sourcesContent":["import type {\n TableCellShape,\n TableCellSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport type { TableRow } from \"@/components/List/model/table/TableRow\";\nimport type { RenderItemFn } from \"@/components/List\";\n\nexport class TableCell<T> {\n public readonly row: TableRow<T>;\n public readonly renderFn?: RenderItemFn<T>;\n public readonly componentProps: TableCellSupportedComponentProps;\n\n public constructor(row: TableRow<T>, shape: TableCellShape<T> = {}) {\n const { renderFn, ...rest } = shape;\n this.row = row;\n this.renderFn = renderFn;\n this.componentProps = rest;\n }\n}\n"],"names":[],"mappings":"AAOO,MAAM,
|
|
1
|
+
{"version":3,"file":"TableCell.mjs","sources":["../../../../../../../../src/components/List/model/table/TableCell.ts"],"sourcesContent":["import type {\n TableCellShape,\n TableCellSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport type { TableRow } from \"@/components/List/model/table/TableRow\";\nimport type { RenderItemFn } from \"@/components/List\";\n\nexport class TableCell<T> {\n public readonly row: TableRow<T>;\n public readonly renderFn?: RenderItemFn<T>;\n public readonly componentProps: TableCellSupportedComponentProps;\n\n public constructor(row: TableRow<T>, shape: TableCellShape<T> = {}) {\n const { renderFn, ...rest } = shape;\n this.row = row;\n this.renderFn = renderFn;\n this.componentProps = rest;\n }\n}\n"],"names":[],"mappings":"AAOO,MAAM,SAAA,CAAa;AAAA,EACR,GAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EAET,WAAA,CAAY,GAAA,EAAkB,KAAA,GAA2B,EAAC,EAAG;AAClE,IAAA,MAAM,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK,GAAI,KAAA;AAC9B,IAAA,IAAA,CAAK,GAAA,GAAM,GAAA;AACX,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAA;AAAA,EACxB;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableColumn.mjs","sources":["../../../../../../../../src/components/List/model/table/TableColumn.ts"],"sourcesContent":["import type {\n TableColumnShape,\n TableColumnSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport type { TableHeader } from \"@/components/List/model/table/TableHeader\";\n\nexport class TableColumn<T> {\n public readonly tableHeader: TableHeader<T>;\n public readonly componentProps: TableColumnSupportedComponentProps;\n\n public constructor(\n tableHeader: TableHeader<T>,\n shape: TableColumnShape = {},\n ) {\n this.tableHeader = tableHeader;\n this.componentProps = shape;\n }\n}\n"],"names":[],"mappings":"AAMO,MAAM,
|
|
1
|
+
{"version":3,"file":"TableColumn.mjs","sources":["../../../../../../../../src/components/List/model/table/TableColumn.ts"],"sourcesContent":["import type {\n TableColumnShape,\n TableColumnSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport type { TableHeader } from \"@/components/List/model/table/TableHeader\";\n\nexport class TableColumn<T> {\n public readonly tableHeader: TableHeader<T>;\n public readonly componentProps: TableColumnSupportedComponentProps;\n\n public constructor(\n tableHeader: TableHeader<T>,\n shape: TableColumnShape = {},\n ) {\n this.tableHeader = tableHeader;\n this.componentProps = shape;\n }\n}\n"],"names":[],"mappings":"AAMO,MAAM,WAAA,CAAe;AAAA,EACV,WAAA;AAAA,EACA,cAAA;AAAA,EAET,WAAA,CACL,WAAA,EACA,KAAA,GAA0B,EAAC,EAC3B;AACA,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AACnB,IAAA,IAAA,CAAK,cAAA,GAAiB,KAAA;AAAA,EACxB;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeader.mjs","sources":["../../../../../../../../src/components/List/model/table/TableHeader.ts"],"sourcesContent":["import type { Table } from \"@/components/List/model/table/Table\";\nimport type {\n TableHeaderShape,\n TableHeaderSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport { TableColumn } from \"@/components/List/model/table/TableColumn\";\n\nexport class TableHeader<T> {\n public readonly table: Table<T>;\n public readonly componentProps: TableHeaderSupportedComponentProps;\n public readonly columns: TableColumn<T>[];\n\n public constructor(table: Table<T>, shape: TableHeaderShape = {}) {\n const { columns = [], ...rest } = shape;\n this.table = table;\n this.columns = columns.map((colShape) => new TableColumn(this, colShape));\n this.componentProps = rest;\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,
|
|
1
|
+
{"version":3,"file":"TableHeader.mjs","sources":["../../../../../../../../src/components/List/model/table/TableHeader.ts"],"sourcesContent":["import type { Table } from \"@/components/List/model/table/Table\";\nimport type {\n TableHeaderShape,\n TableHeaderSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport { TableColumn } from \"@/components/List/model/table/TableColumn\";\n\nexport class TableHeader<T> {\n public readonly table: Table<T>;\n public readonly componentProps: TableHeaderSupportedComponentProps;\n public readonly columns: TableColumn<T>[];\n\n public constructor(table: Table<T>, shape: TableHeaderShape = {}) {\n const { columns = [], ...rest } = shape;\n this.table = table;\n this.columns = columns.map((colShape) => new TableColumn(this, colShape));\n this.componentProps = rest;\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,WAAA,CAAe;AAAA,EACV,KAAA;AAAA,EACA,cAAA;AAAA,EACA,OAAA;AAAA,EAET,WAAA,CAAY,KAAA,EAAiB,KAAA,GAA0B,EAAC,EAAG;AAChE,IAAA,MAAM,EAAE,OAAA,GAAU,EAAC,EAAG,GAAG,MAAK,GAAI,KAAA;AAClC,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,GAAA,CAAI,CAAC,aAAa,IAAI,WAAA,CAAY,IAAA,EAAM,QAAQ,CAAC,CAAA;AACxE,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAA;AAAA,EACxB;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRow.mjs","sources":["../../../../../../../../src/components/List/model/table/TableRow.ts"],"sourcesContent":["import type {\n TableRowShape,\n TableRowSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport { TableCell } from \"@/components/List/model/table/TableCell\";\nimport type { TableBody } from \"@/components/List/model/table/TableBody\";\n\nexport class TableRow<T> {\n public readonly tableBody: TableBody<T>;\n public readonly cells: TableCell<T>[];\n public readonly componentProps: TableRowSupportedComponentProps;\n\n public constructor(tableBody: TableBody<T>, shape: TableRowShape<T> = {}) {\n const { cells = [], ...rest } = shape;\n this.tableBody = tableBody;\n this.cells = cells.map((cellShape) => new TableCell(this, cellShape));\n this.componentProps = rest;\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,
|
|
1
|
+
{"version":3,"file":"TableRow.mjs","sources":["../../../../../../../../src/components/List/model/table/TableRow.ts"],"sourcesContent":["import type {\n TableRowShape,\n TableRowSupportedComponentProps,\n} from \"@/components/List/model/table/types\";\nimport { TableCell } from \"@/components/List/model/table/TableCell\";\nimport type { TableBody } from \"@/components/List/model/table/TableBody\";\n\nexport class TableRow<T> {\n public readonly tableBody: TableBody<T>;\n public readonly cells: TableCell<T>[];\n public readonly componentProps: TableRowSupportedComponentProps;\n\n public constructor(tableBody: TableBody<T>, shape: TableRowShape<T> = {}) {\n const { cells = [], ...rest } = shape;\n this.tableBody = tableBody;\n this.cells = cells.map((cellShape) => new TableCell(this, cellShape));\n this.componentProps = rest;\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,QAAA,CAAY;AAAA,EACP,SAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EAET,WAAA,CAAY,SAAA,EAAyB,KAAA,GAA0B,EAAC,EAAG;AACxE,IAAA,MAAM,EAAE,KAAA,GAAQ,EAAC,EAAG,GAAG,MAAK,GAAI,KAAA;AAChC,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AACjB,IAAA,IAAA,CAAK,KAAA,GAAQ,MAAM,GAAA,CAAI,CAAC,cAAc,IAAI,SAAA,CAAU,IAAA,EAAM,SAAS,CAAC,CAAA;AACpE,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAA;AAAA,EACxB;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sources":["../../../../../../../src/components/List/model/types.ts"],"sourcesContent":["import type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { ItemViewShape } from \"@/components/List/model/item/ItemView\";\nimport type List from \"@/components/List/model/List\";\nimport type { IncrementalLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { BatchesControllerShape } from \"@/components/List/model/pagination/types\";\nimport type { SearchShape } from \"@/components/List/model/search/types\";\nimport type { SortingShape } from \"@/components/List/model/sorting/types\";\nimport type { TableShape } from \"@/components/List/model/table/types\";\nimport type { ItemType } from \"@/lib/types/array\";\nimport type { MultipleSelection, SelectionBehavior } from \"@react-types/shared\";\nimport type { DeepKeys, DeepValue } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\n\nexport const customPropertyPrefix = \"$\" as const;\nexport type CustomPropertyName = `${typeof customPropertyPrefix}${string}`;\n\nexport type PropertyName<T> = DeepKeys<T> | CustomPropertyName;\nexport type PropertyValue<T, TProp> = TProp extends CustomPropertyName\n ? T\n : DeepValue<T, TProp>;\nexport type PropertyValueRenderMethod<TMatcherValue> = (\n prop: NonNullable<ItemType<TMatcherValue>>,\n) => ReactNode;\n\nexport type OnListChanged<T> = (list: List<T>) => void;\n\nexport interface ListSupportedComponentProps extends MultipleSelection {\n \"aria-labelledby\"?: string;\n \"aria-label\"?: string;\n selectionBehavior?: SelectionBehavior;\n}\n\nexport interface ListShape<T> extends ListSupportedComponentProps {\n settingStorageKey?: string;\n\n loader?: IncrementalLoaderShape<T>;\n filters?: FilterShape<T, never, never>[];\n itemView?: ItemViewShape<T>;\n search?: SearchShape<T>;\n sorting?: SortingShape<T>[];\n batchesController?: BatchesControllerShape;\n table?: TableShape<T>;\n\n onAction?: ItemActionFn<T>;\n accordion?: boolean;\n getItemId?: GetItemId<T>;\n onChange?: OnListChanged<T>;\n defaultViewMode?: ListViewMode;\n}\n\nexport type PropertyRecord<T, TValue> = Partial<\n Record<PropertyName<T>, TValue>\n>;\n\nexport type ListViewMode = \"table\" | \"list\" | \"tiles\";\nexport type ItemActionFn<T> = (data: T) => void;\nexport type GetItemId<T> = (data: T) => string;\n"],"names":[],"mappings":"AAaO,MAAM,
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":["../../../../../../../src/components/List/model/types.ts"],"sourcesContent":["import type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { ItemViewShape } from \"@/components/List/model/item/ItemView\";\nimport type List from \"@/components/List/model/List\";\nimport type { IncrementalLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { BatchesControllerShape } from \"@/components/List/model/pagination/types\";\nimport type { SearchShape } from \"@/components/List/model/search/types\";\nimport type { SortingShape } from \"@/components/List/model/sorting/types\";\nimport type { TableShape } from \"@/components/List/model/table/types\";\nimport type { ItemType } from \"@/lib/types/array\";\nimport type { MultipleSelection, SelectionBehavior } from \"@react-types/shared\";\nimport type { DeepKeys, DeepValue } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\n\nexport const customPropertyPrefix = \"$\" as const;\nexport type CustomPropertyName = `${typeof customPropertyPrefix}${string}`;\n\nexport type PropertyName<T> = DeepKeys<T> | CustomPropertyName;\nexport type PropertyValue<T, TProp> = TProp extends CustomPropertyName\n ? T\n : DeepValue<T, TProp>;\nexport type PropertyValueRenderMethod<TMatcherValue> = (\n prop: NonNullable<ItemType<TMatcherValue>>,\n) => ReactNode;\n\nexport type OnListChanged<T> = (list: List<T>) => void;\n\nexport interface ListSupportedComponentProps extends MultipleSelection {\n \"aria-labelledby\"?: string;\n \"aria-label\"?: string;\n selectionBehavior?: SelectionBehavior;\n}\n\nexport interface ListShape<T> extends ListSupportedComponentProps {\n settingStorageKey?: string;\n\n loader?: IncrementalLoaderShape<T>;\n filters?: FilterShape<T, never, never>[];\n itemView?: ItemViewShape<T>;\n search?: SearchShape<T>;\n sorting?: SortingShape<T>[];\n batchesController?: BatchesControllerShape;\n table?: TableShape<T>;\n\n onAction?: ItemActionFn<T>;\n accordion?: boolean;\n getItemId?: GetItemId<T>;\n onChange?: OnListChanged<T>;\n defaultViewMode?: ListViewMode;\n}\n\nexport type PropertyRecord<T, TValue> = Partial<\n Record<PropertyName<T>, TValue>\n>;\n\nexport type ListViewMode = \"table\" | \"list\" | \"tiles\";\nexport type ItemActionFn<T> = (data: T) => void;\nexport type GetItemId<T> = (data: T) => string;\n"],"names":[],"mappings":"AAaO,MAAM,oBAAA,GAAuB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListFilter.mjs","sources":["../../../../../../../src/components/List/setupComponents/ListFilter.ts"],"sourcesContent":["import type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { ReactNode } from \"react\";\nimport type {\n PropertyName,\n PropertyValue,\n PropertyValueRenderMethod,\n} from \"@/components/List/model/types\";\n\ntype Props<T, TProp extends PropertyName<T>, TMatcherValue> = Omit<\n FilterShape<T, TProp, TMatcherValue>,\n \"type\" | \"renderItem\"\n> & {\n children?: PropertyValueRenderMethod<TMatcherValue>;\n};\n\nexport const ListFilter = <\n T,\n const TProp extends PropertyName<T> = PropertyName<T>,\n TMatcherValue = PropertyValue<T, TProp>,\n>(\n ignoredProps: Props<T, TProp, TMatcherValue>,\n) => null;\n\nexport const TypedListFilter = <T>() =>\n ListFilter as <\n const TProp extends PropertyName<T>,\n TMatcherValue = PropertyValue<T, TProp>,\n >(\n props: Props<T, TProp, TMatcherValue>,\n ) => ReactNode;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ListFilter.mjs","sources":["../../../../../../../src/components/List/setupComponents/ListFilter.ts"],"sourcesContent":["import type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { ReactNode } from \"react\";\nimport type {\n PropertyName,\n PropertyValue,\n PropertyValueRenderMethod,\n} from \"@/components/List/model/types\";\n\ntype Props<T, TProp extends PropertyName<T>, TMatcherValue> = Omit<\n FilterShape<T, TProp, TMatcherValue>,\n \"type\" | \"renderItem\"\n> & {\n children?: PropertyValueRenderMethod<TMatcherValue>;\n};\n\nexport const ListFilter = <\n T,\n const TProp extends PropertyName<T> = PropertyName<T>,\n TMatcherValue = PropertyValue<T, TProp>,\n>(\n ignoredProps: Props<T, TProp, TMatcherValue>,\n) => null;\n\nexport const TypedListFilter = <T>() =>\n ListFilter as <\n const TProp extends PropertyName<T>,\n TMatcherValue = PropertyValue<T, TProp>,\n >(\n props: Props<T, TProp, TMatcherValue>,\n ) => ReactNode;\n"],"names":[],"mappings":"AAeO,MAAM,UAAA,GAAa,CAKxB,YAAA,KACG;AAEE,MAAM,kBAAkB,MAC7B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.mjs","sources":["../../../../../../../src/components/List/setupComponents/ListItem.ts"],"sourcesContent":["import type { ComponentType } from \"react\";\nimport type { RenderItemFn } from \"@/components/List/model/item/types\";\nimport type { ItemViewShape } from \"@/components/List/model/item/ItemView\";\n\ntype Props<T> = Omit<ItemViewShape<T>, \"renderFn\"> & {\n children: RenderItemFn<T>;\n};\n\nexport const ListItem = <T>(ignoredProps: Props<T>) => null;\n\nexport const TypedListItem = <T>() => ListItem as ComponentType<Props<T>>;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ListItem.mjs","sources":["../../../../../../../src/components/List/setupComponents/ListItem.ts"],"sourcesContent":["import type { ComponentType } from \"react\";\nimport type { RenderItemFn } from \"@/components/List/model/item/types\";\nimport type { ItemViewShape } from \"@/components/List/model/item/ItemView\";\n\ntype Props<T> = Omit<ItemViewShape<T>, \"renderFn\"> & {\n children: RenderItemFn<T>;\n};\n\nexport const ListItem = <T>(ignoredProps: Props<T>) => null;\n\nexport const TypedListItem = <T>() => ListItem as ComponentType<Props<T>>;\n"],"names":[],"mappings":"AAQO,MAAM,QAAA,GAAW,CAAI,YAAA,KAA2B;AAEhD,MAAM,gBAAgB,MAAS;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListLoaderAsync.mjs","sources":["../../../../../../../src/components/List/setupComponents/ListLoaderAsync.ts"],"sourcesContent":["import type { AsyncDataLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { ComponentType } from \"react\";\n\ntype Props<T> = Omit<AsyncDataLoaderShape<T>, \"asyncLoader\"> & {\n children: AsyncDataLoaderShape<T>[\"asyncLoader\"];\n};\n\nexport const ListLoaderAsync = <T>(ignoredProps: Props<T>) => null;\n\nexport const TypedListLoaderAsync = <T>() =>\n ListLoaderAsync as ComponentType<Props<T>>;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ListLoaderAsync.mjs","sources":["../../../../../../../src/components/List/setupComponents/ListLoaderAsync.ts"],"sourcesContent":["import type { AsyncDataLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { ComponentType } from \"react\";\n\ntype Props<T> = Omit<AsyncDataLoaderShape<T>, \"asyncLoader\"> & {\n children: AsyncDataLoaderShape<T>[\"asyncLoader\"];\n};\n\nexport const ListLoaderAsync = <T>(ignoredProps: Props<T>) => null;\n\nexport const TypedListLoaderAsync = <T>() =>\n ListLoaderAsync as ComponentType<Props<T>>;\n"],"names":[],"mappings":"AAOO,MAAM,eAAA,GAAkB,CAAI,YAAA,KAA2B;AAEvD,MAAM,uBAAuB,MAClC;;;;"}
|