jamespot-react-components 1.0.206 → 1.0.208

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 (69) hide show
  1. package/build/jamespot-react-components.js +1100 -989
  2. package/build/jamespot-react-components.js.map +1 -1
  3. package/build/src/components/Drives/MicrosoftGraph/App365AccessDenied.d.ts +3 -0
  4. package/build/src/components/Drives/MicrosoftGraph/App365Account.d.ts +17 -0
  5. package/build/src/components/Drives/MicrosoftGraph/App365Documents.d.ts +20 -0
  6. package/build/src/components/Drives/MicrosoftGraph/App365Groups.d.ts +19 -0
  7. package/build/src/components/Drives/MicrosoftGraph/App365IsEmpty.d.ts +3 -0
  8. package/build/src/components/Drives/MicrosoftGraph/App365Tenants.d.ts +9 -0
  9. package/build/src/components/Drives/MicrosoftGraph/JRCApp365.d.ts +30 -0
  10. package/build/src/components/Drives/MicrosoftGraph/components/EntityAvarar.d.ts +6 -0
  11. package/build/src/components/Drives/MicrosoftGraph/components/EntityItem.d.ts +14 -0
  12. package/build/src/components/Drives/MicrosoftGraph/components/EntityItemSelection.d.ts +5 -0
  13. package/build/src/components/Drives/MicrosoftGraph/components/EntityItemTitle.d.ts +10 -0
  14. package/build/src/components/Drives/MicrosoftGraph/components/TenantEntityItem.d.ts +7 -0
  15. package/build/src/components/Drives/components/DriveFiltererList.d.ts +60 -0
  16. package/build/src/components/Drives/components/DriveItem.d.ts +7 -0
  17. package/build/src/components/Drives/drive.const.d.ts +2 -0
  18. package/build/src/components/Drives/drive.style.d.ts +3 -0
  19. package/build/src/components/Drives/hooks.d.ts +40 -0
  20. package/build/src/components/Editors/components/EditorUploader.d.ts +3 -2
  21. package/build/src/components/Form/Input/JRCInputFileAdvanced/JRCInputFileAdvancedRaw.d.ts +14 -2
  22. package/build/src/components/JRCCommentsBloc/JRCComment.d.ts +18 -3
  23. package/build/src/components/JRCCommentsBloc/JRCCommentsBloc.d.ts +14 -2
  24. package/build/src/components/JRCFolders/types.d.ts +9 -3
  25. package/build/src/components/Widgets/JRCWidgetArticleText/JRCWidgetArticleText.stories.d.ts +1 -0
  26. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetDatasourceTableEditor.d.ts +18 -5
  27. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetDatasourceTableEditor.styles.d.ts +5 -0
  28. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetExcelDatasourceTableEditor.d.ts +58 -2
  29. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetTable.d.ts +2 -2
  30. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetTable.stories.d.ts +28 -1
  31. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetTable.styles.d.ts +2 -1
  32. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetTableSharedEditor.d.ts +3 -0
  33. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetTableTdRenderer.d.ts +2 -1
  34. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetTableTdRendererText.d.ts +15 -0
  35. package/build/src/components/Widgets/JRCWidgetTable/components/ModalColumnLabelize.d.ts +2 -1
  36. package/build/src/components/Widgets/JRCWidgetTable/components/WidgetDatasourceModelView.d.ts +3 -1
  37. package/build/src/components/Widgets/JRCWidgetTable/components/WidgetDatasourceModelViewChanges.d.ts +10 -0
  38. package/build/src/components/Widgets/JRCWidgetTable/components/WidgetDatasourceModelViewColumnAction.d.ts +17 -0
  39. package/build/src/components/Widgets/JRCWidgetTable/const.d.ts +3 -1
  40. package/build/src/components/Widgets/JRCWidgetTable/model/doc/DocEditor.d.ts +3 -22
  41. package/build/src/components/Widgets/JRCWidgetTable/model/doc/DocEditorObject.d.ts +2 -3
  42. package/build/src/components/Widgets/JRCWidgetTable/model/excel/ExcelEditor.d.ts +3 -22
  43. package/build/src/components/Widgets/JRCWidgetTable/model/excel/ExcelEditorBrokenModel.d.ts +4 -0
  44. package/build/src/components/Widgets/JRCWidgetTable/model/excel/ExcelEditorModel.d.ts +3 -22
  45. package/build/src/components/Widgets/JRCWidgetTable/model/excel/ExcelEditorObject.d.ts +3 -5
  46. package/build/src/components/Widgets/JRCWidgetTable/model/excel/ExcelEditorSelectDocument.d.ts +4 -0
  47. package/build/src/components/Widgets/JRCWidgetTable/model/excel/ExcelEditorSelectWedocFile.d.ts +4 -0
  48. package/build/src/components/Widgets/JRCWidgetTable/model/excel/ExcelEditorSpreadSheets.d.ts +4 -23
  49. package/build/src/components/Widgets/JRCWidgetTable/model/excel/ExcelEditorUploader.d.ts +2 -22
  50. package/build/src/components/Widgets/JRCWidgetTable/model/studio/StudioEditor.d.ts +3 -22
  51. package/build/src/components/Widgets/JRCWidgetTable/model/studio/StudioEditorApp.d.ts +1 -1
  52. package/build/src/components/Widgets/JRCWidgetTable/model/studio/StudioEditorFetch.d.ts +1 -2
  53. package/build/src/components/Widgets/JRCWidgetTable/model/studio/StudioEditorObject.d.ts +2 -3
  54. package/build/src/components/Widgets/JRCWidgetTable/pagination.d.ts +0 -2
  55. package/build/src/components/Widgets/JRCWidgetTable/utils.d.ts +18 -1
  56. package/build/src/components/Widgets/context/hooks.d.ts +114 -0
  57. package/build/src/components/Widgets/context/provider.d.ts +26 -0
  58. package/build/src/components/api/jamespot/mock_jamespot.d.ts +15 -0
  59. package/build/src/components/api/jamespot/mocks/application/application.d.ts +9 -0
  60. package/build/src/components/api/jamespot/mocks/datasource/datasource.d.ts +14 -0
  61. package/build/src/components/api/jamespot/mocks/file/file.d.ts +3 -0
  62. package/build/src/components/api/jamespot/mocks/network/network.d.ts +6 -0
  63. package/build/src/index.d.ts +1 -0
  64. package/build/src/styles/theme.d.ts +7 -0
  65. package/build/src/utils/utils.array.d.ts +1 -0
  66. package/package.json +2 -2
  67. package/build/src/components/Widgets/JRCWidgetTable/JRCWidgetTablePagination.d.ts +0 -9
  68. package/build/src/components/Widgets/JRCWidgetTable/components/ModalColumnDateFormat.d.ts +0 -7
  69. package/build/src/components/Widgets/JRCWidgetTable/components/WidgetDatasourceModelDiff.d.ts +0 -2
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ export declare const CSSIsEmpty: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
3
+ export declare const App365AccessDenied: () => React.JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { ApiWrapper, DriveAccount, DriveGetAccount, DriveGetAccountParams, DriveLogoutParams, DriveSetDefaultAccountParams } from 'jamespot-user-api';
2
+ import React from 'react';
3
+ export type App365AccountProps = {
4
+ accounts?: DriveAccount[];
5
+ activeAccount?: DriveAccount;
6
+ isLogged: boolean;
7
+ onLogout: () => void;
8
+ onLogin: (account: DriveAccount) => void;
9
+ onSetDefaultAccount: (account: DriveAccount) => void;
10
+ requests: {
11
+ getAccount: (params: DriveGetAccountParams) => Promise<ApiWrapper<DriveGetAccount>>;
12
+ logout: (params: DriveLogoutParams) => Promise<ApiWrapper<boolean>>;
13
+ setDefaultAccount: (params: DriveSetDefaultAccountParams) => Promise<ApiWrapper<boolean>>;
14
+ };
15
+ onLoginError: (errorMsg?: string) => void;
16
+ };
17
+ export declare const App365Account: ({ accounts, activeAccount, onLogout, onLogin, onSetDefaultAccount, requests, isLogged, onLoginError, }: App365AccountProps) => React.JSX.Element;
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { ApiWrapper, DriveDocumentParams, DriveGetDocumentsParams, MSDocumentEntity, MSUnifiedEntity } from 'jamespot-user-api';
3
+ type App365DocumentsProps = {
4
+ driveDocumentParams: DriveDocumentParams;
5
+ initialFolderColor?: string;
6
+ useNavigation: boolean;
7
+ useFilter: boolean;
8
+ useDocumentFilters: string[];
9
+ onClick: (entity: MSUnifiedEntity) => void;
10
+ onSelect?: (entity: MSUnifiedEntity) => void;
11
+ onSelectDocument?: (entity: MSUnifiedEntity) => void;
12
+ onSelectMultiDocument?: (entity: MSUnifiedEntity) => void;
13
+ onError?: (code: string) => void;
14
+ driveRequests: {
15
+ documents: (params: DriveGetDocumentsParams) => Promise<ApiWrapper<MSDocumentEntity[]>>;
16
+ };
17
+ id: string;
18
+ };
19
+ export declare const App365Documents: (props: App365DocumentsProps) => React.JSX.Element;
20
+ export {};
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { ApiWrapper, DriveGetGroupsParams, MSGroupEntity } from 'jamespot-user-api';
3
+ export declare const CSSSearchAndFilters: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
4
+ export declare const CSSSearch: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
5
+ export declare const LoaderWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
6
+ type App365GroupsProps = {
7
+ useFilter: boolean;
8
+ initialFolderColor?: string;
9
+ useNavigation: boolean;
10
+ onSelect?: (entity: MSGroupEntity) => void;
11
+ onClick: (entity: MSGroupEntity) => void;
12
+ onError?: (code: string) => void;
13
+ driveRequests: {
14
+ groups: (params: DriveGetGroupsParams) => Promise<ApiWrapper<MSGroupEntity[]>>;
15
+ };
16
+ id: string;
17
+ };
18
+ export declare const App365Groups: ({ useFilter, useNavigation, onSelect, onClick, driveRequests, onError, id, }: App365GroupsProps) => React.JSX.Element;
19
+ export {};
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ export declare const CSSIsEmpty: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
3
+ export declare const App365IsEmpty: () => React.JSX.Element;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { ApiWrapper, DriveGetTenantsParams, MSTenantEntity } from 'jamespot-user-api';
3
+ export declare const App365Tenants: ({ initialFolderColor, onClick, onError, request, id, }: {
4
+ initialFolderColor?: string | undefined;
5
+ onClick: (entity: MSTenantEntity) => void;
6
+ onError?: ((code: string) => void) | undefined;
7
+ request: (params: DriveGetTenantsParams) => Promise<ApiWrapper<MSTenantEntity[]>>;
8
+ id: string;
9
+ }) => React.JSX.Element;
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { ApiWrapper, DriveAccount, DriveDocumentParams, DriveGetAccount, DriveGetAccountParams, DriveGetDocumentsParams, DriveGetGroupsParams, DriveGetTenantsParams, DriveItemType, DriveLogoutParams, DriveSetDefaultAccountParams, MSDocumentEntity, MSGroupEntity, MSTenantEntity, MSUnifiedEntity } from 'jamespot-user-api';
3
+ type JRCApp365Props = {
4
+ initialParams?: DriveDocumentParams;
5
+ initialFolder?: DriveItemType;
6
+ initialFolderColor?: string;
7
+ useNavigation?: boolean;
8
+ useFilter?: boolean;
9
+ useDocumentFilters: string[];
10
+ onSelect?: (item: MSUnifiedEntity, driveParams: DriveDocumentParams) => void;
11
+ onSelectMultiDocument?: (items: MSUnifiedEntity[], driveParams: DriveDocumentParams) => void;
12
+ onSelectDocument?: (item: MSUnifiedEntity, lastFolder: MSUnifiedEntity | undefined, driveParams: DriveDocumentParams) => void;
13
+ onError?: (code?: string) => void;
14
+ driveRequests: {
15
+ documents: (params: DriveGetDocumentsParams) => Promise<ApiWrapper<MSDocumentEntity[]>>;
16
+ groups: (params: DriveGetGroupsParams) => Promise<ApiWrapper<MSGroupEntity[]>>;
17
+ tenants: (params: DriveGetTenantsParams) => Promise<ApiWrapper<MSTenantEntity[]>>;
18
+ listAccount?: (service: string) => Promise<ApiWrapper<DriveAccount[]>>;
19
+ isAccountLogged?: (service: string, id: string) => Promise<ApiWrapper<boolean>>;
20
+ checkAccountToken?: (service: string) => Promise<ApiWrapper<boolean>>;
21
+ getAccount?: (service: DriveGetAccountParams) => Promise<ApiWrapper<DriveGetAccount>>;
22
+ logout?: (params: DriveLogoutParams) => Promise<ApiWrapper<boolean>>;
23
+ setDefaultAccount?: (params: DriveSetDefaultAccountParams) => Promise<ApiWrapper<boolean>>;
24
+ };
25
+ handleLogin?: boolean;
26
+ onLogin?: (account: DriveAccount) => void;
27
+ onLogout?: () => void;
28
+ };
29
+ export declare const JRCApp365: ({ initialParams, initialFolder, initialFolderColor, useDocumentFilters, useFilter, useNavigation, onSelect, onSelectDocument, onSelectMultiDocument, onError, driveRequests, handleLogin, onLogin, }: JRCApp365Props) => React.JSX.Element;
30
+ export {};
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export declare const EntityAvarar: ({ type, mimetype, initialFolderColor, }: {
3
+ type: string;
4
+ mimetype?: string | undefined;
5
+ initialFolderColor?: string | undefined;
6
+ }) => React.JSX.Element;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { MSUnifiedEntity } from 'jamespot-user-api';
3
+ export declare const CSSEntity: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
4
+ export declare const CSSEntityAvatar: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
5
+ export declare const CSSEntityAvatarHover: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
6
+ export declare const EntityItem: ({ entity, initialFolderColor, useNavigation, onSelect, onSelectDocument, onSelectMultiDocument, onClick, }: {
7
+ entity: MSUnifiedEntity;
8
+ initialFolderColor?: string | undefined;
9
+ useNavigation: boolean;
10
+ onSelect?: ((entity: MSUnifiedEntity) => void) | undefined;
11
+ onSelectDocument?: ((entity: MSUnifiedEntity) => void) | undefined;
12
+ onSelectMultiDocument?: ((entity: MSUnifiedEntity) => void) | undefined;
13
+ onClick: () => void;
14
+ }) => React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const EntityItemSelection: ({ title, onClick }: {
3
+ title: string;
4
+ onClick: (isSelected: boolean) => void;
5
+ }) => React.JSX.Element;
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ export declare const CSSTitle: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
3
+ export declare const CSSTitleA: import("styled-components").StyledComponent<"a", import("styled-components").DefaultTheme, {}, never>;
4
+ export declare const EntityItemTitle: ({ title, type, url, useNavigation, onClick, }: {
5
+ title: string;
6
+ type: string;
7
+ url?: string | undefined;
8
+ useNavigation: boolean;
9
+ onClick: () => void;
10
+ }) => React.JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { MSTenantEntity } from 'jamespot-user-api';
2
+ import * as React from 'react';
3
+ export declare const TenantEntityItem: ({ entity, initialFolderColor, onClick, }: {
4
+ entity: MSTenantEntity;
5
+ initialFolderColor?: string | undefined;
6
+ onClick: () => void;
7
+ }) => React.JSX.Element;
@@ -0,0 +1,60 @@
1
+ import { MSUnifiedEntity } from 'jamespot-user-api';
2
+ import * as React from 'react';
3
+ /**
4
+ * We need to apply the type order at the end to split folders and documents
5
+ */
6
+ export declare const alphabeticallyOrder: <T extends {
7
+ title: string;
8
+ type: string;
9
+ }>(array: T[], sortBy: 'ASC' | 'DESC') => T[];
10
+ export declare const visibilityFilter: <T extends {
11
+ type: string;
12
+ id: string;
13
+ title: string;
14
+ visibility?: "public" | "private" | undefined;
15
+ } & {
16
+ type: string;
17
+ id: string;
18
+ title: string;
19
+ mimetype?: string | undefined;
20
+ size?: number | undefined;
21
+ webUrl?: string | undefined;
22
+ }>(array: T[], filters: Array<'public' | 'private'>) => T[];
23
+ export declare const typeFilter: <T extends {
24
+ type: string;
25
+ id: string;
26
+ title: string;
27
+ visibility?: "public" | "private" | undefined;
28
+ } & {
29
+ type: string;
30
+ id: string;
31
+ title: string;
32
+ mimetype?: string | undefined;
33
+ size?: number | undefined;
34
+ webUrl?: string | undefined;
35
+ }>(array: T[], filters: string[]) => T[];
36
+ export declare function useFilters<T extends MSUnifiedEntity>(initialEntities: T[], query: string): {
37
+ visibility: ("public" | "private")[];
38
+ setVisibility: React.Dispatch<React.SetStateAction<("public" | "private")[]>>;
39
+ types: string[];
40
+ setTypes: React.Dispatch<React.SetStateAction<string[]>>;
41
+ entities: T[];
42
+ };
43
+ export declare const CSSFilterHeader: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
44
+ export declare const DriveFiltererList: <T extends {
45
+ type: string;
46
+ id: string;
47
+ title: string;
48
+ visibility?: "public" | "private" | undefined;
49
+ } & {
50
+ type: string;
51
+ id: string;
52
+ title: string;
53
+ mimetype?: string | undefined;
54
+ size?: number | undefined;
55
+ webUrl?: string | undefined;
56
+ }>({ initialEntities, renderItem, filters, }: {
57
+ initialEntities: T[];
58
+ filters: Array<'visibility' | 'alpha' | 'document'>;
59
+ renderItem: (entity: T) => void;
60
+ }) => React.JSX.Element;
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { MSUnifiedEntity } from 'jamespot-user-api';
3
+ export declare const DriveItem: ({ item }: {
4
+ item: MSUnifiedEntity;
5
+ useNavigation: boolean;
6
+ onClick: () => void;
7
+ }) => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_FOLDER_COLOR = "#392994";
2
+ export declare const MS_GRAPH_SERVICE_NAME = "microsoftgraph";
@@ -0,0 +1,3 @@
1
+ export declare const CSSTree: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
2
+ export declare const CSSTreeItem: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, {}, never>;
3
+ export declare const CSSDriveApp: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
@@ -0,0 +1,40 @@
1
+ import { ApiWrapper, DriveGetTenantsParams, MSGroupEntity, MSTenantEntity } from 'jamespot-user-api';
2
+ type ErrorType = {
3
+ error: number;
4
+ errorMsg: string;
5
+ messages: {
6
+ code: number;
7
+ msg: string;
8
+ }[];
9
+ };
10
+ /**
11
+ * This is only used inside App365. if you need to use it outside of this component, consider making it a slice
12
+ */
13
+ export declare function useTenants({ request, id, }: {
14
+ request: (params: DriveGetTenantsParams) => Promise<ApiWrapper<MSTenantEntity[]>>;
15
+ id: string;
16
+ }): {
17
+ loading: boolean;
18
+ entities: {
19
+ type: string;
20
+ title: string;
21
+ name?: "group" | "groups" | "sites" | "onedrive" | "documents" | "me" | undefined;
22
+ }[];
23
+ error: ErrorType | undefined;
24
+ };
25
+ /**
26
+ * This is only used inside App365. if you need to use it outside of this component, consider making it a slice
27
+ */
28
+ export declare function useGroups({ request, }: {
29
+ request: (query?: string, filter?: string) => Promise<ApiWrapper<MSGroupEntity[]>>;
30
+ }): {
31
+ loading: boolean;
32
+ entities: {
33
+ type: string;
34
+ id: string;
35
+ title: string;
36
+ visibility?: "public" | "private" | undefined;
37
+ }[];
38
+ error: ErrorType | undefined;
39
+ };
40
+ export {};
@@ -1,12 +1,13 @@
1
- import { jFileLittle } from 'jamespot-user-api';
1
+ import { jFileLittle, Network } from 'jamespot-user-api';
2
2
  import React from 'react';
