@firecms/core 3.0.0-alpha.70 → 3.0.0-alpha.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/package.json +3 -3
  2. package/src/components/ArrayContainer.d.ts +42 -0
  3. package/src/components/CircularProgressCenter.d.ts +11 -0
  4. package/src/components/DeleteConfirmationDialog.d.ts +9 -0
  5. package/src/components/EntityCollectionTable/EntityCollectionTable.d.ts +30 -0
  6. package/src/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +106 -0
  7. package/src/components/EntityCollectionTable/fields/TableReferenceField.d.ts +15 -0
  8. package/src/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +33 -0
  9. package/src/components/EntityCollectionTable/filters/BooleanFilterField.d.ts +9 -0
  10. package/src/components/EntityCollectionTable/filters/DateTimeFilterField.d.ts +11 -0
  11. package/src/components/EntityCollectionTable/filters/ReferenceFilterField.d.ts +14 -0
  12. package/src/components/EntityCollectionTable/filters/StringNumberFilterField.d.ts +13 -0
  13. package/src/components/EntityCollectionTable/index.d.ts +4 -0
  14. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -0
  15. package/src/components/EntityCollectionTable/internal/DeleteEntityDialog.d.ts +12 -0
  16. package/src/components/EntityCollectionTable/internal/EntityCollectionRowActions.d.ts +35 -0
  17. package/src/components/EntityCollectionTable/internal/EntityTableCell.d.ts +26 -0
  18. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
  19. package/src/components/EntityCollectionTable/internal/PropertyTableCell.d.ts +18 -0
  20. package/src/components/EntityCollectionTable/internal/common.d.ts +4 -0
  21. package/src/components/EntityCollectionTable/internal/default_entity_actions.d.ts +6 -0
  22. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +5 -0
  23. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +23 -0
  24. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
  25. package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
  26. package/src/components/EntityCollectionTable/types.d.ts +39 -0
  27. package/src/components/EntityCollectionTable/useDebouncedData.d.ts +9 -0
  28. package/src/components/EntityCollectionTable/useEntityCollectionTableController.d.ts +21 -0
  29. package/src/components/EntityCollectionView/EntityCollectionView.d.ts +37 -0
  30. package/src/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
  31. package/src/components/EntityCollectionView/useColumnsIds.d.ts +4 -0
  32. package/src/components/EntityPreview.d.ts +11 -0
  33. package/src/components/ErrorBoundary.d.ts +11 -0
  34. package/src/components/ErrorTooltip.d.ts +2 -0
  35. package/src/components/ErrorView.d.ts +19 -0
  36. package/src/components/FieldConfigBadge.d.ts +4 -0
  37. package/src/components/FireCMSAppBar.d.ts +26 -0
  38. package/src/components/FireCMSLogo.d.ts +7 -0
  39. package/src/components/HomePage/DefaultHomePage.d.ts +21 -0
  40. package/src/components/HomePage/FavouritesView.d.ts +3 -0
  41. package/src/components/HomePage/NavigationCollectionCard.d.ts +17 -0
  42. package/src/components/HomePage/NavigationGroup.d.ts +4 -0
  43. package/src/components/HomePage/index.d.ts +3 -0
  44. package/src/components/LabelWithIcon.d.ts +14 -0
  45. package/src/components/NotFoundPage.d.ts +1 -0
  46. package/src/components/ReferenceSelectionInner.d.ts +58 -0
  47. package/src/components/ReferenceWidget.d.ts +28 -0
  48. package/src/components/VirtualTable/VirtualTable.d.ts +11 -0
  49. package/src/components/VirtualTable/VirtualTableCell.d.ts +14 -0
  50. package/src/components/VirtualTable/VirtualTableHeader.d.ts +27 -0
  51. package/src/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
  52. package/src/components/VirtualTable/VirtualTableProps.d.ts +215 -0
  53. package/src/components/VirtualTable/VirtualTableRow.d.ts +3 -0
  54. package/src/components/VirtualTable/common.d.ts +2 -0
  55. package/src/components/VirtualTable/fields/VirtualTableDateField.d.ts +11 -0
  56. package/src/components/VirtualTable/fields/VirtualTableInput.d.ts +8 -0
  57. package/src/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
  58. package/src/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
  59. package/src/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
  60. package/src/components/VirtualTable/index.d.ts +2 -0
  61. package/src/components/VirtualTable/types.d.ts +34 -0
  62. package/src/components/index.d.ts +20 -0
  63. package/src/contexts/AuthControllerContext.d.ts +3 -0
  64. package/src/contexts/DataSourceContext.d.ts +3 -0
  65. package/src/contexts/DialogsProvider.d.ts +4 -0
  66. package/src/contexts/ModeController.d.ts +4 -0
  67. package/src/contexts/NavigationContext.d.ts +3 -0
  68. package/src/contexts/SideDialogsControllerContext.d.ts +3 -0
  69. package/src/contexts/SideEntityControllerContext.d.ts +3 -0
  70. package/src/contexts/SnackbarProvider.d.ts +2 -0
  71. package/src/contexts/StorageSourceContext.d.ts +3 -0
  72. package/src/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
  73. package/src/contexts/index.d.ts +3 -0
  74. package/src/core/Drawer.d.ts +23 -0
  75. package/src/core/EntitySidePanel.d.ts +10 -0
  76. package/src/core/FireCMS.d.ts +14 -0
  77. package/src/core/NavigationRoutes.d.ts +21 -0
  78. package/src/core/Scaffold.d.ts +52 -0
  79. package/src/core/SideDialogs.d.ts +23 -0
  80. package/src/core/field_configs.d.ts +7 -0
  81. package/src/core/index.d.ts +10 -0
  82. package/src/core/useBuildLocalConfigurationPersistence.d.ts +2 -0
  83. package/src/core/useBuildModeController.d.ts +6 -0
  84. package/src/form/EntityForm.d.ts +75 -0
  85. package/src/form/PropertyFieldBinding.d.ts +30 -0
  86. package/src/form/components/CustomIdField.d.ts +9 -0
  87. package/src/form/components/ErrorFocus.d.ts +4 -0
  88. package/src/form/components/FieldHelperText.d.ts +12 -0
  89. package/src/form/components/FormikArrayContainer.d.ts +18 -0
  90. package/src/form/components/StorageItemPreview.d.ts +13 -0
  91. package/src/form/components/StorageUploadProgress.d.ts +10 -0
  92. package/src/form/components/SwitchControl.d.ts +8 -0
  93. package/src/form/components/index.d.ts +3 -0
  94. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
  95. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
  96. package/src/form/field_bindings/BlockFieldBinding.d.ts +10 -0
  97. package/src/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
  98. package/src/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
  99. package/src/form/field_bindings/MapFieldBinding.d.ts +9 -0
  100. package/src/form/field_bindings/MarkdownFieldBinding.d.ts +9 -0
  101. package/src/form/field_bindings/MultiSelectBinding.d.ts +9 -0
  102. package/src/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
  103. package/src/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
  104. package/src/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
  105. package/src/form/field_bindings/SelectFieldBinding.d.ts +12 -0
  106. package/src/form/field_bindings/StorageUploadFieldBinding.d.ts +28 -0
  107. package/src/form/field_bindings/SwitchFieldBinding.d.ts +12 -0
  108. package/src/form/field_bindings/TextFieldBinding.d.ts +12 -0
  109. package/src/form/index.d.ts +20 -0
  110. package/src/form/useClearRestoreValue.d.ts +13 -0
  111. package/src/form/validation.d.ts +25 -0
  112. package/src/hooks/data/delete.d.ts +37 -0
  113. package/src/hooks/data/save.d.ts +42 -0
  114. package/src/hooks/data/useCollectionFetch.d.ts +50 -0
  115. package/src/hooks/data/useDataOrder.d.ts +12 -0
  116. package/src/hooks/data/useDataSource.d.ts +6 -0
  117. package/src/hooks/data/useEntityFetch.d.ts +28 -0
  118. package/src/hooks/index.d.ts +19 -0
  119. package/src/hooks/useAuthController.d.ts +11 -0
  120. package/src/hooks/useBrowserTitleAndIcon.d.ts +6 -0
  121. package/src/hooks/useClipboard.d.ts +57 -0
  122. package/src/hooks/useDialogsController.d.ts +11 -0
  123. package/src/hooks/useFireCMSContext.d.ts +12 -0
  124. package/src/hooks/useLargeLayout.d.ts +1 -0
  125. package/src/hooks/useModeController.d.ts +20 -0
  126. package/src/hooks/useNavigationController.d.ts +9 -0
  127. package/src/hooks/useReferenceDialog.d.ts +18 -0
  128. package/src/hooks/useResolvedNavigationFrom.d.ts +72 -0
  129. package/src/hooks/useSideDialogsController.d.ts +18 -0
  130. package/src/hooks/useSideEntityController.d.ts +12 -0
  131. package/src/hooks/useSnackbarController.d.ts +41 -0
  132. package/src/hooks/useStorageSource.d.ts +6 -0
  133. package/src/hooks/useUserConfigurationPersistence.d.ts +8 -0
  134. package/src/index.d.ts +8 -0
  135. package/src/internal/EntityView.d.ts +22 -0
  136. package/src/internal/common.d.ts +3 -0
  137. package/src/internal/useBuildDataSource.d.ts +22 -0
  138. package/src/internal/useBuildNavigationController.d.ts +14 -0
  139. package/src/internal/useBuildSideDialogsController.d.ts +2 -0
  140. package/src/internal/useBuildSideEntityController.d.ts +4 -0
  141. package/src/internal/useLocaleConfig.d.ts +1 -0
  142. package/src/internal/useRestoreScroll.d.ts +6 -0
  143. package/src/internal/useUnsavedChangesDialog.d.ts +14 -0
  144. package/src/preview/PropertyPreview.d.ts +7 -0
  145. package/src/preview/PropertyPreviewProps.d.ts +43 -0
  146. package/src/preview/components/ArrayEnumPreview.d.ts +11 -0
  147. package/src/preview/components/AsyncPreviewComponent.d.ts +11 -0
  148. package/src/preview/components/BooleanPreview.d.ts +7 -0
  149. package/src/preview/components/DatePreview.d.ts +7 -0
  150. package/src/preview/components/EmptyValue.d.ts +4 -0
  151. package/src/preview/components/EnumValuesChip.d.ts +13 -0
  152. package/src/preview/components/ImagePreview.d.ts +12 -0
  153. package/src/preview/components/ReferencePreview.d.ts +22 -0
  154. package/src/preview/components/StorageThumbnail.d.ts +13 -0
  155. package/src/preview/components/UrlComponentPreview.d.ts +12 -0
  156. package/src/preview/index.d.ts +23 -0
  157. package/src/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
  158. package/src/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
  159. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
  160. package/src/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
  161. package/src/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
  162. package/src/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
  163. package/src/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
  164. package/src/preview/property_previews/MapPropertyPreview.d.ts +8 -0
  165. package/src/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
  166. package/src/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
  167. package/src/preview/property_previews/StringPropertyPreview.d.ts +6 -0
  168. package/src/preview/util.d.ts +7 -0
  169. package/src/types/analytics.d.ts +1 -0
  170. package/src/types/appcheck.d.ts +26 -0
  171. package/src/types/auth.d.ts +40 -0
  172. package/src/types/collections.d.ts +451 -0
  173. package/src/types/datasource.d.ts +262 -0
  174. package/src/types/dialogs_controller.d.ts +32 -0
  175. package/src/types/entities.d.ts +57 -0
  176. package/src/types/entity_actions.d.ts +35 -0
  177. package/src/types/entity_callbacks.d.ts +171 -0
  178. package/src/types/entity_link_builder.d.ts +7 -0
  179. package/src/types/export_import.d.ts +21 -0
  180. package/src/types/fields.d.ts +181 -0
  181. package/src/types/firecms.d.ts +151 -0
  182. package/src/types/firecms_context.d.ts +110 -0
  183. package/src/types/index.d.ts +26 -0
  184. package/src/types/local_config_persistence.d.ts +21 -0
  185. package/src/types/locales.d.ts +4 -0
  186. package/src/types/modify_collections.d.ts +5 -0
  187. package/src/types/navigation.d.ts +178 -0
  188. package/src/types/permissions.d.ts +63 -0
  189. package/src/types/plugins.d.ts +179 -0
  190. package/src/types/properties.d.ts +681 -0
  191. package/src/types/property_config.d.ts +42 -0
  192. package/src/types/resolved_entities.d.ts +98 -0
  193. package/src/types/side_dialogs_controller.d.ts +57 -0
  194. package/src/types/side_entity_controller.d.ts +83 -0
  195. package/src/types/storage.d.ts +82 -0
  196. package/src/types/user.d.ts +36 -0
  197. package/src/util/arrays.d.ts +1 -0
  198. package/src/util/builders.d.ts +64 -0
  199. package/src/util/chip_utils.d.ts +3 -0
  200. package/src/util/collections.d.ts +3 -0
  201. package/src/util/common.d.ts +2 -0
  202. package/src/util/dates.d.ts +1 -0
  203. package/src/util/entities.d.ts +28 -0
  204. package/src/util/enums.d.ts +7 -0
  205. package/src/util/flatten_object.d.ts +3 -0
  206. package/src/util/hash.d.ts +1 -0
  207. package/src/util/icons.d.ts +4 -0
  208. package/src/util/index.d.ts +20 -0
  209. package/src/util/join_collections.d.ts +9 -0
  210. package/src/util/make_properties_editable.d.ts +3 -0
  211. package/src/util/navigation_from_path.d.ts +24 -0
  212. package/src/util/navigation_utils.d.ts +20 -0
  213. package/src/util/objects.d.ts +10 -0
  214. package/src/util/parent_references_from_path.d.ts +6 -0
  215. package/src/util/paths.d.ts +14 -0
  216. package/src/util/permissions.d.ts +5 -0
  217. package/src/util/plurals.d.ts +18 -0
  218. package/src/util/property_utils.d.ts +23 -0
  219. package/src/util/references.d.ts +2 -0
  220. package/src/util/regexp.d.ts +7 -0
  221. package/src/util/resolutions.d.ts +64 -0
  222. package/src/util/storage.d.ts +3 -0
  223. package/src/util/strings.d.ts +6 -0
  224. package/src/util/useDebounce.d.ts +1 -0
  225. package/src/util/useStorageUploadController.d.ts +36 -0
