@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
112 lines (111 loc) • 3.39 kB
TypeScript
/**
* CodeAnalizerComment: Updated 1 imports on 2024-09-21 23:07:24
* Update:: import { IAnyFileItem } to '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IAnyContent;'
*/
/**
* COPIED FROM PIVOT TILES ON 2023-12-09
*/
import { IAnyFileItem } from "../../../components/molecules/AnyContent/IAnyContent";
import { IJsxElement } from "../../../types/react/IFPSJSX_Element";
import { IBasicIconInfo } from "../Icons/stdECStorage";
import { IKnownMeta } from "./IKnownMeta";
export interface IItemWithSharingInfo extends IAnyFileItem {
ItemSharingInfo: IItemSharingInfo;
SharedWithDetails: string;
SharedWithUsers: ISharedWithUser[];
SharedWithUsersId: number[];
GUID: string;
AuthorId: number;
EditorId: number;
odataEditLink: string;
}
export interface IMySharingInfoSet {
items: IItemWithSharingInfo[];
elements: IJsxElement[];
isLoaded: boolean;
errMessage: string;
}
export interface IMySharingInfo {
history: IMySharingInfoSet;
details: IMySharingInfoSet;
}
export interface ISharedWithUser {
Title: string;
Name: string;
Id: number;
'odata.type': string;
'odata.id': string;
}
/**
* This is details of one sharing event: one person sharing with another person
* It should be nexted under the item's IItemSharingInfo which has other item relavant info for later use like FileLeafRef
* Should be nested under an item as an array of events
*/
export interface ISharingEvent extends IBasicIconInfo {
key: string;
keys: string[];
sharedWith: string;
sharedBy: string;
sharedWithShort: string;
sharedByShort: string;
DateTime: string;
TimeMS: number;
LoginName: string;
SharedTime: Date;
FileRef?: string;
FileLeafRef?: string;
FileSystemObjectType: number;
GUID: string;
odataEditLink: string;
ServerRedirectedEmbedUrl?: string;
parentFolder: string;
AuthorId: number;
Created: string;
Modified: string;
EditorId: number;
CheckoutUserId: number;
id: number;
meta: IKnownMeta[];
}
/**
* Typical example of ISharedDetail
*
"i:0#.f|membership|jr@tenant.onmicrosoft.com": {
"DateTime": "/Date(1675650083579)/",
"LoginName": "user1.tenant@mcclickster.onmicrosoft.com"
},
*/
export interface ISharedDetail {
[key: string]: {
DateTime: string;
LoginName: string;
};
}
/**
* IItemSharingInfo is intended to be a sub-object on an item that has sharing.
* It is used to then contain all the sharing details in a usable object
*/
export interface IItemSharingInfo {
SharedDetails: ISharedDetail[];
SharedEvents: ISharingEvent[];
SharedWithUsers: ISharedWithUser[];
SharedWithUsersId: number[];
Title: string;
Id: number;
ID: number;
GUID: string;
odataEditLink: string;
HasUniqueRoleAssignments: boolean;
FileRef: string;
FileLeafRef: string;
FileSystemObjectType: number;
ServerRedirectedEmbedUrl: string;
ContentTypeId: string;
AuthorId: number;
Created: string;
Modified: string;
EditorId: number;
CheckoutUserId: number;
}
export declare function createEmptyItemSharingInfo(item: IItemWithSharingInfo): IItemSharingInfo;
//# sourceMappingURL=IItemWithSharingInfo.d.ts.map