UNPKG

gd-sprest-bs

Version:

SharePoint JavaScript, TypeScript and Web Components designed using the Bootstrap framework.

58 lines (54 loc) 2.71 kB
import { Helper } from "gd-sprest"; import { WebPart } from "../base/wp"; import { IWPTaxonomyInfo, IWPTaxonomyProps } from "./types"; import { WPTaxonomyEditForm } from "./wpCfg"; /** * Taxonomy WebPart */ export const WPTaxonomy = (props: IWPTaxonomyProps) => { // Create an instance of the webpart WebPart({ cfgElementId: props.cfgElementId, className: props.className, editForm: WPTaxonomyEditForm(props.editForm || {}), elementId: props.elementId, helpProps: props.helpProps, onPostRender: props.onPostRender, onRenderEdit: props.onRenderEdit, wpClassName: props.wpClassName, onRenderDisplay: (wpInfo: IWPTaxonomyInfo) => { // See if the render term sets event exists if (props.onRenderTermSets && wpInfo.cfg.TermGroupName) { // Load the term group information Helper.Taxonomy.getTermSets(wpInfo.cfg.TermGroupName).then(termSets => { // Call the render event props.onRenderTermSets(wpInfo, termSets); }); } // See if the term group and term set names exist if (wpInfo.cfg.TermGroupName && wpInfo.cfg.TermSetName) { // See if the render term set events exists if (props.onRenderTermSet || props.onRenderTermSetTerms) { // Load the term set information Helper.Taxonomy.getTermSetByGroupName(wpInfo.cfg.TermSetName, wpInfo.cfg.TermGroupName).then(termSet => { // Call the term set render event props.onRenderTermSet ? props.onRenderTermSet(wpInfo, termSet) : null; // See if we are rendering term set terms if (props.onRenderTermSetTerms) { // See if a term set id exists if (wpInfo.cfg.TermSetTermId) { // Load the term set terms let term = Helper.Taxonomy.findById(termSet, wpInfo.cfg.TermSetTermId); // Call the term set terms render event props.onRenderTermSetTerms(wpInfo, term ? Helper.Taxonomy.toArray(term) : []); } else { // Call the term set terms render event props.onRenderTermSetTerms(wpInfo, Helper.Taxonomy.toArray(termSet)); } } }); } } } }); }