@@ -0,0 +1,14 @@
1
+ import { EntityCollection, SelectionController, TableController } from "../../types";
2
+ export type EntityCollectionViewActionsProps<M extends Record<string, any>> = {
3
+ collection: EntityCollection<M>;
4
+ path: string;
5
+ relativePath: string;
6
+ parentCollectionIds: string[];
7
+ selectionEnabled: boolean;
8
+ onNewClick: () => void;
9
+ onMultipleDeleteClick: () => void;
10
+ selectionController: SelectionController<M>;
11
+ tableController: TableController<M>;
12
+ collectionEntitiesCount: number;
13
+ };
14
+ export declare function EntityCollectionViewActions<M extends Record<string, any>>({ collection, relativePath, parentCollectionIds, onNewClick, onMultipleDeleteClick, selectionEnabled, path, selectionController, tableController, collectionEntitiesCount }: EntityCollectionViewActionsProps<M>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { ResolvedEntityCollection, ResolvedProperty } from "../../types";
2
+ import { PropertyColumnConfig } from "../EntityCollectionTable/EntityCollectionTableProps";
3
+ export declare function useColumnIds<M extends Record<string, any>>(collection: ResolvedEntityCollection<M>, includeSubcollections: boolean): PropertyColumnConfig[];
4
+ export declare function getColumnKeysForProperty(property: ResolvedProperty, key: string, disabled?: boolean): PropertyColumnConfig[];
@@ -0,0 +1,11 @@
1
+ import { Entity, EntityCollection } from "../types";
2
+ /**
3
+ * @group Components
4
+ */
5
+ export interface EntityPreviewProps<M extends Record<string, any>> {
6
+ entity: Entity<M>;
7
+ collection: EntityCollection<M>;
8
+ path: string;
9
+ className?: string;
10
+ }
11
+ export declare function EntityPreview<M extends Record<string, any>>({ entity, collection, path, className }: EntityPreviewProps<M>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import React, { ErrorInfo, PropsWithChildren } from "react";
2
+ export declare class ErrorBoundary extends React.Component<PropsWithChildren<Record<string, unknown>>, {
3
+ error: Error | null;
4
+ }> {
5
+ constructor(props: any);
6
+ static getDerivedStateFromError(error: Error): {
7
+ error: Error;
8
+ };
9
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
10
+ render(): string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
11
+ }
@@ -0,0 +1,2 @@
1
+ import { TooltipProps } from "@firecms/ui";
2
+ export declare function ErrorTooltip(props: TooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ /**
3
+ * @group Components
4
+ */
5
+ export interface ErrorViewProps {
6
+ title?: string;
7
+ error: Error | React.ReactElement | string;
8
+ tooltip?: string;
9
+ }
10
+ /**
11
+ * Generic error view. Displayed for example when an unexpected value comes
12
+ * from the datasource in a collection view.
13
+ * @param title
14
+ * @param error
15
+ * @param tooltip
16
+ * @constructor
17
+ * @group Components
18
+ */
19
+ export declare function ErrorView({ title, error, tooltip }: ErrorViewProps): React.ReactElement;
@@ -0,0 +1,4 @@
1
+ import { PropertyConfig } from "../types";
2
+ export declare function FieldConfigBadge({ propertyConfig }: {
3
+ propertyConfig: PropertyConfig | undefined;
4
+ }): React.ReactNode;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import { User } from "../types";
3
+ export type FireCMSAppBarProps<ADDITIONAL_PROPS = object> = {
4
+ title: string;
5
+ /**
6
+ * A component that gets rendered on the upper side of the main toolbar
7
+ */
8
+ endAdornment?: React.ReactNode;
9
+ startAdornment?: React.ReactNode;
10
+ dropDownActions?: React.ReactNode;
11
+ includeDrawer?: boolean;
12
+ drawerOpen: boolean;
13
+ className?: string;
14
+ style?: React.CSSProperties;
15
+ user?: User;
16
+ } & ADDITIONAL_PROPS;
17
+ /**
18
+ * This component renders the main app bar of FireCMS.
19
+ * You will likely not need to use this component directly.
20
+ *
21
+ * @param title
22
+ * @param toolbarExtraWidget
23
+ * @param drawerOpen
24
+ * @constructor
25
+ */
26
+ export declare const FireCMSAppBar: ({ title, endAdornment, startAdornment, drawerOpen, dropDownActions, includeDrawer, className, style, user: userProp }: FireCMSAppBarProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export declare function FireCMSLogo({ width, height, className, style }: {
3
+ width?: string;
4
+ height?: string;
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ /**
3
+ * Default entry view for the CMS. This component renders navigation cards
4
+ * for each collection defined in the navigation.
5
+ * @constructor
6
+ * @group Components
7
+ */
8
+ export declare function DefaultHomePage({ additionalActions, additionalChildrenStart, additionalChildrenEnd }: {
9
+ /**
10
+ * Additional actions to be rendered in the home page, close to the search bar.
11
+ */
12
+ additionalActions?: React.ReactNode;
13
+ /**
14
+ * Additional children to be rendered in the beginning of the home page.
15
+ */
16
+ additionalChildrenStart?: React.ReactNode;
17
+ /**
18
+ * Additional children to be rendered at the end of the home page.
19
+ */
20
+ additionalChildrenEnd?: React.ReactNode;
21
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export declare function FavouritesView({ hidden }: {
2
+ hidden: boolean;
3
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,17 @@
1
+ import { TopNavigationEntry } from "../../types";
2
+ /**
3
+ * This is the component used in the home page to render a card for each
4
+ * collection.
5
+ * @group Components
6
+ * @param view
7
+ * @param path
8
+ * @param collection
9
+ * @param url
10
+ * @param name
11
+ * @param description
12
+ * @param onClick
13
+ * @constructor
14
+ */
15
+ export declare function NavigationCollectionCard({ view, path, collection, url, name, description, onClick }: TopNavigationEntry & {
16
+ onClick?: () => void;
17
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { PropsWithChildren } from "react";
2
+ export declare function NavigationGroup({ children, group }: PropsWithChildren<{
3
+ group: string | undefined;
4
+ }>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export * from "./DefaultHomePage";
2
+ export * from "./NavigationCollectionCard";
3
+ export * from "./NavigationGroup";
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ interface LabelWithIconProps {
3
+ icon: React.ReactNode;
4
+ title?: string;
5
+ small?: boolean;
6
+ className?: string;
7
+ required?: boolean;
8
+ }
9
+ /**
10
+ * Render the label of with an icon and the title of a property
11
+ * @group Form custom fields
12
+ */
13
+ export declare function LabelWithIcon({ icon, title, small, className, required }: LabelWithIconProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1 @@
1
+ export declare function NotFoundPage(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,58 @@
1
+ import React from "react";
2
+ import { Entity, EntityCollection, FilterValues } from "../types";
3
+ /**
4
+ * @group Components
5
+ */
6
+ export interface ReferenceSelectionInnerProps<M extends Record<string, any>> {
7
+ /**
8
+ * Allow multiple selection of values
9
+ */
10
+ multiselect?: boolean;
11
+ /**
12
+ * Entity collection config
13
+ */
14
+ collection?: EntityCollection<M>;
15
+ /**
16
+ * Absolute path of the collection.
17
+ * May be not set if this hook is being used in a component and the path is
18
+ * dynamic. If not set, the dialog won't open.
19
+ */
20
+ path: string;
21
+ /**
22
+ * If you are opening the dialog for the first time, you can select some
23
+ * entity ids to be displayed first.
24
+ */
25
+ selectedEntityIds?: string[];
26
+ /**
27
+ * If `multiselect` is set to `false`, you will get the selected entity
28
+ * in this callback.
29
+ * @param entity
30
+ * @callback
31
+ */
32
+ onSingleEntitySelected?(entity: Entity<any> | null): void;
33
+ /**
34
+ * If `multiselect` is set to `true`, you will get the selected entities
35
+ * in this callback.
36
+ * @param entities
37
+ * @callback
38
+ */
39
+ onMultipleEntitiesSelected?(entities: Entity<any>[]): void;
40
+ /**
41
+ * Allow selection of entities that pass the given filter only.
42
+ */
43
+ forceFilter?: FilterValues<string>;
44
+ /**
45
+ * Use this description to indicate the user what to do in this dialog.
46
+ */
47
+ description?: React.ReactNode;
48
+ /**
49
+ * Maximum number of entities that can be selected.
50
+ */
51
+ maxSelection?: number;
52
+ }
53
+ /**
54
+ * This component allows to select entities from a given collection.
55
+ * You probably want to open this dialog as a side view using {@link useReferenceDialog}
56
+ * @group Components
57
+ */
58
+ export declare function ReferenceSelectionInner<M extends Record<string, any>>({ onSingleEntitySelected, onMultipleEntitiesSelected, multiselect, collection, path: pathInput, selectedEntityIds: selectedEntityIdsProp, description, forceFilter, maxSelection }: ReferenceSelectionInnerProps<M>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { Entity, EntityReference, FilterValues } from "../types";
2
+ import { PreviewSize } from "../preview";
3
+ export type ReferenceWidgetProps<M extends Record<string, any>> = {
4
+ name?: string;
5
+ multiselect?: boolean;
6
+ value: EntityReference<M> | EntityReference<M>[] | null;
7
+ onReferenceSelected?: (params: {
8
+ reference: EntityReference<M> | null;
9
+ entity: Entity<M> | null;
10
+ }) => void;
11
+ onMultipleReferenceSelected?: (params: {
12
+ references: EntityReference<M>[] | null;
13
+ entities: Entity<M>[] | null;
14
+ }) => void;
15
+ path: string;
16
+ disabled?: boolean;
17
+ previewProperties?: string[];
18
+ /**
19
+ * Allow selection of entities that pass the given filter only.
20
+ */
21
+ forceFilter?: FilterValues<string>;
22
+ size: PreviewSize;
23
+ className?: string;
24
+ };
25
+ /**
26
+ * This field allows selecting reference/s.
27
+ */
28
+ export declare function ReferenceWidget<M extends Record<string, any>>({ name, multiselect, path, disabled, value, onReferenceSelected, onMultipleReferenceSelected, previewProperties, forceFilter, size, className }: ReferenceWidgetProps<M>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { VirtualTableProps } from "./VirtualTableProps";
3
+ /**
4
+ * This is a Table component that allows displaying arbitrary data, not
5
+ * necessarily related to entities or properties. It is the component
6
+ * that powers the entity collections but has a generic API, so it
7
+ * can be reused.
8
+ *
9
+ * @group Components
10
+ */
11
+ export declare const VirtualTable: React.NamedExoticComponent<VirtualTableProps<any>>;
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import { CellRendererParams, VirtualTableColumn } from "./VirtualTableProps";
3
+ type VirtualTableCellProps<T extends any> = {
4
+ dataKey: string;
5
+ column: VirtualTableColumn;
6
+ columns: VirtualTableColumn[];
7
+ rowData: any;
8
+ cellData: any;
9
+ rowIndex: any;
10
+ columnIndex: number;
11
+ cellRenderer: (params: CellRendererParams<T>) => React.ReactNode;
12
+ };
13
+ export declare const VirtualTableCell: React.NamedExoticComponent<VirtualTableCellProps<any>>;
14
+ export {};
@@ -0,0 +1,27 @@
1
+ import React, { RefObject } from "react";
2
+ import { VirtualTableColumn, VirtualTableSort, VirtualTableWhereFilterOp } from "./VirtualTableProps";
3
+ export type FilterFormFieldProps<CustomProps> = {
4
+ id: React.Key;
5
+ filterValue: [VirtualTableWhereFilterOp, any] | undefined;
6
+ setFilterValue: (filterValue?: [VirtualTableWhereFilterOp, any]) => void;
7
+ column: VirtualTableColumn<CustomProps>;
8
+ hidden: boolean;
9
+ setHidden: (hidden: boolean) => void;
10
+ };
11
+ type VirtualTableHeaderProps<M extends Record<string, any>> = {
12
+ resizeHandleRef: RefObject<HTMLDivElement>;
13
+ columnIndex: number;
14
+ isResizingIndex: number;
15
+ column: VirtualTableColumn<any>;
16
+ onColumnSort: (key: Extract<keyof M, string>) => void;
17
+ filter?: [VirtualTableWhereFilterOp, any];
18
+ sort: VirtualTableSort;
19
+ onFilterUpdate: (column: VirtualTableColumn, filterForProperty?: [VirtualTableWhereFilterOp, any]) => void;
20
+ onClickResizeColumn?: (columnIndex: number, column: VirtualTableColumn) => void;
21
+ createFilterField?: (props: FilterFormFieldProps<any>) => React.ReactNode;
22
+ AdditionalHeaderWidget?: (props: {
23
+ onHover: boolean;
24
+ }) => React.ReactNode;
25
+ };
26
+ export declare const VirtualTableHeader: React.FunctionComponent<VirtualTableHeaderProps<any>>;
27
+ export {};
@@ -0,0 +1,2 @@
1
+ import { VirtualTableContextProps } from "./types";
2
+ export declare const VirtualTableHeaderRow: ({ columns, currentSort, onColumnSort, onFilterUpdate, sortByProperty, filter, onColumnResize, onColumnResizeEnd, createFilterField, AddColumnComponent }: VirtualTableContextProps<any>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,215 @@
1
+ import React from "react";
2
+ import { WhereFilterOp } from "../../types";
3
+ import { FilterFormFieldProps } from "./VirtualTableHeader";
4
+ export type OnRowClickParams<T extends Record<string, any>> = {
5
+ rowData: T;
6
+ rowIndex: number;
7
+ event: React.SyntheticEvent;
8
+ };
9
+ /**
10
+ * @see Table
11
+ * @group Components
12
+ */
13
+ export interface VirtualTableProps<T extends Record<string, any>> {
14
+ /**
15
+ * Array of arbitrary data
16
+ */
17
+ data?: T[];
18
+ /**
19
+ * Properties displayed in this collection. If this property is not set
20
+ * every property is displayed, you can filter
21
+ */
22
+ columns: VirtualTableColumn[];
23
+ /**
24
+ * Custom cell renderer
25
+ * The renderer receives props `{ cellData, columns, column, columnIndex, rowData, rowIndex, container, isScrolling }`
26
+ */
27
+ cellRenderer: (params: CellRendererParams<T>) => React.ReactNode;
28
+ /**
29
+ * If enabled, content is loaded in batch
30
+ */
31
+ paginationEnabled?: boolean;
32
+ /**
33
+ * Set this callback if you want to support some combinations
34
+ * of filter combinations only.
35
+ * @param filterValues
36
+ * @param sortBy
37
+ */
38
+ checkFilterCombination?: (filterValues: VirtualTableFilterValues<Extract<keyof T, string>>, sortBy?: [string, "asc" | "desc"]) => boolean;
39
+ /**
40
+ * A callback function when scrolling the table to near the end
41
+ */
42
+ onEndReached?: () => void;
43
+ /**
44
+ * When the pagination should be reset. E.g. the filters or sorting
45
+ * has been reset.
46
+ */
47
+ onResetPagination?: () => void;
48
+ /**
49
+ * Callback when a row is clicked
50
+ */
51
+ onRowClick?: (props: OnRowClickParams<T>) => void;
52
+ /**
53
+ * Callback when a column is resized
54
+ */
55
+ onColumnResize?: (params: OnVirtualTableColumnResizeParams) => void;
56
+ /**
57
+ * Size of the table
58
+ */
59
+ size?: VirtualTableSize;
60
+ /**
61
+ * In case this table should have some filters set by default
62
+ */
63
+ filter?: VirtualTableFilterValues<any>;
64
+ /**
65
+ * Callback used when filters are updated
66
+ * @param filter
67
+ */
68
+ onFilterUpdate?: (filter?: VirtualTableFilterValues<any> | undefined) => void;
69
+ /**
70
+ * Default sort applied to this collection
71
+ */
72
+ sortBy?: [string, "asc" | "desc"];
73
+ /**
74
+ * Callback used when sorting is updated
75
+ * @param sortBy
76
+ */
77
+ onSortByUpdate?: (sortBy?: [string, "asc" | "desc"]) => void;
78
+ /**
79
+ * If there is an error loading data you can pass it here, so it gets
80
+ * displayed instead of the content
81
+ */
82
+ error?: Error;
83
+ /**
84
+ * Message displayed when there is no data
85
+ */
86
+ emptyComponent?: React.ReactNode;
87
+ /**
88
+ * Is the table in a loading state
89
+ */
90
+ loading?: boolean;
91
+ /**
92
+ * Should apply a different style when hovering
93
+ */
94
+ hoverRow?: boolean;
95
+ /**
96
+ * Apply a custom class name to the row
97
+ * @param rowData
98
+ */
99
+ rowClassName?: (rowData: T) => string | undefined;
100
+ /**
101
+ * Callback to create a filter field, displayed in the header as a dropdown
102
+ * @param props
103
+ */
104
+ createFilterField?: (props: FilterFormFieldProps<any>) => React.ReactNode;
105
+ /**
106
+ * Class name applied to the table
107
+ */
108
+ className?: string;
109
+ /**
110
+ * Component rendered at the end of the table, after scroll
111
+ */
112
+ endAdornment?: React.ReactNode;
113
+ /**
114
+ * If adding this callback, a button to add a new column is displayed.
115
+ * @param column
116
+ */
117
+ AddColumnComponent?: React.ComponentType;
118
+ }
119
+ export type CellRendererParams<T extends any> = {
120
+ cellData?: any;
121
+ column: VirtualTableColumn;
122
+ columns: VirtualTableColumn[];
123
+ columnIndex: number;
124
+ rowData?: T;
125
+ rowIndex: number;
126
+ width: number;
127
+ isScrolling?: boolean;
128
+ };
129
+ /**
130
+ * @see Table
131
+ * @group Components
132
+ */
133
+ export interface VirtualTableColumn<CustomProps extends any = any> {
134
+ /**
135
+ * Data key for the cell value, could be "a.b.c"
136
+ */
137
+ key: string;
138
+ /**
139
+ * The width of the column, gutter width is not included
140
+ */
141
+ width: number;
142
+ /**
143
+ * Label displayed in the header
144
+ */
145
+ title?: string;
146
+ /**
147
+ * This column is frozen to the left
148
+ */
149
+ frozen?: boolean;
150
+ /**
151
+ * How is the
152
+ */
153
+ headerAlign?: "left" | "center" | "right";
154
+ /**
155
+ * Icon displayed in the header
156
+ */
157
+ icon?: (hoverOrOpen: boolean) => React.ReactNode;
158
+ /**
159
+ *
160
+ */
161
+ filter?: boolean;
162
+ /**
163
+ * Alignment of the column cell
164
+ */
165
+ align?: "left" | "right" | "center";
166
+ /**
167
+ * Whether the column is sortable, defaults to false
168
+ */
169
+ sortable?: boolean;
170
+ /**
171
+ * Can it be resized
172
+ */
173
+ resizable?: boolean;
174
+ /**
175
+ * Custom props passed to the cell renderer
176
+ */
177
+ custom?: CustomProps;
178
+ /**
179
+ * Additional children to be rendered in the header when hovering
180
+ */
181
+ AdditionalHeaderWidget?: (props: {
182
+ onHover: boolean;
183
+ }) => React.ReactNode;
184
+ }
185
+ /**
186
+ * @see Table
187
+ * @group Collection components
188
+ */
189
+ export type OnVirtualTableColumnResizeParams = {
190
+ width: number;
191
+ key: string;
192
+ column: VirtualTableColumn;
193
+ };
194
+ /**
195
+ * @see Table
196
+ * @group Components
197
+ */
198
+ export type VirtualTableSize = "xs" | "s" | "m" | "l" | "xl";
199
+ /**
200
+ * @see Table
201
+ * @group Components
202
+ */
203
+ export type VirtualTableSort = "asc" | "desc" | undefined;
204
+ /**
205
+ * @see Table
206
+ * @group Components
207
+ */
208
+ export type VirtualTableFilterValues<Key extends string> = Partial<Record<Key, [WhereFilterOp, any]>>;
209
+ /**
210
+ * Filter conditions in a `Query.where()` clause are specified using the
211
+ * strings '<', '<=', '==', '>=', '>', 'array-contains', 'in', 'not-in', and 'array-contains-any'.
212
+ * @see Table
213
+ * @group Models
214
+ */
215
+ export type VirtualTableWhereFilterOp = "<" | "<=" | "==" | "!=" | ">=" | ">" | "array-contains" | "in" | "not-in" | "array-contains-any";
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import { VirtualTableRowProps } from "./types";
3
+ export declare const VirtualTableRow: React.NamedExoticComponent<VirtualTableRowProps<any>>;
@@ -0,0 +1,2 @@
1
+ import { VirtualTableSize } from "./VirtualTableProps";
2
+ export declare function getRowHeight(size: VirtualTableSize): number;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ export declare function VirtualTableDateField(props: {
3
+ name: string;
4
+ error: Error | undefined;
5
+ mode?: "date" | "date_time";
6
+ internalValue: Date | undefined | null;
7
+ updateValue: (newValue: (Date | null)) => void;
8
+ focused: boolean;
9
+ disabled: boolean;
10
+ onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export declare function VirtualTableInput(props: {
2
+ error: Error | undefined;
3
+ value: string;
4
+ multiline: boolean;
5
+ focused: boolean;
6
+ disabled: boolean;
7
+ updateValue: (newValue: (string | null)) => void;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export declare function VirtualTableNumberInput(props: {
2
+ error: Error | undefined;
3
+ value: number;
4
+ align: "right" | "left" | "center";
5
+ updateValue: (newValue: (number | null)) => void;
6
+ focused: boolean;
7
+ disabled: boolean;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { EnumValueConfig } from "../../../types";
2
+ import React from "react";
3
+ export declare function VirtualTableSelect(props: {
4
+ name: string;
5
+ enumValues: EnumValueConfig[];
6
+ error: Error | undefined;
7
+ multiple: boolean;
8
+ disabled: boolean;
9
+ small: boolean;
10
+ internalValue: string | number | string[] | number[] | undefined;
11
+ valueType: "string" | "number";
12
+ updateValue: (newValue: (string | number | string[] | number[] | null)) => void;
13
+ focused: boolean;
14
+ onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
15
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export declare function VirtualTableSwitch(props: {
2
+ error: Error | undefined;
3
+ internalValue?: boolean;
4
+ focused: boolean;
5
+ disabled: boolean;
6
+ updateValue: (newValue: (boolean | null)) => void;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { VirtualTable } from "./VirtualTable";
2
+ export * from "./VirtualTableProps";
@@ -0,0 +1,34 @@
1
+ import React from "react";
2
+ import { CellRendererParams, OnRowClickParams, OnVirtualTableColumnResizeParams, VirtualTableColumn, VirtualTableFilterValues, VirtualTableSize, VirtualTableWhereFilterOp } from "./VirtualTableProps";
3
+ import { FilterFormFieldProps } from "./VirtualTableHeader";
4
+ export type VirtualTableRowProps<T> = {
5
+ style: any;
6
+ size: VirtualTableSize;
7
+ rowData: T;
8
+ rowIndex: number;
9
+ onRowClick?: (props: OnRowClickParams<any>) => void;
10
+ children: React.ReactNode[];
11
+ columns: VirtualTableColumn[];
12
+ hoverRow?: boolean;
13
+ rowClassName?: (rowData: T) => string | undefined;
14
+ };
15
+ export type VirtualTableContextProps<T extends any> = {
16
+ data?: T[];
17
+ size?: VirtualTableSize;
18
+ columns: VirtualTableColumn[];
19
+ cellRenderer: (params: CellRendererParams<T>) => React.ReactNode;
20
+ currentSort: "asc" | "desc" | undefined;
21
+ filter?: VirtualTableFilterValues<any>;
22
+ onRowClick?: (props: OnRowClickParams<any>) => void;
23
+ onColumnSort: (key: string) => any;
24
+ onColumnResize: (params: OnVirtualTableColumnResizeParams) => void;
25
+ onColumnResizeEnd: (params: OnVirtualTableColumnResizeParams) => void;
26
+ onFilterUpdate: (column: VirtualTableColumn, filterForProperty?: [VirtualTableWhereFilterOp, any]) => void;
27
+ sortByProperty?: string;
28
+ customView?: React.ReactNode;
29
+ hoverRow: boolean;
30
+ createFilterField?: (props: FilterFormFieldProps<any>) => React.ReactNode;
31
+ rowClassName?: (rowData: T) => string | undefined;
32
+ endAdornment?: React.ReactNode;
33
+ AddColumnComponent?: React.ComponentType;
34
+ };