@declarion/react 0.65.1 → 0.66.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-lib/api/access-expiry.js +32 -0
- package/dist-lib/api/agents.js +105 -0
- package/dist-lib/api/auth-redirect.js +30 -0
- package/dist-lib/api/auth.js +67 -0
- package/dist-lib/api/batch.js +34 -0
- package/dist-lib/api/client.js +241 -0
- package/dist-lib/api/data.js +122 -0
- package/dist-lib/api/entities.js +160 -0
- package/dist-lib/api/events.js +120 -0
- package/dist-lib/api/fileReferences.js +8 -0
- package/dist-lib/api/params.js +20 -0
- package/dist-lib/api/properties.js +25 -0
- package/dist-lib/api/request-bounds.js +28 -0
- package/dist-lib/api/schema.js +71 -0
- package/dist-lib/api/session-renewal.js +36 -0
- package/dist-lib/api/status.js +17 -0
- package/dist-lib/app.js +262 -0
- package/dist-lib/components/actions/ActionButton.js +116 -0
- package/dist-lib/{ActionDialog-C6EG-AmC.js → components/actions/ActionDialog.js} +63 -53
- package/dist-lib/{ActionResultDialog.impl-BATutW8J.js → components/actions/ActionResultDialog.impl.js} +53 -48
- package/dist-lib/components/actions/ActionResultDialog.js +12 -0
- package/dist-lib/components/actions/ActionRunner.js +274 -0
- package/dist-lib/components/actions/ObjectActionBar.js +127 -0
- package/dist-lib/components/actions/PropertyGridEditor.js +202 -0
- package/dist-lib/components/actions/ResponsiveActionBar.js +773 -0
- package/dist-lib/components/actions/RowActionsKebab.js +90 -0
- package/dist-lib/{AgentChatPanel.impl-D5y_qEex.js → components/agents/AgentChatPanel.impl.js} +314 -362
- package/dist-lib/components/agents/AgentChatPanel.js +12 -0
- package/dist-lib/components/agents/AgentConversationDrawer.js +59 -0
- package/dist-lib/components/agents/AgentElicitForm.js +152 -0
- package/dist-lib/components/agents/AgentOpenFollower.impl.js +7 -0
- package/dist-lib/components/agents/AgentOpenFollower.js +12 -0
- package/dist-lib/components/agents/AgentPicker.js +58 -0
- package/dist-lib/components/agents/transcript-runs.js +52 -0
- package/dist-lib/components/chrome/AssociationTabs.js +176 -0
- package/dist-lib/components/chrome/AuditMetaStrip.js +64 -0
- package/dist-lib/components/chrome/Breadcrumbs.js +67 -0
- package/dist-lib/components/chrome/HighlightsStrip.js +39 -0
- package/dist-lib/{PageHeader-DiwLe7CO.js → components/chrome/PageHeader.js} +19 -15
- package/dist-lib/{PageShell-BJz1MiTH.js → components/chrome/PageShell.js} +3 -3
- package/dist-lib/components/chrome/RecordHeader.js +119 -0
- package/dist-lib/{headerActionZone-bef-tZZ7.js → components/chrome/headerActionZone.js} +1 -1
- package/dist-lib/components/detail-layout/AssociatedBlock.js +1244 -0
- package/dist-lib/components/detail-layout/AssociatedToolbar.js +87 -0
- package/dist-lib/components/detail-layout/ChildrenBlock.js +80 -0
- package/dist-lib/components/detail-layout/ChildrenCards.js +156 -0
- package/dist-lib/components/detail-layout/ChildrenList.js +135 -0
- package/dist-lib/components/detail-layout/ChildrenTable.js +189 -0
- package/dist-lib/components/detail-layout/ChildrenTimeline.js +609 -0
- package/dist-lib/components/detail-layout/DetailAuditStrip.js +40 -0
- package/dist-lib/components/detail-layout/DetailHighlights.js +54 -0
- package/dist-lib/{DraggableChildrenTable-Dd5SeuF6.js → components/detail-layout/DraggableChildrenTable.js} +56 -53
- package/dist-lib/components/detail-layout/EditableChildrenTable.js +341 -0
- package/dist-lib/components/detail-layout/ErrorSummary.js +89 -0
- package/dist-lib/components/detail-layout/EvidenceBlock.js +66 -0
- package/dist-lib/{FieldRow-DedGIY9R.js → components/detail-layout/FieldRow.js} +8 -7
- package/dist-lib/components/detail-layout/FieldsBlock.js +74 -0
- package/dist-lib/components/detail-layout/LayoutColumn.js +16 -0
- package/dist-lib/components/detail-layout/LayoutRenderer.js +54 -0
- package/dist-lib/components/detail-layout/LayoutRow.js +83 -0
- package/dist-lib/components/detail-layout/LayoutTabs.js +195 -0
- package/dist-lib/components/detail-layout/PropertiesBlock.js +74 -0
- package/dist-lib/components/detail-layout/QuickAddForm.js +81 -0
- package/dist-lib/components/detail-layout/SectionBlock.js +48 -0
- package/dist-lib/components/detail-layout/StatusesBlock.js +18 -0
- package/dist-lib/components/detail-layout/TimelineComposer.js +205 -0
- package/dist-lib/components/detail-layout/blockMeta.js +27 -0
- package/dist-lib/components/detail-layout/useManualColumnResize.js +94 -0
- package/dist-lib/components/detail-layout/useQuickAdd.js +85 -0
- package/dist-lib/components/detail-layout/widgets/EntityScorecardWidget.js +295 -0
- package/dist-lib/components/detail-layout/widgets/JsonDiffWidget.js +107 -0
- package/dist-lib/components/detail-layout/widgets/MonacoJson.js +47 -0
- package/dist-lib/components/detail-layout/widgets/WidgetHost.js +36 -0
- package/dist-lib/components/detail-layout/widgets/builtins.js +10 -0
- package/dist-lib/components/detail-layout/widgets/canonicalizeJson.js +32 -0
- package/dist-lib/components/detail-layout/widgets/monacoBootstrap.js +16 -0
- package/dist-lib/components/detail-layout/widgets/registry.js +13 -0
- package/dist-lib/components/fields/BoolField.js +13 -0
- package/dist-lib/components/fields/EmailField.js +16 -0
- package/dist-lib/components/fields/EnumField.js +38 -0
- package/dist-lib/components/fields/FileReferenceField.js +60 -0
- package/dist-lib/components/fields/IntArrayField.js +83 -0
- package/dist-lib/components/fields/JsonField.js +51 -0
- package/dist-lib/components/fields/MultilangArrayField.js +56 -0
- package/dist-lib/components/fields/MultilangField.js +65 -0
- package/dist-lib/components/fields/MultilangTextField.js +65 -0
- package/dist-lib/components/fields/NumberField.js +64 -0
- package/dist-lib/components/fields/PasswordField.js +34 -0
- package/dist-lib/components/fields/PhoneField.js +84 -0
- package/dist-lib/components/fields/RefCombobox.js +112 -0
- package/dist-lib/components/fields/RefField.js +45 -0
- package/dist-lib/components/fields/RichTextField.js +225 -0
- package/dist-lib/components/fields/SecretField.js +34 -0
- package/dist-lib/components/fields/StringArrayField.js +165 -0
- package/dist-lib/components/fields/StringField.js +39 -0
- package/dist-lib/components/fields/StructureField.js +221 -0
- package/dist-lib/components/fields/TextField.js +76 -0
- package/dist-lib/components/fields/TimestampField.js +110 -0
- package/dist-lib/components/fields/UrlField.js +18 -0
- package/dist-lib/components/fields/cells/factories/badge.js +42 -0
- package/dist-lib/components/fields/cells/factories/boolPill.js +17 -0
- package/dist-lib/components/fields/cells/factories/code.js +11 -0
- package/dist-lib/components/fields/cells/factories/date.js +30 -0
- package/dist-lib/components/fields/cells/factories/email.js +26 -0
- package/dist-lib/components/fields/cells/factories/emptyCell.js +10 -0
- package/dist-lib/components/fields/cells/factories/fileReference.js +17 -0
- package/dist-lib/components/fields/cells/factories/host-icons.js +146 -0
- package/dist-lib/components/fields/cells/factories/json.js +61 -0
- package/dist-lib/components/fields/cells/factories/link.js +32 -0
- package/dist-lib/components/fields/cells/factories/markdown.js +31 -0
- package/dist-lib/components/fields/cells/factories/markdownPreview.js +81 -0
- package/dist-lib/components/fields/cells/factories/money.js +37 -0
- package/dist-lib/components/fields/cells/factories/multilangInline.js +35 -0
- package/dist-lib/components/fields/cells/factories/nextRun.js +46 -0
- package/dist-lib/components/fields/cells/factories/number.js +42 -0
- package/dist-lib/components/fields/cells/factories/passwordMask.js +23 -0
- package/dist-lib/components/fields/cells/factories/phone.js +35 -0
- package/dist-lib/components/fields/cells/factories/refLink.js +57 -0
- package/dist-lib/components/fields/cells/factories/richTextPreview.js +34 -0
- package/dist-lib/components/fields/cells/factories/statusPill.js +35 -0
- package/dist-lib/components/fields/cells/factories/tagList.js +44 -0
- package/dist-lib/components/fields/cells/factories/text.js +5 -0
- package/dist-lib/components/fields/cells/factories/timestamp.js +18 -0
- package/dist-lib/components/fields/cells/factories/url-helpers.js +49 -0
- package/dist-lib/components/fields/cells/factories/url.js +45 -0
- package/dist-lib/components/fields/cells/registry.js +58 -0
- package/dist-lib/components/fields/index.js +80 -0
- package/dist-lib/components/fields/langMap.js +6 -0
- package/dist-lib/components/fields/secretValue.js +7 -0
- package/dist-lib/components/file-widgets/CircleImage.js +11 -0
- package/dist-lib/components/file-widgets/DocumentCard.js +277 -0
- package/dist-lib/components/file-widgets/FileList.js +213 -0
- package/dist-lib/{Grid-XUHm5SDe.js → components/file-widgets/Grid.js} +45 -40
- package/dist-lib/components/file-widgets/GridLazy.js +15 -0
- package/dist-lib/components/file-widgets/ImageWidget.js +354 -0
- package/dist-lib/components/file-widgets/LabeledSlots.js +69 -0
- package/dist-lib/components/file-widgets/SquareImage.js +11 -0
- package/dist-lib/components/file-widgets/UnknownFileWidget.js +22 -0
- package/dist-lib/components/file-widgets/UploadFailureText.js +10 -0
- package/dist-lib/components/file-widgets/WideBanner.js +11 -0
- package/dist-lib/components/file-widgets/builtins.js +15 -0
- package/dist-lib/components/file-widgets/cropper.js +13 -0
- package/dist-lib/components/file-widgets/draft-scope.js +59 -0
- package/dist-lib/components/file-widgets/helpers.js +75 -0
- package/dist-lib/components/file-widgets/host.js +75 -0
- package/dist-lib/{payload-DioMoxMX.js → components/file-widgets/payload.js} +14 -14
- package/dist-lib/components/file-widgets/registry.js +13 -0
- package/dist-lib/components/file-widgets/upload.js +180 -0
- package/dist-lib/components/file-widgets/useEmbedFileSrc.js +45 -0
- package/dist-lib/components/file-widgets/value.js +12 -0
- package/dist-lib/components/filters/FilterChips.js +123 -0
- package/dist-lib/components/filters/FilterConditionValue.js +40 -0
- package/dist-lib/components/filters/FilterDrawer.js +670 -0
- package/dist-lib/components/filters/FilterOmittedNotice.js +14 -0
- package/dist-lib/components/filters/filter-op-label.js +8 -0
- package/dist-lib/{CommandPalette.impl-DRI5kxVY.js → components/layout/CommandPalette.impl.js} +62 -61
- package/dist-lib/components/layout/CommandPalette.js +12 -0
- package/dist-lib/{DirtyTabsCloseDialog.impl-FhAiOmEb.js → components/layout/DirtyTabsCloseDialog.impl.js} +16 -14
- package/dist-lib/components/layout/DirtyTabsCloseDialog.js +12 -0
- package/dist-lib/{ImpersonationBanner.impl--g0iYwcV.js → components/layout/ImpersonationBanner.impl.js} +4 -3
- package/dist-lib/components/layout/ImpersonationBanner.js +12 -0
- package/dist-lib/components/layout/ImpersonationFrame.js +29 -0
- package/dist-lib/{ImpersonationStartModal.impl-BFBN0YJe.js → components/layout/ImpersonationStartModal.impl.js} +9 -9
- package/dist-lib/components/layout/ImpersonationStartModal.js +12 -0
- package/dist-lib/components/layout/Layout.js +755 -0
- package/dist-lib/components/layout/Rail.js +149 -0
- package/dist-lib/components/layout/Sidebar.js +362 -0
- package/dist-lib/components/layout/TabStrip.js +321 -0
- package/dist-lib/components/layout/TenantChip.js +355 -0
- package/dist-lib/components/layout/TopBar.js +305 -0
- package/dist-lib/components/layout/tab-close.js +24 -0
- package/dist-lib/components/list/ColumnPicker.js +112 -0
- package/dist-lib/components/list/InlineEditCell.js +107 -0
- package/dist-lib/components/list/PeekFieldCell.js +143 -0
- package/dist-lib/components/list/QuickPeek.js +263 -0
- package/dist-lib/components/list/ViewSwitcher.js +156 -0
- package/dist-lib/components/list/peekDraftStore.js +14 -0
- package/dist-lib/{AdminCatalogPage.impl-B-7MLqa1.js → components/pages/AdminCatalogPage.impl.js} +53 -49
- package/dist-lib/components/pages/AdminCatalogPage.js +12 -0
- package/dist-lib/components/pages/DocumentsMenu.js +150 -0
- package/dist-lib/components/pages/ExportMenu.js +123 -0
- package/dist-lib/{NotFoundPage.impl-BoX11u-P.js → components/pages/NotFoundPage.impl.js} +6 -4
- package/dist-lib/components/pages/NotFoundPage.js +12 -0
- package/dist-lib/components/pages/RecordDocumentsPanel.js +230 -0
- package/dist-lib/components/pages/RecordNotesPanel.js +200 -0
- package/dist-lib/components/pages/RecordPanels.js +18 -0
- package/dist-lib/components/pages/SSOCallbackPage.impl.js +28 -0
- package/dist-lib/components/pages/SSOCallbackPage.js +12 -0
- package/dist-lib/components/pages/SmartDetailPage.impl.js +986 -0
- package/dist-lib/components/pages/SmartDetailPage.js +12 -0
- package/dist-lib/components/pages/SmartListPage.impl.js +708 -0
- package/dist-lib/components/pages/SmartListPage.js +12 -0
- package/dist-lib/components/pages/SmartRecordListPage.impl.js +818 -0
- package/dist-lib/components/pages/SmartRecordListPage.js +12 -0
- package/dist-lib/components/pages/auth/AuthShell.js +350 -0
- package/dist-lib/{Forgot.impl-6tL6SBlS.js → components/pages/auth/Forgot.impl.js} +13 -12
- package/dist-lib/components/pages/auth/Forgot.js +12 -0
- package/dist-lib/{Reset.impl-D0pjhS6d.js → components/pages/auth/Reset.impl.js} +17 -15
- package/dist-lib/components/pages/auth/Reset.js +12 -0
- package/dist-lib/components/pages/auth/SignIn.js +252 -0
- package/dist-lib/{SignUp.impl-CfEXrUeg.js → components/pages/auth/SignUp.impl.js} +31 -27
- package/dist-lib/components/pages/auth/SignUp.js +12 -0
- package/dist-lib/{TwoFA.impl-B2HtPduH.js → components/pages/auth/TwoFA.impl.js} +9 -8
- package/dist-lib/components/pages/auth/TwoFA.js +12 -0
- package/dist-lib/components/pages/auth/icons.js +56 -0
- package/dist-lib/components/pages/exportRequest.js +17 -0
- package/dist-lib/components/pages/list/DataCell.js +27 -0
- package/dist-lib/components/pages/list/DeleteViewDialog.js +22 -0
- package/dist-lib/{ListCardsBody-BEoYjSZ2.js → components/pages/list/ListCardRow.js} +47 -72
- package/dist-lib/components/pages/list/ListCardsBody.js +31 -0
- package/dist-lib/components/pages/list/ListFloatbar.js +130 -0
- package/dist-lib/components/pages/list/ListFooter.js +138 -0
- package/dist-lib/components/pages/list/ListHeader.js +120 -0
- package/dist-lib/components/pages/list/ListNoRows.js +72 -0
- package/dist-lib/components/pages/list/ListTable.js +191 -0
- package/dist-lib/components/pages/list/ListTableRow.js +37 -0
- package/dist-lib/components/pages/list/ListToolbar.js +261 -0
- package/dist-lib/components/pages/list/ListUrlBanner.js +45 -0
- package/dist-lib/components/pages/list/RowActionsCell.js +49 -0
- package/dist-lib/components/pages/list/RowContextMenu.js +55 -0
- package/dist-lib/components/pages/list/SaveViewDialog.js +111 -0
- package/dist-lib/{SortHeaderMenu-Co5PvhTA.js → components/pages/list/SortHeaderMenu.js} +18 -17
- package/dist-lib/{cardProjection-Cxlogzh8.js → components/pages/list/cardProjection.js} +3 -3
- package/dist-lib/components/pages/list/column-sizing.js +17 -0
- package/dist-lib/components/pages/list/columns.js +168 -0
- package/dist-lib/components/pages/list/filter-meta.js +84 -0
- package/dist-lib/components/pages/list/page-size.js +11 -0
- package/dist-lib/components/pages/list/sortable-header.js +18 -0
- package/dist-lib/components/pages/list/table-features.js +11 -0
- package/dist-lib/components/pages/list/use-filter-value-labels.js +115 -0
- package/dist-lib/components/pages/list/useActiveView.js +98 -0
- package/dist-lib/components/pages/list/useHeaderReorder.js +93 -0
- package/dist-lib/components/pages/list/useListColumnLayout.js +56 -0
- package/dist-lib/components/pages/list/useListFilterPresentation.js +34 -0
- package/dist-lib/components/pages/list/useListQuery.js +101 -0
- package/dist-lib/components/pages/list/useListRowInteraction.js +120 -0
- package/dist-lib/components/pages/list/useListSelection.js +53 -0
- package/dist-lib/components/pages/list/useListSort.js +44 -0
- package/dist-lib/components/pages/list/useListViews.js +148 -0
- package/dist-lib/components/pages/list/useRowMenu.js +106 -0
- package/dist-lib/components/pages/list/visible-filters.js +19 -0
- package/dist-lib/{Preferences.impl-Ct5xwZtT.js → components/pages/profile/Preferences.impl.js} +34 -31
- package/dist-lib/components/pages/profile/Preferences.js +12 -0
- package/dist-lib/components/pages/profile/Profile.impl.js +437 -0
- package/dist-lib/components/pages/profile/Profile.js +12 -0
- package/dist-lib/{TenantParamsPage.impl-BGpdmEZg.js → components/pages/tenant-params/TenantParamsPage.impl.js} +45 -40
- package/dist-lib/components/pages/tenant-params/TenantParamsPage.js +12 -0
- package/dist-lib/components/params/ParamsBlock.js +119 -0
- package/dist-lib/{param-editors-TYYU7HKK.js → components/params/param-editors.js} +32 -28
- package/dist-lib/components/primitives/Avatar.js +33 -0
- package/dist-lib/components/primitives/BoolToggle.js +35 -0
- package/dist-lib/components/primitives/BrandGlyph.js +38 -0
- package/dist-lib/components/primitives/BrandLogo.js +20 -0
- package/dist-lib/components/primitives/Btn.js +67 -0
- package/dist-lib/{Check-DAfMbQIw.js → components/primitives/Check.js} +2 -2
- package/dist-lib/components/primitives/Chip.js +44 -0
- package/dist-lib/components/primitives/ClassifiedFieldLocked.js +15 -0
- package/dist-lib/components/primitives/Dropdown.js +85 -0
- package/dist-lib/components/primitives/Fields.js +751 -0
- package/dist-lib/components/primitives/HoverCard.js +115 -0
- package/dist-lib/components/primitives/IconBtn.js +37 -0
- package/dist-lib/{Icons-lt-7lhYR.js → components/primitives/Icons.js} +1 -1
- package/dist-lib/{Kbd-CNttVu0z.js → components/primitives/Kbd.js} +2 -2
- package/dist-lib/components/primitives/MenuItem.js +57 -0
- package/dist-lib/{Pill-D-wsfRhx.js → components/primitives/Pill.js} +1 -1
- package/dist-lib/{RecordIdBadge-wbigZaFc.js → components/primitives/RecordIdBadge.js} +5 -5
- package/dist-lib/components/primitives/RowField.js +47 -0
- package/dist-lib/{SectionCard-BYHoHWJc.js → components/primitives/SectionCard.js} +10 -10
- package/dist-lib/components/primitives/Spinner.js +31 -0
- package/dist-lib/components/primitives/StatTile.js +108 -0
- package/dist-lib/components/primitives/Tooltip.js +115 -0
- package/dist-lib/{dataTableStyles-vwD1mVOP.js → components/primitives/dataTableStyles.js} +1 -1
- package/dist-lib/components/shared/BlankScreen.js +13 -0
- package/dist-lib/{ChangePasswordDialog.impl-5hDc0wpE.js → components/shared/ChangePasswordDialog.impl.js} +27 -22
- package/dist-lib/{ChangePasswordDialog-C_T_3pjl.js → components/shared/ChangePasswordDialog.js} +2 -2
- package/dist-lib/components/shared/ConfirmDialog.js +129 -0
- package/dist-lib/components/shared/ConnectionNotice.js +12 -0
- package/dist-lib/components/shared/CopyButton.js +25 -0
- package/dist-lib/components/shared/DynamicIcon.js +73 -0
- package/dist-lib/components/shared/EmptyState.js +56 -0
- package/dist-lib/components/shared/ErrorBoundary.js +96 -0
- package/dist-lib/components/shared/LoadingSkeleton.js +117 -0
- package/dist-lib/components/shared/LucideIcon.js +43 -0
- package/dist-lib/components/shared/Markdown.js +15 -0
- package/dist-lib/{MarkdownRenderer-sK2TRZS-.js → components/shared/MarkdownRenderer.js} +10 -9
- package/dist-lib/components/shared/RefreshControl.js +42 -0
- package/dist-lib/components/shared/StatusGroupsDisplay.js +123 -0
- package/dist-lib/components/shared/StatusStepper.js +70 -0
- package/dist-lib/components/shared/toast/DeclarionToast.js +308 -0
- package/dist-lib/components/shared/useOwnRefresh.js +19 -0
- package/dist-lib/declarion-react.css +1 -1
- package/dist-lib/embed/EmbedAuthBootstrap.js +71 -0
- package/dist-lib/embed/EmbedContext.js +38 -0
- package/dist-lib/embed/EmbedDirtyReporter.js +17 -0
- package/dist-lib/embed/EmbedHistoryTracker.js +17 -0
- package/dist-lib/embed/EmbedLocationReporter.js +26 -0
- package/dist-lib/embed/EmbedResizeReporter.js +25 -0
- package/dist-lib/embed/EmbedUnsavedGuard.js +23 -0
- package/dist-lib/embed/embed-dirty.js +21 -0
- package/dist-lib/embed/embed-history.js +17 -0
- package/dist-lib/embed/embed-nav-guard.js +13 -0
- package/dist-lib/embed/file-src.js +60 -0
- package/dist-lib/embed/handshake.js +37 -0
- package/dist-lib/embed/params.js +45 -0
- package/dist-lib/embed/protocol.js +26 -0
- package/dist-lib/embed/screen-location.js +44 -0
- package/dist-lib/embed/theme.js +11 -0
- package/dist-lib/embed/token.js +54 -0
- package/dist-lib/embed/useEmbedNavigate.js +65 -0
- package/dist-lib/embed/useGlobalLinkInterceptor.js +63 -0
- package/dist-lib/hooks/useActionData.js +58 -0
- package/dist-lib/hooks/useAgentConversation.js +311 -0
- package/dist-lib/hooks/useAggregate.js +18 -0
- package/dist-lib/hooks/useAllEntityData.js +53 -0
- package/dist-lib/hooks/useAssociatedData.js +37 -0
- package/dist-lib/hooks/useAuth.js +56 -0
- package/dist-lib/hooks/useBranding.js +18 -0
- package/dist-lib/hooks/useBrandingChrome.js +58 -0
- package/dist-lib/hooks/useChildrenData.js +33 -0
- package/dist-lib/hooks/useColumns.js +44 -0
- package/dist-lib/hooks/useConnectionNotice.js +35 -0
- package/dist-lib/{useCurrentLocation-Bq1T72AW.js → hooks/useCurrentLocation.js} +2 -2
- package/dist-lib/hooks/useCurrentScreen.js +20 -0
- package/dist-lib/hooks/useCursorEntityData.js +77 -0
- package/dist-lib/hooks/useDebounce.js +11 -0
- package/dist-lib/hooks/useEntity.js +8 -0
- package/dist-lib/hooks/useEntityData.js +64 -0
- package/dist-lib/hooks/useFileReferenceJSON.js +29 -0
- package/dist-lib/hooks/useFilters.js +28 -0
- package/dist-lib/hooks/useFollowAgentOpen.js +84 -0
- package/dist-lib/hooks/useImpersonation.js +40 -0
- package/dist-lib/hooks/useIntentPrefetch.js +43 -0
- package/dist-lib/hooks/useJsonSnapshot.js +8 -0
- package/dist-lib/hooks/useLanguage.js +21 -0
- package/dist-lib/hooks/useLiveObject.js +17 -0
- package/dist-lib/hooks/useLongPress.js +49 -0
- package/dist-lib/hooks/useMutations.js +70 -0
- package/dist-lib/{useObject-B45F96rC.js → hooks/useObject.js} +2 -2
- package/dist-lib/hooks/useObjectStatus.js +20 -0
- package/dist-lib/hooks/usePageState.js +18 -0
- package/dist-lib/hooks/usePageStateRuntime.js +46 -0
- package/dist-lib/hooks/usePageStateTtl.js +10 -0
- package/dist-lib/hooks/useParams.js +123 -0
- package/dist-lib/hooks/useProperties.js +32 -0
- package/dist-lib/hooks/useRealtimeThresholds.js +31 -0
- package/dist-lib/hooks/useRegisterScreenTab.js +28 -0
- package/dist-lib/hooks/useResponsiveMode.js +84 -0
- package/dist-lib/hooks/useSSE.js +307 -0
- package/dist-lib/hooks/useSchema.js +73 -0
- package/dist-lib/hooks/useScreen.js +8 -0
- package/dist-lib/hooks/useScreenBack.js +60 -0
- package/dist-lib/hooks/useScreenTab.js +11 -0
- package/dist-lib/hooks/useTabNavigate.js +82 -0
- package/dist-lib/hooks/useTabSearchMirror.js +19 -0
- package/dist-lib/{useTabTitle-KrzEo118.js → hooks/useTabTitle.js} +9 -7
- package/dist-lib/hooks/useText.js +15 -0
- package/dist-lib/hooks/useTimelineData.js +44 -0
- package/dist-lib/hooks/useUnsavedInput.js +18 -0
- package/dist-lib/hooks/useVersionWatcher.js +62 -0
- package/dist-lib/hooks/useViews.js +88 -0
- package/dist-lib/hooks/useWindowConversation.js +11 -0
- package/dist-lib/icons.js +5 -3
- package/dist-lib/index.d.ts +42 -20
- package/dist-lib/index.js +131 -3926
- package/dist-lib/lib/action-dispatch.js +7 -0
- package/dist-lib/lib/actions.js +279 -0
- package/dist-lib/lib/anchor.js +41 -0
- package/dist-lib/lib/brand-tokens.js +95 -0
- package/dist-lib/lib/branding.js +25 -0
- package/dist-lib/lib/canonical-url.js +17 -0
- package/dist-lib/lib/capabilityPrefetch.js +57 -0
- package/dist-lib/lib/child-config.js +111 -0
- package/dist-lib/lib/children-validation.js +52 -0
- package/dist-lib/lib/decimal-text.js +15 -0
- package/dist-lib/lib/display-value.js +19 -0
- package/dist-lib/lib/document-templates.js +6 -0
- package/dist-lib/lib/download.js +41 -0
- package/dist-lib/lib/evidence-verdict.js +23 -0
- package/dist-lib/lib/failure.js +9 -0
- package/dist-lib/lib/field-classification.js +58 -0
- package/dist-lib/lib/field-regions.js +13 -0
- package/dist-lib/lib/filter-evaluator.js +98 -0
- package/dist-lib/lib/filters.js +118 -0
- package/dist-lib/lib/format-count.js +24 -0
- package/dist-lib/lib/html-state.js +9 -0
- package/dist-lib/lib/language.js +52 -0
- package/dist-lib/lib/longPressGesture.js +34 -0
- package/dist-lib/lib/mass-edit.js +65 -0
- package/dist-lib/{page-inset-D_kkVwwN.js → lib/page-inset.js} +1 -1
- package/dist-lib/lib/phone.js +28 -0
- package/dist-lib/lib/query-retry.js +7 -0
- package/dist-lib/lib/quick-add.js +23 -0
- package/dist-lib/lib/realtime-query-keys.js +23 -0
- package/dist-lib/lib/realtime-reconcile.js +148 -0
- package/dist-lib/lib/realtime-resync.js +192 -0
- package/dist-lib/lib/record-documents-key.js +4 -0
- package/dist-lib/lib/ref-choices.js +6 -0
- package/dist-lib/lib/refetch-when-idle.js +25 -0
- package/dist-lib/lib/rich-text.js +46 -0
- package/dist-lib/lib/rowClickGesture.js +10 -0
- package/dist-lib/lib/safe-url.js +34 -0
- package/dist-lib/lib/schema-routing.js +51 -0
- package/dist-lib/{screen-back-BtbEp5sO.js → lib/screen-back.js} +2 -2
- package/dist-lib/lib/scroll-restoration.js +156 -0
- package/dist-lib/lib/size-value.js +22 -0
- package/dist-lib/lib/sort.js +59 -0
- package/dist-lib/lib/timestamp.js +97 -0
- package/dist-lib/lib/toast.js +78 -0
- package/dist-lib/lib/ui-actions.js +81 -0
- package/dist-lib/{utils-D_QDpB8_.js → lib/utils.js} +1 -1
- package/dist-lib/lib/variants.js +63 -0
- package/dist-lib/lib/versionTracker.js +102 -0
- package/dist-lib/lib/viewport-category.js +12 -0
- package/dist-lib/{window-election-CHIvIZwx.js → lib/window-election.js} +1 -1
- package/dist-lib/stores/auth.js +84 -0
- package/dist-lib/stores/icon-registry.js +24 -0
- package/dist-lib/stores/list-layout.js +178 -0
- package/dist-lib/{page-state-eA6J_KIR.js → stores/page-state.js} +1 -1
- package/dist-lib/stores/preferences.js +126 -0
- package/dist-lib/stores/realtime.js +115 -0
- package/dist-lib/stores/screen-registry.js +10 -0
- package/dist-lib/stores/tabs.js +220 -0
- package/dist-lib/test/seed-schema.js +8 -0
- package/dist-lib/testing.d.ts +1 -1
- package/dist-lib/testing.js +80 -76
- package/dist-lib/types/api.js +48 -0
- package/dist-lib/types/fieldType.js +4 -0
- package/dist-lib/types/ordmap.js +50 -0
- package/dist-lib/types/schema.js +173 -0
- package/dist-lib/{useResponsiveMode-DIR1bZfo.d.ts → useResponsiveMode-DmrpMbZX.d.ts} +44 -16
- package/package.json +13 -12
- package/dist-lib/ActionRunner-DdBFhqGe.js +0 -1440
- package/dist-lib/AgentOpenFollower.impl-BAs_wGEZ.js +0 -81
- package/dist-lib/AssociatedBlock-BOoPLOjw.js +0 -1515
- package/dist-lib/AuthShell-C8aVwHS7.js +0 -361
- package/dist-lib/BlankScreen-DVc7fh8C.js +0 -61
- package/dist-lib/CopyButton-DRIT_f0k.js +0 -119
- package/dist-lib/DynamicIcon-DuBSz6TZ.js +0 -133
- package/dist-lib/FilterChips-Cv1tlXyo.js +0 -1031
- package/dist-lib/LayoutRenderer-d-tXYPze.js +0 -3239
- package/dist-lib/MenuItem-CfkVXPvC.js +0 -140
- package/dist-lib/MonacoJson-BG3S3GHX.js +0 -60
- package/dist-lib/Profile.impl-Cypk27ah.js +0 -527
- package/dist-lib/PropertyGridEditor-XrP6TZ5s.js +0 -4378
- package/dist-lib/RecordHeader-BfQ0_4wq.js +0 -217
- package/dist-lib/RefreshControl-CRdWPoF5.js +0 -195
- package/dist-lib/SSOCallbackPage.impl-Cfi2pQ59.js +0 -31
- package/dist-lib/SmartDetailPage.impl-BiIX0n7K.js +0 -1609
- package/dist-lib/SmartListPage.impl-Cu83Gv_G.js +0 -2818
- package/dist-lib/SmartRecordListPage.impl-DR6lq7HA.js +0 -795
- package/dist-lib/format-count-lyB4CPen.js +0 -943
- package/dist-lib/peekDraftStore-CaimrOhW.js +0 -200
- package/dist-lib/registry-CGe5kCXN.js +0 -119
- package/dist-lib/use-filter-value-labels-D3YDgUzg.js +0 -413
- package/dist-lib/useAgentConversation-rru-7hnF.js +0 -612
- package/dist-lib/useBranding-zcxEic2k.js +0 -41
- package/dist-lib/useBrandingChrome-bxaR3G1R.js +0 -170
- package/dist-lib/useCurrentScreen-BZOHBGQZ.js +0 -2522
- package/dist-lib/useImpersonation-DBIRRR70.js +0 -35
- package/dist-lib/useOwnRefresh-DJjaje52.js +0 -435
- package/dist-lib/useParams-BFLJi4n3.js +0 -133
- package/dist-lib/useProperties-B7opZ-iy.js +0 -81
- package/dist-lib/useScreenBack-DENlz844.js +0 -71
- package/dist-lib/useTabNavigate-CUqOmcMj.js +0 -78
- package/dist-lib/value-BuQVYx52.js +0 -194
- package/dist-lib/variants-vUtfBbE6.js +0 -1961
- /package/dist-lib/{JsonEditor-Dz1PQHC8.js → components/fields/JsonEditor.js} +0 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { coerceDisplayString as e } from "../../../lib/display-value.js";
|
|
2
|
+
import { getPrimaryKeyFields as t, resolveRefRecordLabel as n } from "../../../types/schema.js";
|
|
3
|
+
import { useText as r } from "../../../hooks/useText.js";
|
|
4
|
+
import { listEntities as i } from "../../../api/data.js";
|
|
5
|
+
import { flatFieldConditions as a } from "../../../lib/filters.js";
|
|
6
|
+
import { useQueries as o } from "@tanstack/react-query";
|
|
7
|
+
//#region src/components/pages/list/use-filter-value-labels.ts
|
|
8
|
+
var s = 200;
|
|
9
|
+
function c(t, a, c, u) {
|
|
10
|
+
let d = r(), f = new Map(t.map((e) => [e.code, e])), p = l(f, a, c, u), m = o({ queries: p.map((e) => {
|
|
11
|
+
let t = {
|
|
12
|
+
per_page: s,
|
|
13
|
+
filters: [{
|
|
14
|
+
field: e.lookupField,
|
|
15
|
+
op: "in",
|
|
16
|
+
value: e.values
|
|
17
|
+
}],
|
|
18
|
+
count: "window"
|
|
19
|
+
};
|
|
20
|
+
return {
|
|
21
|
+
queryKey: [
|
|
22
|
+
"entity-data",
|
|
23
|
+
e.entity,
|
|
24
|
+
t
|
|
25
|
+
],
|
|
26
|
+
queryFn: ({ signal: n }) => i(e.entity, t, { signal: n }),
|
|
27
|
+
staleTime: 6e4
|
|
28
|
+
};
|
|
29
|
+
}) }), h = {};
|
|
30
|
+
if (c) for (let [e, t] of Object.entries(c)) h[e] = { ...t };
|
|
31
|
+
let g = /* @__PURE__ */ new Set();
|
|
32
|
+
return m.forEach((t, n) => {
|
|
33
|
+
let r = p[n];
|
|
34
|
+
if (!r) return;
|
|
35
|
+
let i = t.data?.data;
|
|
36
|
+
if (i) {
|
|
37
|
+
let t = h[r.entity] ??= {};
|
|
38
|
+
for (let n of i) {
|
|
39
|
+
let i = e(n[r.lookupField]);
|
|
40
|
+
i && (t[i] = n);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (t.isLoading) for (let e of r.values) h[r.entity]?.[e] || g.add(`${r.entity}::${e}`);
|
|
44
|
+
}), {
|
|
45
|
+
labelFor: (t, r) => {
|
|
46
|
+
let i = e(r), a = f.get(t);
|
|
47
|
+
if (!a) return {
|
|
48
|
+
status: "plain",
|
|
49
|
+
raw: i
|
|
50
|
+
};
|
|
51
|
+
let o = a.specialValues?.find((e) => e.code === i);
|
|
52
|
+
if (o) return {
|
|
53
|
+
status: "special",
|
|
54
|
+
label: d(o.label) || i,
|
|
55
|
+
raw: i
|
|
56
|
+
};
|
|
57
|
+
if (a.options) {
|
|
58
|
+
let e = a.options.find((e) => e.value === i);
|
|
59
|
+
if (e) return {
|
|
60
|
+
status: "resolved",
|
|
61
|
+
label: e.label,
|
|
62
|
+
raw: i
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (a.type === "ref" && a.ref?.entity) {
|
|
66
|
+
let e = a.ref.entity, t = h[e]?.[i];
|
|
67
|
+
if (t) {
|
|
68
|
+
let r = a.ref.display?.field ?? u?.[e]?.display?.display_field;
|
|
69
|
+
return {
|
|
70
|
+
status: "resolved",
|
|
71
|
+
label: n(d, t, r, i),
|
|
72
|
+
raw: i
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return g.has(`${e}::${i}`) ? {
|
|
76
|
+
status: "loading",
|
|
77
|
+
raw: i
|
|
78
|
+
} : {
|
|
79
|
+
status: "unresolved",
|
|
80
|
+
raw: i
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
status: "plain",
|
|
85
|
+
raw: i
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
refs: h
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function l(n, r, i, o) {
|
|
92
|
+
let s = /* @__PURE__ */ new Map();
|
|
93
|
+
for (let c of a(r)) {
|
|
94
|
+
if (!c.field) continue;
|
|
95
|
+
let r = n.get(c.field);
|
|
96
|
+
if (!r || r.type !== "ref" || !r.ref?.entity) continue;
|
|
97
|
+
let a = r.ref.entity, l = o?.[a], u = r.ref.field || (l ? t(l)[0] : "id") || "id", d = Array.isArray(c.value) ? c.value : [c.value];
|
|
98
|
+
for (let t of d) {
|
|
99
|
+
let n = e(t);
|
|
100
|
+
if (!n || r.specialValues?.some((e) => e.code === n) || i?.[a]?.[n]) continue;
|
|
101
|
+
let o = `${a}::${u}`, c = s.get(o);
|
|
102
|
+
c || (c = {
|
|
103
|
+
key: o,
|
|
104
|
+
entity: a,
|
|
105
|
+
lookupField: u,
|
|
106
|
+
values: []
|
|
107
|
+
}, s.set(o, c)), c.values.includes(n) || c.values.push(n);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
let c = [...s.values()];
|
|
111
|
+
for (let e of c) e.values.sort();
|
|
112
|
+
return c.sort((e, t) => e.key.localeCompare(t.key)), c;
|
|
113
|
+
}
|
|
114
|
+
//#endregion
|
|
115
|
+
export { c as useFilterValueLabels };
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { EMBED_PARAM_KEYS as e } from "../../../embed/params.js";
|
|
2
|
+
import { useViewById as t, useViewsQuery as n } from "../../../hooks/useViews.js";
|
|
3
|
+
import { readableSort as r } from "../../../lib/field-classification.js";
|
|
4
|
+
import { useCallback as i, useEffect as a, useMemo as o, useState as s } from "react";
|
|
5
|
+
//#region src/components/pages/list/useActiveView.ts
|
|
6
|
+
var c = [], l = [], u = [
|
|
7
|
+
"search",
|
|
8
|
+
"per_page",
|
|
9
|
+
"include_deleted"
|
|
10
|
+
];
|
|
11
|
+
function d(t) {
|
|
12
|
+
let n = new URLSearchParams();
|
|
13
|
+
for (let r of [...u, ...e]) {
|
|
14
|
+
let e = t.get(r);
|
|
15
|
+
e !== null && e !== "" && n.set(r, e);
|
|
16
|
+
}
|
|
17
|
+
return n.set("page", "1"), n;
|
|
18
|
+
}
|
|
19
|
+
function f(e, t, n) {
|
|
20
|
+
return `dcl:smartlist:default-view-cleared:${t ?? ""}:${n ?? ""}:${e}`;
|
|
21
|
+
}
|
|
22
|
+
function p(e) {
|
|
23
|
+
if (typeof window > "u") return !1;
|
|
24
|
+
try {
|
|
25
|
+
return window.sessionStorage?.getItem(e) === "1";
|
|
26
|
+
} catch {
|
|
27
|
+
return !1;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function m(e, t, n) {
|
|
31
|
+
return {
|
|
32
|
+
filters: t?.filters ?? c,
|
|
33
|
+
sort: r(e, t?.sort) ?? r(e, n?.sort_default)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function h({ screenCode: e, screen: r, entity: c, searchParams: u, setSearchParams: h, userId: g, tenantId: _, filterError: v }) {
|
|
37
|
+
let { views: y, isSettled: b, refetch: x } = n(e, g), S = u.get("view"), C = o(() => y.find((e) => e.id === S), [y, S]), w = t(b && !C ? S : null, g), T = C ?? w.view, E = !!S && !T && (!b || !w.isSettled), D = u.get("filters") !== null || u.get("columns") !== null || u.get("sort") !== null, O = `${e}|${S ?? ""}`, [k, A] = s(null), j = k === O, M = f(e, _, g), N = p(M), P = o(() => {
|
|
38
|
+
if (!(S || N || D)) return y.find((e) => e.source === "personal" && e.is_default) ?? (r?.default_view ? y.find((e) => e.source === "system" && e.id === r.default_view) : void 0);
|
|
39
|
+
}, [
|
|
40
|
+
S,
|
|
41
|
+
N,
|
|
42
|
+
D,
|
|
43
|
+
y,
|
|
44
|
+
r?.default_view
|
|
45
|
+
]);
|
|
46
|
+
a(() => {
|
|
47
|
+
if (j) return;
|
|
48
|
+
if (v || S || N || D) {
|
|
49
|
+
A(O);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (!b || (A(O), !P?.id)) return;
|
|
53
|
+
let e = d(u);
|
|
54
|
+
e.set("view", P.id), h(e, { replace: !0 });
|
|
55
|
+
}, [
|
|
56
|
+
j,
|
|
57
|
+
O,
|
|
58
|
+
v,
|
|
59
|
+
S,
|
|
60
|
+
N,
|
|
61
|
+
D,
|
|
62
|
+
b,
|
|
63
|
+
P,
|
|
64
|
+
u,
|
|
65
|
+
h
|
|
66
|
+
]);
|
|
67
|
+
let F = E, I = !S && !v && !N && !D && (!j || !!P);
|
|
68
|
+
return {
|
|
69
|
+
all: y,
|
|
70
|
+
activeId: S,
|
|
71
|
+
active: T,
|
|
72
|
+
defaults: o(() => ({
|
|
73
|
+
...m(c, T, r),
|
|
74
|
+
columns: T?.columns?.length ? T.columns : r?.default_columns ?? r?.columns ?? l
|
|
75
|
+
}), [
|
|
76
|
+
c,
|
|
77
|
+
T,
|
|
78
|
+
r
|
|
79
|
+
]),
|
|
80
|
+
clearedKey: M,
|
|
81
|
+
clearActiveView: i(() => {
|
|
82
|
+
if (typeof window < "u") try {
|
|
83
|
+
window.sessionStorage?.setItem(M, "1");
|
|
84
|
+
} catch {}
|
|
85
|
+
let e = new URLSearchParams(u);
|
|
86
|
+
e.delete("view"), e.set("page", "1"), h(e, { replace: !0 });
|
|
87
|
+
}, [
|
|
88
|
+
u,
|
|
89
|
+
h,
|
|
90
|
+
M
|
|
91
|
+
]),
|
|
92
|
+
retryViews: x,
|
|
93
|
+
isUnresolved: !!S && !T && !E,
|
|
94
|
+
isHeld: F || I
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
export { d as baseViewSearchParams, f as defaultViewClearedKey, h as useActiveView, m as viewQuery };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { useCallback as e, useEffect as t, useRef as n, useState as r } from "react";
|
|
2
|
+
//#region src/components/pages/list/useHeaderReorder.ts
|
|
3
|
+
var i = 5, a = 48, o = 18;
|
|
4
|
+
function s({ visibleCols: s, onReorder: c, scrollElRef: l, theadRef: u }) {
|
|
5
|
+
let [d, f] = r(null), [p, m] = r(null), [h, g] = r(!1), _ = n(null), v = n(!1), y = n(!1), b = n([]), x = n(null), S = n(0), C = n(null), w = n(0), T = e(() => {
|
|
6
|
+
C.current !== null && (cancelAnimationFrame(C.current), C.current = null);
|
|
7
|
+
}, []), E = e(() => {
|
|
8
|
+
_.current = null, v.current = !1, b.current = [], x.current = null, T(), f(null), m(null), g(!1);
|
|
9
|
+
}, [T]), D = e((e) => {
|
|
10
|
+
let t = b.current, n = e + ((l.current?.scrollLeft ?? 0) - w.current);
|
|
11
|
+
for (let e = 0; e < t.length; e++) if (n < (t[e].left + t[e].right) / 2) return e;
|
|
12
|
+
return t.length;
|
|
13
|
+
}, [l]), O = e(() => {
|
|
14
|
+
let e = l.current;
|
|
15
|
+
if (!v.current || !e) {
|
|
16
|
+
C.current = null;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
let t = e.getBoundingClientRect(), n = S.current, r = 0;
|
|
20
|
+
if (n < t.left + a ? r = -Math.ceil((t.left + a - n) / a * o) : n > t.right - a && (r = Math.ceil((n - (t.right - a)) / a * o)), r !== 0) {
|
|
21
|
+
e.scrollLeft += r;
|
|
22
|
+
let t = D(S.current);
|
|
23
|
+
x.current = t, m(t);
|
|
24
|
+
}
|
|
25
|
+
C.current = requestAnimationFrame(O);
|
|
26
|
+
}, [l, D]), k = e((e, t) => {
|
|
27
|
+
t.button === 0 && (_.current = {
|
|
28
|
+
colId: e,
|
|
29
|
+
x: t.clientX
|
|
30
|
+
}, v.current = !1, y.current = !1);
|
|
31
|
+
}, []), A = e(() => y.current ? (y.current = !1, !0) : !1, []);
|
|
32
|
+
return t(() => {
|
|
33
|
+
let e = (e) => {
|
|
34
|
+
let t = _.current;
|
|
35
|
+
if (!t) return;
|
|
36
|
+
if (S.current = e.clientX, !v.current) {
|
|
37
|
+
if (Math.abs(e.clientX - t.x) < i) return;
|
|
38
|
+
let n = u.current, r = [];
|
|
39
|
+
if (n) for (let e of s) {
|
|
40
|
+
let t = n.querySelector(`[data-col-id="${CSS.escape(e)}"]`);
|
|
41
|
+
if (t) {
|
|
42
|
+
let n = t.getBoundingClientRect();
|
|
43
|
+
r.push({
|
|
44
|
+
id: e,
|
|
45
|
+
left: n.left,
|
|
46
|
+
right: n.right
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
b.current = r, w.current = l.current?.scrollLeft ?? 0, v.current = !0, y.current = !0, f(t.colId), g(!0), C.current === null && (C.current = requestAnimationFrame(O));
|
|
51
|
+
}
|
|
52
|
+
let n = D(e.clientX);
|
|
53
|
+
x.current = n, m(n);
|
|
54
|
+
}, t = (e) => {
|
|
55
|
+
let t = _.current;
|
|
56
|
+
if (t && v.current && e) {
|
|
57
|
+
let e = s.indexOf(t.colId), n = x.current ?? e;
|
|
58
|
+
if (e !== -1) {
|
|
59
|
+
let r = s.filter((t, n) => n !== e);
|
|
60
|
+
n > e && --n, n = Math.max(0, Math.min(n, r.length));
|
|
61
|
+
let i = [
|
|
62
|
+
...r.slice(0, n),
|
|
63
|
+
t.colId,
|
|
64
|
+
...r.slice(n)
|
|
65
|
+
];
|
|
66
|
+
i.some((e, t) => e !== s[t]) && c(i);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
E();
|
|
70
|
+
}, n = () => t(!0), r = (e) => {
|
|
71
|
+
e.key === "Escape" && v.current && t(!1);
|
|
72
|
+
};
|
|
73
|
+
return window.addEventListener("mousemove", e), window.addEventListener("mouseup", n), window.addEventListener("keydown", r), () => {
|
|
74
|
+
window.removeEventListener("mousemove", e), window.removeEventListener("mouseup", n), window.removeEventListener("keydown", r);
|
|
75
|
+
};
|
|
76
|
+
}, [
|
|
77
|
+
s,
|
|
78
|
+
c,
|
|
79
|
+
u,
|
|
80
|
+
l,
|
|
81
|
+
D,
|
|
82
|
+
O,
|
|
83
|
+
E
|
|
84
|
+
]), t(() => E, [E]), {
|
|
85
|
+
dragColId: d,
|
|
86
|
+
dropIndex: p,
|
|
87
|
+
isDragging: h,
|
|
88
|
+
onHeaderMouseDown: k,
|
|
89
|
+
consumeDragSuppression: A
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//#endregion
|
|
93
|
+
export { s as useHeaderReorder };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useText as e } from "../../../hooks/useText.js";
|
|
2
|
+
import { toast as t } from "../../../lib/toast.js";
|
|
3
|
+
import { useListLayout as n } from "../../../stores/list-layout.js";
|
|
4
|
+
import { useCallback as r, useEffect as i, useMemo as a, useState as o } from "react";
|
|
5
|
+
//#region src/components/pages/list/useListColumnLayout.ts
|
|
6
|
+
function s({ screenCode: s, screen: c, searchParams: l, setSearchParams: u, defaultColumns: d }) {
|
|
7
|
+
let f = e(), p = a(() => {
|
|
8
|
+
let e = l.get("columns");
|
|
9
|
+
return e ? e.split(",").filter(Boolean) : d;
|
|
10
|
+
}, [l, d]), { widths: m, prune: h, setWidths: g, resetWidths: _, resizeEduShown: v, markResizeEduShown: y } = n(s), [b, x] = o(() => m);
|
|
11
|
+
i(() => {
|
|
12
|
+
x(m);
|
|
13
|
+
}, [m]);
|
|
14
|
+
let S = a(() => c?.columns ?? [], [c?.columns]);
|
|
15
|
+
i(() => {
|
|
16
|
+
S.length > 0 && h(S);
|
|
17
|
+
}, [S, h]);
|
|
18
|
+
let C = r((e) => {
|
|
19
|
+
if (e.length === 0) return;
|
|
20
|
+
let t = new URLSearchParams(l);
|
|
21
|
+
e.join(",") === d.join(",") ? t.delete("columns") : t.set("columns", e.join(",")), u(t);
|
|
22
|
+
}, [
|
|
23
|
+
l,
|
|
24
|
+
u,
|
|
25
|
+
d
|
|
26
|
+
]);
|
|
27
|
+
return {
|
|
28
|
+
visible: p,
|
|
29
|
+
sizing: b,
|
|
30
|
+
setSizing: x,
|
|
31
|
+
apply: C,
|
|
32
|
+
clear: r(() => {
|
|
33
|
+
let e = new URLSearchParams(l);
|
|
34
|
+
e.delete("columns"), u(e);
|
|
35
|
+
}, [l, u]),
|
|
36
|
+
move: r((e, t) => {
|
|
37
|
+
let n = p.indexOf(e);
|
|
38
|
+
if (n === -1) return;
|
|
39
|
+
let r = t === "up" ? n - 1 : n + 1;
|
|
40
|
+
if (r < 0 || r >= p.length) return;
|
|
41
|
+
let i = [...p];
|
|
42
|
+
[i[n], i[r]] = [i[r], i[n]], C(i);
|
|
43
|
+
}, [p, C]),
|
|
44
|
+
commitResize: r((e) => {
|
|
45
|
+
g(e), !v && (y(), t.info(f("list.columns.width_saved_title", "Column width saved on this device"), f("list.columns.width_saved_body", "Widths are personal and never shared. Column order, sort and filters can be saved into a view.")));
|
|
46
|
+
}, [
|
|
47
|
+
f,
|
|
48
|
+
g,
|
|
49
|
+
v,
|
|
50
|
+
y
|
|
51
|
+
]),
|
|
52
|
+
resetWidths: _
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { s as useListColumnLayout };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useText as e } from "../../../hooks/useText.js";
|
|
2
|
+
import { useJsonSnapshot as t } from "../../../hooks/useJsonSnapshot.js";
|
|
3
|
+
import { buildFilterDisplayMeta as n, buildFilterFieldMeta as r, filterFieldLabel as i } from "./filter-meta.js";
|
|
4
|
+
import { visibleFilters as a } from "./visible-filters.js";
|
|
5
|
+
import { useCallback as o, useMemo as s } from "react";
|
|
6
|
+
//#region src/components/pages/list/useListFilterPresentation.ts
|
|
7
|
+
function c(c, l, u, d) {
|
|
8
|
+
let f = e(), p = t(d);
|
|
9
|
+
return {
|
|
10
|
+
visibleFilterState: s(() => l ? a(p, l.filter_operators) : {
|
|
11
|
+
filters: p,
|
|
12
|
+
omitted: !1
|
|
13
|
+
}, [p, l]),
|
|
14
|
+
filterFieldMeta: s(() => r(f, c, l, u), [
|
|
15
|
+
f,
|
|
16
|
+
c,
|
|
17
|
+
l,
|
|
18
|
+
u
|
|
19
|
+
]),
|
|
20
|
+
allFilterFieldMeta: s(() => n(f, c, l, u), [
|
|
21
|
+
f,
|
|
22
|
+
c,
|
|
23
|
+
l,
|
|
24
|
+
u
|
|
25
|
+
]),
|
|
26
|
+
filterFieldName: o((e) => l ? i(f, l, u, e) : e, [
|
|
27
|
+
f,
|
|
28
|
+
l,
|
|
29
|
+
u
|
|
30
|
+
])
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { c as useListFilterPresentation };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { entityCountQueryKey as e, entityDataQueryKey as t, useEntityCount as n, useEntityData as r } from "../../../hooks/useEntityData.js";
|
|
2
|
+
import { cursorEntityDataQueryKey as i, useCursorEntityData as a } from "../../../hooks/useCursorEntityData.js";
|
|
3
|
+
import { useRegisterRetainedQuery as o } from "../../../hooks/usePageStateRuntime.js";
|
|
4
|
+
import { useCallback as s, useEffect as c, useMemo as l, useState as u } from "react";
|
|
5
|
+
import { useQueryClient as d } from "@tanstack/react-query";
|
|
6
|
+
//#region src/components/pages/list/useListQuery.ts
|
|
7
|
+
var f = 1e4, p = [];
|
|
8
|
+
function m(c) {
|
|
9
|
+
let u = d(), { entity: f, entityCode: m, screen: g, screenCode: _, page: v, perPage: y, sortForRequest: b, debouncedSearch: x, filters: S, isHeld: C, retryHeld: w, includeDeleted: T, expand: E, select: D, runCountQuery: O, urlKey: k } = c, A = S.length > 0 ? S : void 0, j = {
|
|
10
|
+
page: v,
|
|
11
|
+
per_page: y,
|
|
12
|
+
sort: b,
|
|
13
|
+
search: x || void 0,
|
|
14
|
+
filters: A,
|
|
15
|
+
include_deleted: T || void 0,
|
|
16
|
+
expand: E,
|
|
17
|
+
select: D,
|
|
18
|
+
preview: !0,
|
|
19
|
+
screen: g?.fixed_filters ? _ : void 0
|
|
20
|
+
}, M = {
|
|
21
|
+
sort: b,
|
|
22
|
+
filters: A,
|
|
23
|
+
search: x || void 0,
|
|
24
|
+
select: D,
|
|
25
|
+
expand: E,
|
|
26
|
+
includeDeleted: T || void 0,
|
|
27
|
+
screen: g?.fixed_filters ? _ : void 0,
|
|
28
|
+
preview: !0,
|
|
29
|
+
limit: y
|
|
30
|
+
}, N = f?.list_pagination === "cursor", P = r(m, j, !N && !C), F = n(m, j, O && !N && !C), I = a(m, M, N && !C);
|
|
31
|
+
o(t(m, j), !N && !C), o(i(m, M), N && !C);
|
|
32
|
+
let L = C || (N ? I.isLoading : P.isLoading), R = l(() => C ? p : N ? I.rows : P.data?.data ?? [], [
|
|
33
|
+
C,
|
|
34
|
+
N,
|
|
35
|
+
I.rows,
|
|
36
|
+
P.data?.data
|
|
37
|
+
]), z = N ? I.total : F.data?.meta?.total, B = l(() => {
|
|
38
|
+
if (!(N || z === void 0 || y <= 0)) return Math.max(1, Math.ceil(z / y));
|
|
39
|
+
}, [
|
|
40
|
+
N,
|
|
41
|
+
z,
|
|
42
|
+
y
|
|
43
|
+
]), V = h(L, k), H = N ? i(m, M) : t(m, j), U = e(m, j), W = O && !N, G = s(async () => {
|
|
44
|
+
C ? w() : m && (await Promise.all([u.cancelQueries({
|
|
45
|
+
queryKey: H,
|
|
46
|
+
exact: !0
|
|
47
|
+
}), W ? u.cancelQueries({
|
|
48
|
+
queryKey: U,
|
|
49
|
+
exact: !0
|
|
50
|
+
}) : void 0]), await Promise.all([N ? I.refetch() : P.refetch(), W ? F.refetch() : void 0]));
|
|
51
|
+
}, [
|
|
52
|
+
C,
|
|
53
|
+
w,
|
|
54
|
+
m,
|
|
55
|
+
u,
|
|
56
|
+
H,
|
|
57
|
+
U,
|
|
58
|
+
W,
|
|
59
|
+
N,
|
|
60
|
+
I,
|
|
61
|
+
P,
|
|
62
|
+
F
|
|
63
|
+
]), K = s(() => {
|
|
64
|
+
I.fetchNextPage();
|
|
65
|
+
}, [I]);
|
|
66
|
+
return {
|
|
67
|
+
rows: R,
|
|
68
|
+
meta: C ? void 0 : P.data?.meta,
|
|
69
|
+
refs: C ? void 0 : N ? I.refs : P.data?.$refs,
|
|
70
|
+
isLoading: L,
|
|
71
|
+
isFetching: C || (N ? I.isFetching : P.isFetching),
|
|
72
|
+
isShowingPreviousRows: !C && (N ? I.isPlaceholderData : P.isPlaceholderData),
|
|
73
|
+
isError: C ? !1 : N ? I.isError : P.isError,
|
|
74
|
+
error: C ? void 0 : N ? I.error : P.error,
|
|
75
|
+
isLoadingStale: V,
|
|
76
|
+
retry: G,
|
|
77
|
+
countTotal: C ? void 0 : z,
|
|
78
|
+
countStrategy: C ? void 0 : N ? I.countMode : F.data?.meta?.count_mode,
|
|
79
|
+
countLoading: C || (N ? I.isLoading : F.isLoading),
|
|
80
|
+
countError: !C && !N && F.isError,
|
|
81
|
+
totalPages: B,
|
|
82
|
+
hasMorePages: N ? I.hasMore : P.data?.meta?.has_more ?? (B !== void 0 && v < B),
|
|
83
|
+
isCursor: N,
|
|
84
|
+
fetchNextPage: K,
|
|
85
|
+
isFetchingNextPage: I.isFetchingNextPage
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function h(e, t) {
|
|
89
|
+
let [n, r] = u(!1);
|
|
90
|
+
return c(() => {
|
|
91
|
+
if (!e) {
|
|
92
|
+
r(!1);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
r(!1);
|
|
96
|
+
let t = window.setTimeout(() => r(!0), f);
|
|
97
|
+
return () => window.clearTimeout(t);
|
|
98
|
+
}, [e, t]), n;
|
|
99
|
+
}
|
|
100
|
+
//#endregion
|
|
101
|
+
export { m as useListQuery };
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { coerceDisplayString as e } from "../../../lib/display-value.js";
|
|
2
|
+
import { buildEntityDetailHref as t, extractPkValues as n, fieldDisplayName as r, getDisplayValue as i, pkValuesToDetailId as a } from "../../../types/schema.js";
|
|
3
|
+
import { useText as o } from "../../../hooks/useText.js";
|
|
4
|
+
import { buildActionBody as s, executeAction as c } from "../../../api/data.js";
|
|
5
|
+
import { resolveSchemaFieldLabel as l } from "../../file-widgets/host.js";
|
|
6
|
+
import { effectiveScreenForRecord as u } from "../../../lib/variants.js";
|
|
7
|
+
import { setPeekDraft as d } from "../../list/peekDraftStore.js";
|
|
8
|
+
import { resolveQuickPeekFieldNames as f } from "./cardProjection.js";
|
|
9
|
+
import { rowSelectionKey as p } from "./useListSelection.js";
|
|
10
|
+
import { classifyRowClick as m, isInteractiveRowTarget as h } from "../../../lib/rowClickGesture.js";
|
|
11
|
+
import { useLongPress as g } from "../../../hooks/useLongPress.js";
|
|
12
|
+
import { useCallback as _, useEffect as v, useMemo as y, useRef as b, useState as x } from "react";
|
|
13
|
+
//#region src/components/pages/list/useListRowInteraction.ts
|
|
14
|
+
function S({ entity: S, screen: C, screens: w, entities: T, searchParams: E, tabNavigate: D, commitScreenTabSearch: O, isPhone: k, canUpdate: A }) {
|
|
15
|
+
let j = o(), [M, N] = x(null), [P, F] = x(null), I = b(null), L = b(null);
|
|
16
|
+
v(() => () => {
|
|
17
|
+
L.current && clearTimeout(L.current.timer);
|
|
18
|
+
}, []);
|
|
19
|
+
let R = C?.on_row_click === "peek" && C.quick_peek?.enabled !== !1 && !k, z = _((e, r) => {
|
|
20
|
+
if (!S || !C) return;
|
|
21
|
+
let o = n(S, e), s = a(S, o), c = t(C, S, w, o);
|
|
22
|
+
if (!c) return;
|
|
23
|
+
if (r?.draft) {
|
|
24
|
+
d(s, r.draft);
|
|
25
|
+
let [e, t] = c.split("?", 2), n = new URLSearchParams(t ?? "");
|
|
26
|
+
n.set("edit", "true"), c = `${e}?${n.toString()}`;
|
|
27
|
+
}
|
|
28
|
+
let l = i(j, e, S) ?? j(S.display.name), u = C.display?.icon || S.display.icon;
|
|
29
|
+
O(E.toString()), D(c, {
|
|
30
|
+
title: l,
|
|
31
|
+
icon: u
|
|
32
|
+
});
|
|
33
|
+
}, [
|
|
34
|
+
j,
|
|
35
|
+
S,
|
|
36
|
+
C,
|
|
37
|
+
w,
|
|
38
|
+
E,
|
|
39
|
+
D,
|
|
40
|
+
O
|
|
41
|
+
]), B = g(_((e) => {
|
|
42
|
+
let t = I.current;
|
|
43
|
+
t && F({
|
|
44
|
+
x: e.x,
|
|
45
|
+
y: e.y,
|
|
46
|
+
row: t
|
|
47
|
+
});
|
|
48
|
+
}, [])), V = _((e, t) => {
|
|
49
|
+
if (B.consumePressFired() || h(e.target)) return;
|
|
50
|
+
if (!R || !S) {
|
|
51
|
+
z(t);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
let n = p(S, t);
|
|
55
|
+
if (m(L.current, n) === "double") {
|
|
56
|
+
clearTimeout(L.current.timer), L.current = null, N(null), z(t);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
L.current && clearTimeout(L.current.timer);
|
|
60
|
+
let r = setTimeout(() => {
|
|
61
|
+
L.current = null, N(t);
|
|
62
|
+
}, 250);
|
|
63
|
+
L.current = {
|
|
64
|
+
rowId: n,
|
|
65
|
+
timer: r
|
|
66
|
+
};
|
|
67
|
+
}, [
|
|
68
|
+
S,
|
|
69
|
+
R,
|
|
70
|
+
z,
|
|
71
|
+
B
|
|
72
|
+
]);
|
|
73
|
+
return {
|
|
74
|
+
peekAllowed: R,
|
|
75
|
+
peekRow: M,
|
|
76
|
+
setPeekRow: N,
|
|
77
|
+
peekFields: y(() => {
|
|
78
|
+
if (!R || !S || !M) return [];
|
|
79
|
+
let e = u(S, C, M);
|
|
80
|
+
return f(S, e, w).map((e) => {
|
|
81
|
+
if (S.files?.get(e)) return {
|
|
82
|
+
key: e,
|
|
83
|
+
label: l(j, S, e, T),
|
|
84
|
+
kind: "file",
|
|
85
|
+
readOnly: !A
|
|
86
|
+
};
|
|
87
|
+
let t = S.fields.get(e), n = A && !t.primary && !t.auto && !t.ref && t.files?.mode !== "rich_text_inline";
|
|
88
|
+
return {
|
|
89
|
+
key: e,
|
|
90
|
+
label: r(j, t, e, T),
|
|
91
|
+
kind: "field",
|
|
92
|
+
field: t,
|
|
93
|
+
readOnly: !n
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
}, [
|
|
97
|
+
j,
|
|
98
|
+
R,
|
|
99
|
+
M,
|
|
100
|
+
S,
|
|
101
|
+
C,
|
|
102
|
+
T,
|
|
103
|
+
w,
|
|
104
|
+
A
|
|
105
|
+
]),
|
|
106
|
+
peekActions: y(() => S?.actions ?? {}, [S?.actions]),
|
|
107
|
+
peekExecute: _(async (t, n, r) => {
|
|
108
|
+
let i = S?.fields.names().find((e) => S.fields.get(e)?.primary), a = i && M ? [e(M[i])] : void 0, o = n.entity ? `${n.entity}.${t}` : t;
|
|
109
|
+
return c(o, s(r, a));
|
|
110
|
+
}, [S, M]),
|
|
111
|
+
contextMenu: P,
|
|
112
|
+
setContextMenu: F,
|
|
113
|
+
pressedRow: I,
|
|
114
|
+
longPress: B,
|
|
115
|
+
onRowClick: V,
|
|
116
|
+
navigateToDetail: z
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//#endregion
|
|
120
|
+
export { S as useListRowInteraction };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { coerceDisplayString as e } from "../../../lib/display-value.js";
|
|
2
|
+
import { extractPkValues as t, pkValuesToDetailId as n } from "../../../types/schema.js";
|
|
3
|
+
import { usePageState as r } from "../../../hooks/usePageState.js";
|
|
4
|
+
import { useCallback as i, useEffect as a, useMemo as o } from "react";
|
|
5
|
+
//#region src/components/pages/list/useListSelection.ts
|
|
6
|
+
var s = {};
|
|
7
|
+
function c(e, r) {
|
|
8
|
+
return n(e, t(e, r));
|
|
9
|
+
}
|
|
10
|
+
function l(e, n, r) {
|
|
11
|
+
if (!e || r.length === 0) return [];
|
|
12
|
+
let i = new Set(r);
|
|
13
|
+
return n.filter((t) => i.has(c(e, t))).map((n) => t(e, n));
|
|
14
|
+
}
|
|
15
|
+
function u(t, n, u) {
|
|
16
|
+
let [d, f] = r("selection", s, { scope: "path" }), p = o(() => t?.fields.names().find((e) => t.fields.get(e)?.primary) ?? "id", [t]), m = i((n) => t ? c(t, n) : e(n[p]), [t, p]), h = o(() => Object.keys(d).filter((e) => d[e]), [d]), g = o(() => l(t, n, h), [
|
|
17
|
+
t,
|
|
18
|
+
n,
|
|
19
|
+
h
|
|
20
|
+
]), _ = o(() => {
|
|
21
|
+
if (h.length === 0) return [];
|
|
22
|
+
let e = /* @__PURE__ */ new Map();
|
|
23
|
+
for (let t of n) e.set(m(t), t);
|
|
24
|
+
return h.map((t) => e.get(t)).filter((e) => e !== void 0);
|
|
25
|
+
}, [
|
|
26
|
+
h,
|
|
27
|
+
n,
|
|
28
|
+
m
|
|
29
|
+
]);
|
|
30
|
+
return a(() => {
|
|
31
|
+
u || f((e) => {
|
|
32
|
+
let t = Object.keys(e);
|
|
33
|
+
if (t.length === 0) return e;
|
|
34
|
+
let r = new Set(n.map((e) => m(e))), i = {}, a = !1;
|
|
35
|
+
for (let n of t) r.has(n) ? i[n] = e[n] : a = !0;
|
|
36
|
+
return a ? i : e;
|
|
37
|
+
});
|
|
38
|
+
}, [
|
|
39
|
+
n,
|
|
40
|
+
u,
|
|
41
|
+
m,
|
|
42
|
+
f
|
|
43
|
+
]), {
|
|
44
|
+
state: d,
|
|
45
|
+
setState: f,
|
|
46
|
+
ids: h,
|
|
47
|
+
pkValues: g,
|
|
48
|
+
rows: _,
|
|
49
|
+
keyOf: m
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { c as rowSelectionKey, l as selectedRowPkValues, u as useListSelection };
|