3
- export declare const EditorUploader: ({ token, uniqid, label, accept, multiple, name, onUploadStart, onUploadSuccess, onUploadSucessEnd, }: {
3
+ export declare const EditorUploader: ({ token, uniqid, label, accept, multiple, name, network, onUploadStart, onUploadSuccess, onUploadSucessEnd, }: {
4
4
  token: string;
5
5
  uniqid: string;
6
6
  label: string;
7
7
  accept: string;
8
8
  multiple: boolean;
9
9
  name?: "editorFiles" | "attachment" | undefined;
10
+ network?: Pick<Network, "token" | "postFile" | "getUrl"> | undefined;
10
11
  onUploadStart: (count?: number) => void;
11
12
  onUploadSuccess: (response: jFileLittle) => void;
12
13
  onUploadSucessEnd?: (() => void) | undefined;
@@ -1,4 +1,4 @@
1
- import jamespot, { Drive, FileCopyParams, jFileLittle } from 'jamespot-user-api';
1
+ import jamespot, { ApiWrapper, Drive, DriveAccount, DriveGetDocumentParams, DriveGetDocumentsParams, DriveGetGroupsParams, DriveGetTenantsParams, FileCopyParams, jFileLittle, MSDocumentEntity, MSGroupEntity, MSTenantEntity, Network } from 'jamespot-user-api';
2
2
  import * as React from 'react';
3
3
  import { WrappedFieldInputProps } from 'redux-form';
4
4
  export type DriveOrFilebank = Drive | 'fileBank';
@@ -13,7 +13,8 @@ export interface JRCInputFileAdavancedProps extends React.ComponentPropsWithoutR
13
13
  multiple?: boolean;
14
14
  accept?: 'image/png' | 'image/jpg' | 'image/png, image/jpg' | 'image/png, image/jpeg, image/jpg' | 'image/pdf' | 'image/doc' | 'image/pdf, image/doc' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.oasis.opendocument.spreadsheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.oasis.opendocument.text,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.oasis.opendocument.presentation';
15
15
  input?: WrappedFieldInputProps;
16
- onUploadSuccess?: (response: jFileLittle, token: string) => void;
16
+ onUploadSuccess?: (response: jFileLittle, token?: string) => void;
17
+ network?: Pick<Network, 'token' | 'postFile' | 'getUrl'>;
17
18
  onDeleteSuccess?: (index: number) => void;
18
19
  onUploadStart?: (count?: number) => void;
19
20
  existingFiles?: Array<jFileLittle>;
@@ -25,5 +26,16 @@ export interface JRCInputFileAdavancedProps extends React.ComponentPropsWithoutR
25
26
  getDocuments: (uri: string) => ReturnType<typeof jamespot.filebank.getDocuments>;
26
27
  copyFile: (params: FileCopyParams) => ReturnType<typeof jamespot.file.copy>;
27
28
  };
29
+ dispatchOnError?: (code?: string) => void;
30
+ msGraphRequests?: {
31
+ documents: (params: DriveGetDocumentsParams) => Promise<ApiWrapper<MSDocumentEntity[]>>;
32
+ groups: (params: DriveGetGroupsParams) => Promise<ApiWrapper<MSGroupEntity[]>>;
33
+ tenants: (params: DriveGetTenantsParams) => Promise<ApiWrapper<MSTenantEntity[]>>;
34
+ getDocument: (params: DriveGetDocumentParams) => Promise<ApiWrapper<jFileLittle>>;
35
+ listAccount: (service: string) => Promise<ApiWrapper<DriveAccount[]>>;
36
+ isAccountLogged: (service: string, id: string) => Promise<ApiWrapper<boolean>>;
37
+ checkAccountToken: (service: string) => Promise<ApiWrapper<boolean>>;
38
+ };
39
+ directFilePopupOpening?: boolean;
28
40
  }
29
41
  export declare const JRCInputFileAdvancedRaw: React.ForwardRefExoticComponent<JRCInputFileAdavancedProps & React.RefAttributes<HTMLInputElement>>;
@@ -1,7 +1,8 @@
1
- import jamespot, { AddRemoveActionParams, Model, UpdateCommentParams, WidgetDisplayMode, WidgetWrapperProps, jUserView } from 'jamespot-user-api';
1
+ import jamespot, { AddRemoveActionParams, Model, UpdateCommentParams, WidgetDisplayMode, WidgetWrapperProps, jUserView, DriveGetDocumentsParams, ApiWrapper, MSDocumentEntity, DriveGetGroupsParams, MSGroupEntity, DriveGetTenantsParams, MSTenantEntity, DriveGetDocumentParams, jFileLittle, DriveAccount, DriveGetAccountParams, DriveGetAccount, DriveLogoutParams, DriveSetDefaultAccountParams } from 'jamespot-user-api';
2
2
  import { jCommentList } from 'jamespot-user-api/lib/src/types/comment';
3
3
  import React from 'react';
4
- import { JRCInputTinyMCERawProps } from 'types';
4
+ import { DriveOrFilebank, JRCInputTinyMCERawProps } from 'types';
5
+ import { JRCInputFileAdavancedProps } from '../Form/Input/JRCInputFileAdvanced/JRCInputFileAdvancedRaw';
5
6
  export type JRCCommentProps = {
6
7
  isFocused: boolean;
7
8
  comment: jCommentList;
@@ -24,6 +25,20 @@ export type JRCCommentProps = {
24
25
  onGetHashError: (message?: string) => void;
25
26
  socialActionAdd: ({ targetId, targetType, type, }: AddRemoveActionParams) => ReturnType<typeof jamespot.socialAction.add>;
26
27
  existingWidgetsWrapperComponent: (comment: Partial<jCommentList>, content: WidgetWrapperProps[], mode: WidgetDisplayMode, inplace: boolean, idComment: number, editRight?: boolean, deleteRight?: boolean) => React.ReactNode;
28
+ activeDrives: DriveOrFilebank[];
29
+ fileBankRequests: Required<JRCInputFileAdavancedProps>['fileBankRequests'];
30
+ msGraphRequests: {
31
+ documents: (params: DriveGetDocumentsParams) => Promise<ApiWrapper<MSDocumentEntity[]>>;
32
+ groups: (params: DriveGetGroupsParams) => Promise<ApiWrapper<MSGroupEntity[]>>;
33
+ tenants: (params: DriveGetTenantsParams) => Promise<ApiWrapper<MSTenantEntity[]>>;
34
+ getDocument: (params: DriveGetDocumentParams) => Promise<ApiWrapper<jFileLittle>>;
35
+ listAccount: (service: string) => Promise<ApiWrapper<DriveAccount[]>>;
36
+ isAccountLogged: (service: string, id: string) => Promise<ApiWrapper<boolean>>;
37
+ checkAccountToken: (service: string) => Promise<ApiWrapper<boolean>>;
38
+ getAccount: (service: DriveGetAccountParams) => Promise<ApiWrapper<DriveGetAccount>>;
39
+ logout: (params: DriveLogoutParams) => Promise<ApiWrapper<boolean>>;
40
+ setDefaultAccount: (params: DriveSetDefaultAccountParams) => Promise<ApiWrapper<boolean>>;
41
+ };
27
42
  };
28
43
  export declare const DropdownButton: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, {}, never>;
29
- export declare const JRCComment: ({ isFocused, comment, token, tinyMCEConfig, onCommentUpdate, onCommentDelete, fetchUser, fetchUserFields, fetchSocialActionUserList, removeAction, onError, highlightFields, userModel, userAccountStatus, isWedocActive, isWidgetActive, getAccessHash, onGetHashError, socialActionAdd, deleteFile, existingWidgetsWrapperComponent, }: JRCCommentProps) => React.JSX.Element;
44
+ export declare const JRCComment: ({ isFocused, comment, token, tinyMCEConfig, onCommentUpdate, onCommentDelete, fetchUser, fetchUserFields, fetchSocialActionUserList, removeAction, onError, highlightFields, userModel, userAccountStatus, isWedocActive, isWidgetActive, getAccessHash, onGetHashError, socialActionAdd, deleteFile, existingWidgetsWrapperComponent, activeDrives, fileBankRequests, msGraphRequests, }: JRCCommentProps) => React.JSX.Element;
@@ -1,4 +1,4 @@
1
- import jamespot, { AddCommentParams, AddRemoveActionParams, Model, UpdateCommentParams, WidgetDisplayMode, WidgetWrapperProps, jUserList, jUserView } from 'jamespot-user-api';
1
+ import jamespot, { AddCommentParams, AddRemoveActionParams, Model, UpdateCommentParams, WidgetDisplayMode, WidgetWrapperProps, jFileLittle, jUserList, jUserView, ApiWrapper, MSDocumentEntity, MSGroupEntity, MSTenantEntity, DriveAccount, DriveGetDocumentParams, DriveGetAccountParams, DriveLogoutParams, DriveGetAccount, DriveSetDefaultAccountParams, DriveGetTenantsParams, DriveGetDocumentsParams, DriveGetGroupsParams } from 'jamespot-user-api';
2
2
  import { jCommentList } from 'jamespot-user-api/lib/src/types/comment';
3
3
  import React from 'react';
4
4
  import { JRCInputTinyMCERawProps } from '../Form/Input/JRCInputTinyMCERaw/JRCInputTinyMCERaw';
@@ -34,6 +34,18 @@ export type JRCCommentsBlocProps = {
34
34
  variant?: 'modal' | 'inline';
35
35
  canComment: boolean;
36
36
  fileBankRequests: Required<JRCInputFileAdavancedProps>['fileBankRequests'];
37
+ msGraphRequests: {
38
+ documents: (params: DriveGetDocumentsParams) => Promise<ApiWrapper<MSDocumentEntity[]>>;
39
+ groups: (params: DriveGetGroupsParams) => Promise<ApiWrapper<MSGroupEntity[]>>;
40
+ tenants: (params: DriveGetTenantsParams) => Promise<ApiWrapper<MSTenantEntity[]>>;
41
+ getDocument: (params: DriveGetDocumentParams) => Promise<ApiWrapper<jFileLittle>>;
42
+ listAccount: (service: string) => Promise<ApiWrapper<DriveAccount[]>>;
43
+ isAccountLogged: (service: string, id: string) => Promise<ApiWrapper<boolean>>;
44
+ checkAccountToken: (service: string) => Promise<ApiWrapper<boolean>>;
45
+ getAccount: (service: DriveGetAccountParams) => Promise<ApiWrapper<DriveGetAccount>>;
46
+ logout: (params: DriveLogoutParams) => Promise<ApiWrapper<boolean>>;
47
+ setDefaultAccount: (params: DriveSetDefaultAccountParams) => Promise<ApiWrapper<boolean>>;
48
+ };
37
49
  };
38
50
  export declare const AvatarWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
39
- export declare const JRCCommentsBloc: ({ comments, initialCommentsNumber, currentUser, tinyMCEConfig, onComment, isWidgetActive, widgetListComponent, newWidgetsWrapperComponent, existingWidgetsWrapperComponent, loading, token, onCommentDelete, onCommentUpdate, fetchUser, fetchUserFields, deleteFile, fetchSocialActionUserList, removeLike, onError, highlightFields, userModel, userAccountStatus, isWedocActive, getAccessHash, onGetHashError, activeDrives, socialActionAdd, variant, canComment, fileBankRequests, }: JRCCommentsBlocProps) => React.JSX.Element;
51
+ export declare const JRCCommentsBloc: ({ comments, initialCommentsNumber, currentUser, tinyMCEConfig, onComment, isWidgetActive, widgetListComponent, newWidgetsWrapperComponent, existingWidgetsWrapperComponent, loading, token, onCommentDelete, onCommentUpdate, fetchUser, fetchUserFields, deleteFile, fetchSocialActionUserList, removeLike, onError, highlightFields, userModel, userAccountStatus, isWedocActive, getAccessHash, onGetHashError, activeDrives, socialActionAdd, variant, canComment, fileBankRequests, msGraphRequests, }: JRCCommentsBlocProps) => React.JSX.Element;
@@ -5,9 +5,9 @@ export type JRCFoldersProps = {
5
5
  initialDocuments?: string[];
6
6
  initialBankFolder?: jFolderList;
7
7
  allowMultiSelection?: boolean;
8
- asyncBanksPromise: () => Promise<FileBankProps[]>;
9
- asyncFoldersPromise: (uri: string) => Promise<ApiWrapper<jFolderList[]>>;
10
- asyncDocumentsPromise: (uri: string) => Promise<ApiPagingResults<jArticleView>>;
8
+ asyncBanksPromise?: () => Promise<FileBankProps[]> | undefined;
9
+ asyncFoldersPromise?: (uri: string) => Promise<ApiWrapper<jFolderList[]>> | undefined;
10
+ asyncDocumentsPromise?: (uri: string) => Promise<ApiPagingResults<jArticleView>> | undefined;
11
11
  onSelectFolder?: (folder: jFolderList[]) => void;
12
12
  onSelectDocument?: (document: jFileLittle[]) => void;
13
13
  };
@@ -23,3 +23,9 @@ export type FolderProps = {
23
23
  folderColor?: string;
24
24
  folders?: Array<FolderProps>;
25
25
  };
26
+ export type PoolItemType = {
27
+ parent: string | undefined;
28
+ folders: jFolderList[];
29
+ documents: jArticleView[];
30
+ _attachedFiles?: jFileLittle[];
31
+ };
@@ -125,6 +125,7 @@ export declare const Primary: Story<{
125
125
  mounted?: boolean | undefined;
126
126
  hover?: boolean | undefined;
127
127
  empty?: boolean | undefined;
128
+ locked?: boolean | undefined;
128
129
  }, ...args_1: unknown[]) => void;
129
130
  width?: number | undefined;
130
131
  isComponentVisible?: boolean | undefined;
@@ -1,6 +1,18 @@
1
1
  import React from 'react';
2
- import { WidgetDatasourceTableContent, WidgetEditorActions, WidgetEditorErrorActions } from 'jamespot-user-api';
3
- export declare const JRCWidgetDatasourceTableEditor: ({ uri, limit, tableHeadColor, tableHeadTextColor, tableHeadIconColor, tableRowColor, tableRowTextColor, tableColumnsData, tableBorderRadius, tableSizedColumns, tableSizedColumnsWidth, editorAppDependencies, onChange, onSave, onStateChange, onError, }: {
2
+ import { JApplicationApi, JDatasourceApi, JFilebankApi, Network, WidgetDatasourceTableContent, WidgetEditorActions, WidgetEditorErrorActions } from 'jamespot-user-api';
3
+ import { EditorBaseContext, Handlers, HookIsActive } from '../context/provider';
4
+ export type WidgetDatasourceHandlers = Handlers & {
5
+ jamespot: {
6
+ datasource: Omit<JDatasourceApi, 'jApi' | 'network'>;
7
+ network: Pick<Network, 'token' | 'postFile'>;
8
+ application: Pick<JApplicationApi, 'get' | 'list'>;
9
+ filebank: JFilebankApi;
10
+ };
11
+ };
12
+ export type WidgetDatasourceContext = EditorBaseContext<WidgetDatasourceTableContent> & {
13
+ handlers: WidgetDatasourceHandlers;
14
+ };
15
+ export declare const JRCWidgetDatasourceTableEditor: ({ uri, limit, tableHeadColor, tableHeadTextColor, tableHeadIconColor, tableRowColor, tableRowTextColor, tableColumnsData, tableBorderRadius, tableSizedColumns, tableSizedColumnsWidth, hook, handlers, onChange, onSave, onStateChange, onError, }: {
4
16
  uri?: string | undefined;
5
17
  limit?: number | boolean | undefined;
6
18
  tableColumnsData?: {
@@ -20,9 +32,10 @@ export declare const JRCWidgetDatasourceTableEditor: ({ uri, limit, tableHeadCol
20
32
  tableSizedColumns?: boolean | undefined;
21
33
  tableSizedColumnsWidth?: number | undefined;
22
34
  } & {
23
- editorAppDependencies: {
24
- useStudio: boolean;
25
- useFileBank: boolean;
35
+ handlers: WidgetDatasourceHandlers;
36
+ } & {
37
+ hook: {
38
+ isActive: HookIsActive;
26
39
  };
27
40
  } & WidgetEditorActions<{
28
41
  uri?: string | undefined;
@@ -6,7 +6,12 @@ export declare const CSSItemIcon: import("styled-components").StyledComponent<"d
6
6
  backgroundColor: string;
7
7
  }, never>;
8
8
  export declare const CSSListBorderBottom: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
9
+ export declare const CSSInlineInput: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
10
+ export declare const CSSFlexInput: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
9
11
  export declare const CSSListItem: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
10
12
  isActive?: boolean | undefined;
11
13
  }, never>;
12
14
  export declare const CSSAlertMessage: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
15
+ export declare const CSSDisabled: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
16
+ disabled: boolean;
17
+ }, never>;
@@ -1,3 +1,59 @@
1
1
  import React from 'react';
2
- import { WidgetEditorActions, WidgetEditorErrorActions, WidgetExcelDatasourceTableContent } from 'jamespot-user-api';
3
- export declare const JRCWidgetExcelDatasourceTableEditor: ({ uri, limit, tableHeadColor, tableHeadTextColor, tableHeadIconColor, tableRowColor, tableRowTextColor, tableColumnsData, tableSizedColumns, tableSizedColumnsWidth, onChange, onSave, onStateChange, onError, }: WidgetExcelDatasourceTableContent & WidgetEditorActions<WidgetExcelDatasourceTableContent> & WidgetEditorErrorActions) => React.JSX.Element;
2
+ import { JDatasourceApi, JFilebankApi, JWedocApi, Network, WidgetEditorActions, WidgetEditorErrorActions, WidgetExcelDatasourceTableContent } from 'jamespot-user-api';
3
+ import { EditorBaseContext, Handlers, HookIsActive } from '../context/provider';
4
+ export type WidgetExcelDatasourceHandlers = Handlers & {
5
+ jamespot: {
6
+ datasource: Omit<JDatasourceApi, 'jApi' | 'network'>;
7
+ network: Pick<Network, 'token' | 'postFile' | 'getUrl'>;
8
+ filebank: Pick<JFilebankApi, 'getBanks' | 'getFolders' | 'getDocuments'>;
9
+ wedoc: Pick<JWedocApi, 'getFiles'>;
10
+ };
11
+ };
12
+ export type WidgetExcelDatasourceContext = EditorBaseContext<WidgetExcelDatasourceTableContent> & {
13
+ handlers: WidgetExcelDatasourceHandlers;
14
+ };
15
+ export declare const JRCWidgetExcelDatasourceTableEditor: ({ uri, limit, tableHeadColor, tableHeadTextColor, tableHeadIconColor, tableRowColor, tableRowTextColor, tableColumnsData, tableSizedColumns, tableSizedColumnsWidth, tableBorderRadius, hook, handlers, onChange, onSave, onStateChange, onError, }: {
16
+ uri?: string | undefined;
17
+ limit?: number | boolean | undefined;
18
+ tableColumnsData?: {
19
+ name?: string | undefined;
20
+ label?: string | undefined;
21
+ isVisible?: boolean | undefined;
22
+ textEllipsis?: boolean | undefined;
23
+ dateFormat?: "time" | "date" | "date-time" | "date-time-sec" | "time-sec" | undefined;
24
+ numberFormat?: "fr-FR" | "en-EN" | "filesize" | undefined;
25
+ }[] | undefined;
26
+ tableHeadColor?: string | undefined;
27
+ tableHeadTextColor?: string | undefined;
28
+ tableHeadIconColor?: string | undefined;
29
+ tableRowColor?: string | undefined;
30
+ tableRowTextColor?: string | undefined;
31
+ tableBorderRadius?: number | undefined;
32
+ tableSizedColumns?: boolean | undefined;
33
+ tableSizedColumnsWidth?: number | undefined;
34
+ } & {
35
+ handlers: WidgetExcelDatasourceHandlers;
36
+ } & {
37
+ hook: {
38
+ isActive: HookIsActive;
39
+ };
40
+ } & WidgetEditorActions<{
41
+ uri?: string | undefined;
42
+ limit?: number | boolean | undefined;
43
+ tableColumnsData?: {
44
+ name?: string | undefined;
45
+ label?: string | undefined;
46
+ isVisible?: boolean | undefined;
47
+ textEllipsis?: boolean | undefined;
48
+ dateFormat?: "time" | "date" | "date-time" | "date-time-sec" | "time-sec" | undefined;
49
+ numberFormat?: "fr-FR" | "en-EN" | "filesize" | undefined;
50
+ }[] | undefined;
51
+ tableHeadColor?: string | undefined;
52
+ tableHeadTextColor?: string | undefined;
53
+ tableHeadIconColor?: string | undefined;
54
+ tableRowColor?: string | undefined;
55
+ tableRowTextColor?: string | undefined;
56
+ tableBorderRadius?: number | undefined;
57
+ tableSizedColumns?: boolean | undefined;
58
+ tableSizedColumnsWidth?: number | undefined;
59
+ }> & WidgetEditorErrorActions) => React.JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { WidgetDatasourceValues, WidgetTableColumn, WidgetTableContent } from 'jamespot-user-api';
2
+ import { WidgetDatasourceValues, WidgetTableColumn, WidgetTableColumnTypes, WidgetTableContent } from 'jamespot-user-api';
3
3
  export type SortValues = 'ascending' | 'descending';
4
- export declare const sort: (data: Record<string, WidgetDatasourceValues>[], sortBy: SortValues, name: string) => Record<string, WidgetDatasourceValues>[];
4
+ export declare const sort: (data: Record<string, WidgetDatasourceValues>[], sortBy: SortValues, name: string, colType: WidgetTableColumnTypes) => Record<string, WidgetDatasourceValues>[];
5
5
  export declare function isASortableProperty(data: Record<string, WidgetDatasourceValues>[], name: string): boolean | "" | 0;
6
6
  export type JRCWidgetTableProps = WidgetTableContent & {
7
7
  columns: WidgetTableColumn[];
@@ -1,4 +1,31 @@
1
1
  import { Meta, Story } from '@storybook/react';
2
+ import { WidgetTableColumn } from 'jamespot-user-api';
2
3
  declare const _default: Meta<import("@storybook/react").Args>;
3
4
  export default _default;
4
- export declare const Primary: Story<import("@storybook/react").Args>;
5
+ export declare const getVisibleColumns: (tableColumnsData: {
6
+ name?: string | undefined;
7
+ label?: string | undefined;
8
+ isVisible?: boolean | undefined;
9
+ textEllipsis?: boolean | undefined;
10
+ dateFormat?: "time" | "date" | "date-time" | "date-time-sec" | "time-sec" | undefined;
11
+ numberFormat?: "fr-FR" | "en-EN" | "filesize" | undefined;
12
+ }[], columns: WidgetTableColumn[]) => {
13
+ type: "number" | "select" | "title" | "text" | "url" | "email" | "date" | "file" | "uri" | "datetime" | "transient";
14
+ name: string;
15
+ label: string;
16
+ widget: {} | {
17
+ type: "text";
18
+ } | {
19
+ options: {
20
+ value: string;
21
+ label: string;
22
+ }[];
23
+ type: "select";
24
+ } | {
25
+ type: "date";
26
+ };
27
+ sortable?: boolean | undefined;
28
+ }[];
29
+ export declare const WidgetTable: Story<import("@storybook/react").Args>;
30
+ export declare const WidgetDatasourceTableStudio: Story<import("@storybook/react").Args>;
31
+ export declare const WidgetExcelDatasourceTable: Story<import("@storybook/react").Args>;
@@ -13,7 +13,8 @@ export declare const CSSTableTr: import("styled-components").StyledComponent<"tr
13
13
  background: string;
14
14
  color: string;
15
15
  }, never>;
16
- export declare const CSSTableOverlay: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
16
+ export declare const CSSTableOverlay: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
17
+ export declare const CSSTableRadius: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
17
18
  borderRadius: number;
18
19
  }, never>;
19
20
  export declare const CSSTableWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { WidgetDatasourceTableContent, WidgetEditorActions } from 'jamespot-user-api';
3
+ export declare const JRCWidgetTableSharedEditor: ({ limit, tableHeadColor, tableHeadTextColor, tableHeadIconColor, tableRowColor, tableRowTextColor, tableBorderRadius, tableSizedColumns, tableSizedColumnsWidth, onChange, }: WidgetDatasourceTableContent & Pick<WidgetEditorActions<WidgetDatasourceTableContent>, 'onChange'>) => React.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { WidgetDatasourceValues, WidgetTableColumn, WidgetTableColumnTypes, WidgetTableColumnsData } from 'jamespot-user-api';
3
- export declare const JRCWidgetTableTdRenderer: ({ value, name, type, backgroundColor, tableColumnsData, }: {
3
+ export declare const JRCWidgetTableTdRenderer: ({ value, name, type, backgroundColor, tableColumnsData, url, }: {
4
4
  col: WidgetTableColumn;
5
5
  type: WidgetTableColumnTypes;
6
6
  name: string;
@@ -14,4 +14,5 @@ export declare const JRCWidgetTableTdRenderer: ({ value, name, type, backgroundC
14
14
  }[];
15
15
  backgroundColor: string;
16
16
  value: WidgetDatasourceValues;
17
+ url?: string | undefined;
17
18
  }) => React.JSX.Element;