gd-sprest-bs
Version:
SharePoint JavaScript, TypeScript and Web Components designed using the Bootstrap framework.
221 lines (173 loc) • 7.7 kB
TypeScript
import { IFormControlProps } from "gd-bs/src/components/form/controlTypes";
import { Helper, Types } from "gd-sprest";
import { IWebPart, IWebPartInfo, IWebPartProps, IWebPartCfg, IWebPartEditForm, ISPFxWebPart, ISPFxWebPartCfg, ISPFxWebPartProps } from "../base/types";
import { IListFormDisplay, IListFormDisplayProps, IListFormEdit, IListFormEditProps } from "../../components/listForm/types";
/**
* ### List WebPart
*
* The list webpart should be used when targeting a list as a datasource.
*
* ```ts
* import { WebParts } from "gd-sprest-bs";
*
* // Create the webpart
* WebParts.WebPart({
* elementId: "my-wpList",
* cfgElementId: "my-wpList-cfg",
* onRenderItems: (wpInfo, items) => {
* // Render the display element
* wpInfo.el.innerHTML = [
* '<h1>List: ' + wpInfo.ListName + '</h1>',
* '<h5>List Items: ' + items.length + '</h5>'
* ].join('\n');
* }
* });
* ```
*/
export const WPList: (props: IWPListProps) => IWPList;
/**
* List WebPart Edit Form
*/
export const WPListEditForm: (props: IWPListEditForm) => IWPListEditForm;
/**
* List WebPart
*/
export interface IWPList<IListCfg = IWPListCfg, IListInfo = IWPListInfo> extends IWebPart<IListCfg, IListInfo> { }
/**
* List WebPart Information
*/
export interface IWPListInfo<IListCfg = IWPListCfg> extends IWebPartInfo<IListCfg> { }
/**
* List WebPart Properties
*/
export interface IWPListProps<IListInfo = IWPListInfo, IListEditForm = IWPListEditForm> extends IWebPartProps<IListInfo, IListEditForm> {
/** The caml query. */
camlQuery?: string;
/** The odata query. */
odataQuery?: Types.IODataQuery;
/** The executing caml query event. */
onExecutingCAMLQuery?: (wpInfo: IListInfo, caml: string) => string;
/** The executing odata query event. */
onExecutingODATAQuery?: (wpInfo: IListInfo, odata: Types.IODataQuery) => Types.IODataQuery;
/** The on render items event. */
onRenderItems?: (wpInfo: IListInfo, items: Array<Types.SP.IListItemQuery | Types.SP.ListItem>) => void;
}
/**
* List WebPart Configuration
*/
export interface IWPListCfg extends IWebPartCfg {
/** The list name */
ListName?: string;
/** The relative web url */
WebUrl?: string;
}
/**
* List WebPart Edit Form
*/
export interface IWPListEditForm<IListCfg = IWPListCfg, IListInfo = IWPListInfo> extends IWebPartEditForm<IListCfg, IListInfo> {
/** The odata list query. */
listQuery?: Types.IODataQuery;
/** The list changed event. */
onListChanged?: (wpInfo: IListInfo, list?: Types.SP.IListQuery | Types.SP.List) => Array<IFormControlProps> | PromiseLike<Array<IFormControlProps>> | void;
/** The lists loaded event. */
onListsLoaded?: (wpInfo: IListInfo, lists?: Array<Types.SP.IListQuery | Types.SP.List>) => Array<Types.SP.IListQuery | Types.SP.List>;
/** The render form event. */
onRenderForm?: (wpInfo: IListInfo, list?: Types.SP.IListQuery | Types.SP.List) => Array<IFormControlProps> | PromiseLike<Array<IFormControlProps>> | void;
}
/**
* SPFx List WebPart
*/
export const SPFxListWebPart: (props: ISPFxListWebPartProps) => ISPFxListWebPart;
/**
* SPFx List WebPart
*/
export interface ISPFxListWebPart extends ISPFxWebPart {
/** The webpart configuration object. */
Configuration: ISPFxListWebPartCfg;
}
/**
* SPFx List WebPart Configuration
*/
export interface ISPFxListWebPartCfg extends ISPFxWebPartCfg {
/** The list id */
ListId?: string;
/** The list name */
ListName?: string;
/** The relative web url */
WebUrl?: string;
}
/**
* SPFx List WebPart Properties
*/
export interface ISPFxListWebPartProps extends ISPFxWebPartProps {
/** The odata list query. */
listQuery?: Types.IODataQuery;
/** The event called prior to saving the webpart configuration. */
onConfigSaving?: (wpCfg: ISPFxListWebPartCfg) => ISPFxListWebPartCfg;
/** The event called after the webpart configuration is saved. */
onConfigSaved?: (wpCfg?: ISPFxListWebPartCfg) => void;
/** The event called when the modal is being displayed. */
onConfigFormDisplaying?: (wpCfg?: ISPFxListWebPartCfg) => void;
/** The webpart configuration modal footer button properties. */
onConfigFormFooterRendering?: (props: ITooltipGroupProps, wpCfg?: ISPFxListWebPartCfg) => ITooltipGroupProps;
/** The webpart configuration modal form properties. */
onConfigFormRendering?: (props: IFormProps, wpCfg?: ISPFxListWebPartCfg) => IFormProps;
/** The webpart configuration modal form object. */
onConfigFormRendered?: (form: IForm, wpCfg?: ISPFxListWebPartCfg) => void;
/** The event to customize the CAML query used for getting the list items. */
onListItemCAMLQuery?: (wpCfg: ISPFxListWebPartCfg, query: string) => string;
/** The event to customize the ODATA query used for getting the list items. */
onListItemODataQuery?: (wpCfg: ISPFxListWebPartCfg, query: Types.IODataQuery) => Types.IODataQuery;
/** The list changed event. */
onListsChanged?: (wpInfo: IListInfo, list?: Types.SP.IListQuery | Types.SP.List) => Array<IFormControlProps> | PromiseLike<Array<IFormControlProps>> | void;
/** The lists loaded event. */
onListsLoaded?: (wpInfo: IListInfo, lists?: Array<Types.SP.IListQuery | Types.SP.List>) => Array<Types.SP.IListQuery | Types.SP.List>;
/** The render event for the webpart. */
render?: (el?: HTMLElement, cfg?: ISPFxListWebPartCfg) => void;
/** The render event for the webpart when the page is in edit mode. */
renderEdit?: (el?: HTMLElement, cfg?: ISPFxListWebPartCfg) => void;
/** The render event for the webpart. */
renderItems?: (el?: HTMLElement, cfg?: ISPFxListWebPartCfg, items?: Array<Types.SP.IListItemQuery | Types.SP.ListItem>) => void;
}
/**
* SPFx List Form WebPart
*/
export const SPFxListFormWebPart: (props: ISPFxListFormWebPartProps) => ISPFxListFormWebPart;
/**
* SPFx List Form WebPart
*/
export interface ISPFxListFormWebPart extends ISPFxListWebPart {
/** The display form. */
DisplayForm?: IListFormDisplay;
/** The edit/new form. */
EditForm?: IListFormEdit;
}
/**
* SPFx List WebPart Configuration
*/
export interface ISPFxListFormWebPartCfg extends ISPFxListWebPartCfg { }
/**
* SPFx List Form WebPart Properties
*/
export interface ISPFxListFormWebPartProps extends ISPFxListWebPartProps {
/** The form component id to use for the edit configuration webpart. */
componentId?: string;
/** The form component properties to use for the edit configuration webpart. */
componentProps?: string;
/** The list information properties. */
onGetListInfo?: (props: Helper.IListFormProps) => Helper.IListFormProps;
/** The display form rendering event. */
onDisplayFormRendering?: (props: IListFormDisplayProps) => IListFormDisplayProps;
/** The display form rendered event. */
onDisplayFormRendered?: (form?: IListDisplayForm) => void;
/** The footer rendering. */
onEditFooterRendering?: (props: ITooltipGroupProps) => ITooltipGroupProps;
/** The edit form rendering event. */
onEditFormRendering?: (props: IListFormEditProps) => IListFormEditProps;
/** The edit form rendered event. */
onEditFormRendered?: (form?: IListEditForm) => void;
/** The saving event. */
onSaving?: (values: any) => any;
/** The saved event */
onSaved?: (item: any) => void;
}