gd-sprest-bs
Version:
SharePoint JavaScript, TypeScript and Web Components designed using the Bootstrap framework.
121 lines (99 loc) • 3.56 kB
TypeScript
import { IDropdownItem } from "gd-bs/src/components/dropdown/types"
import { Helper } from "gd-sprest";
import { IWebPart, IWebPartInfo, IWebPartProps, IWebPartCfg, IWebPartEditForm } from "../base/types";
/**
* ### Taxonomy WebPart
*
* The taxonomy webpart should be used when targeting the term store as a datasource.
*
* ```ts
* import { WebParts } from "gd-sprest-bs";
*
* // Create the webpart
* WebParts.WPTaxonomy({
* elementId: "my-wpTaxonomy",
* cfgElementId: "my-wpTaxonomy-cfg",
* onRenderTermSetTerms: (wpInfo, terms) => {
* // Render the display element
* wpInfo.el.innerHTML = [
* '<h1>Term Set: ' + wpInfo.TermSetName + '</h1>',
* '<h5>Terms: ' + terms.length + '</h5>'
* ].join('\n');
* }
* });
* ```
*/
export const WPTaxonomy: (props: IWPTaxonomyProps) => IWPTaxonomy;
/**
* Taxonomy WebPart Edit Form
*/
export const WPTaxonomyEditForm: (props: IWPTaxonomyEditForm) => IWPTaxonomyEditForm;
/**
* Taxonomy WebPart
*/
export interface IWPTaxonomy extends IWebPart<IWPTaxonomyCfg, IWPTaxonomyInfo> { }
/**
* Taxonomy WebPart Information
*/
export interface IWPTaxonomyInfo extends IWebPartInfo<IWPTaxonomyCfg> { }
/**
* Taxonomy WebPart Properties
*/
export interface IWPTaxonomyProps extends IWebPartProps<IWPTaxonomyInfo, IWPTaxonomyEditForm> {
/** The on render term set event. */
onRenderTermSet?: (wpInfo: IWPTaxonomyInfo, termSet: Helper.ITerm) => void;
/** The on render term sets event. */
onRenderTermSets?: (wpInfo: IWPTaxonomyInfo, termSets: Array<Helper.ITermSetInfo>) => void;
/** The on render term set terms event. */
onRenderTermSetTerms?: (wpInfo: IWPTaxonomyInfo, terms: Array<Helper.ITermInfo>) => void;
}
/**
* Taxonomy WebPart Configuration
*/
export interface IWPTaxonomyCfg extends IWebPartCfg {
/** The term group id. */
TermGroupId?: string;
/** The term group name. */
TermGroupName?: string;
/** The term set id. */
TermSetId?: string;
/** The term set name */
TermSetName?: string;
/** The term set term id. */
TermSetTermId?: string;
/** The term set term name */
TermSetTermName?: string;
}
/**
* Taxonomy WebPart Edit Form
*/
export interface IWPTaxonomyEditForm extends IWebPartEditForm<IWPTaxonomyCfg, IWPTaxonomyInfo> {
/** The term group changed event. */
onTermGroupChanged?: (wpInfo: IWPTaxonomyInfo, termGroupInfo?: ITermGroupInfo) => void;
/** The term group loaded event. */
onTermGroupsLoaded?: (wpInfo: IWPTaxonomyInfo, termGroups: Array<IDropdownItem>) => Array<IDropdownItem>;
/** The term set changed event. */
onTermSetChanged?: (wpInfo: IWPTaxonomyInfo, termSetInfo?: ITermInfo) => void;
/** The term set loaded event. */
onTermSetsLoaded?: (wpInfo: IWPTaxonomyInfo, termSets?: Array<IDropdownItem>) => Array<IDropdownItem>;
/** The term set term changed event. */
onTermSetTermChanged?: (wpInfo: IWPTaxonomyInfo, termInfo?: ITermInfo) => void;
/** The term set terms loaded event. */
onTermSetTermsLoaded?: (wpInfo: IWPTaxonomyInfo, terms?: Array<IDropdownItem>) => Array<IDropdownItem>;
/** Flag to display the term set terms. */
showTermSetTerms?: boolean;
}
/**
* Term Group Info
*/
interface ITermGroupInfo {
id: string;
name: string;
}
/**
* Term Info
*/
interface ITermInfo {
id: string;
name: string;
}