@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
163 lines • 6.51 kB
TypeScript
/**
* 2024-09-07: Migrated from the same folder in fps-library-v2/banner/features/FPSWebPartClass/...
*/
import { ISitePreConfigProps } from '../../common/PropPaneHelp/preconfig/IPreConfig';
import { IRepoLinks } from '../../components/atoms/Links/IRepoLinks';
import { ILoadPerformance, ILoadPerformanceOps } from '../../components/molecules/Performance/IPerformance';
import { IFPSUser } from '../../components/atoms/Users/IUserInterfaces';
import { IFPSCert } from './IFPSCert';
import { IFPSEnviro } from '../features/FPSDOM/IFPSEnviro';
import { DisplayMode } from '../../types/@msft/1.15.2/displayMode';
import { WebPartContextCopy_15_2 } from '../../types/@msft/1.15.2/WebPartContext';
import { IMinWPBannerProps } from '../interfaces/MinWP/IMinWPBannerProps';
import { IFullBackgroundMode } from '../../components/molecules/FullPageBackGround/interfaces/IFPSPageBGWPProps';
import { IFieldPanelDesignMode } from '../../components/molecules/FieldPanel/interfaces/IMinWPFieldPanelProps';
import { IFPSListItemPickerWPClass, IFPSListItemPickerWPClass2 } from '../components/ItemPicker/interfaces/IFPSListItemPickerWPClass';
import { IFpsSpHttpServiceMIN } from '../../components/molecules/SpHttp/Sp/IFpsSpHttpServiceMIN';
import { IFPSGeneric_JSX_Element } from '../../types/react/IFPSJSX_Element';
import { ISourceRowRender } from '../../components/molecules/SourcePage/ISourceRowRender';
export type IFieldPanelMode = 'Auto' | 'Manual' | 'Disabled';
export type ICallbackAddParamToUrl = (newParamStr: string, reRender: boolean, newTab: boolean) => void;
export interface IFPSSiteThemes {
fpsMainErrBlock: string;
fpsSiteThemeDark: string;
fpsSiteThemeLight: string;
fpsSiteThemePrimary: string;
}
/**
*
* WARNING: THIS SHOULD MATCH THE CLASS IN FPSBaseClass
* It is intended to mirror the class and is used for type checking in various functions including:
* - BuildBannerProps
* - runOnPropChange
* - runOnSuperOnInit
* - runWebPartRender
*
*/
export interface IThisFPSWebPartClass extends IFPSListItemPickerWPClass, IFPSListItemPickerWPClass2, ITenantHelpPageLinks {
_isDarkTheme: boolean;
/**
* Added for setting property on class if neccessary - add these to base class functions
protected onPropertyPaneConfigurationStart(): void { this._isPropertyPaneOpenForThisWebPart = true; }
protected onPropertyPaneConfigurationComplete(): void { this._isPropertyPaneOpenForThisWebPart = false; }
*/
_isPropertyPaneOpenForThisWebPart?: boolean;
/**
* These are intended to be set or adjusted right at the beginning of the main webpart class
*/
_repoLink: IRepoLinks;
_exportIgnorePropsWP: string[];
_importBlockPropsWP: string[];
_trickyApp: string;
_trickyEmailsWP: string[];
_panelVersion: string;
_analyticsListX: string;
_analyticsWebX: string;
_analyticsOptionsX: string[];
_wpTDLeft: string[];
_wpTDRight: string[];
_wpFilterProps: string[];
_fpsSpService: IFpsSpHttpServiceMIN;
/**
* These are preset but likely to be adjusted in each webpart as needed
*/
_allowPinMe: boolean;
/**
* These are preset and NOT Likely to need adjustments
*/
_forceBanner: boolean;
_modifyBannerTitle: boolean;
_modifyBannerStyle: boolean;
_keysToShow: ILoadPerformanceOps[];
_allowQuickLaunchHide: boolean;
_allowSocialBarHide: boolean;
_allowToolBarHide: boolean;
_allowAllSectWidth: boolean;
_allowShowSearch: boolean;
_allowBeAUser: boolean;
_allowFeedback: boolean;
_allowPandoramic: boolean;
_allowSiteThemeChoice: boolean;
_allowEasyPages: boolean;
_allowFullPageBG: IFullBackgroundMode;
_allowFieldPanel: IFieldPanelMode;
_allowPropsEasyMode: boolean;
_expandPropsEasyModeCount: number;
_wpInfoGroupExpanded: boolean;
_lastPropPaneChange: string;
_FieldPanelDesignMode: IFieldPanelDesignMode;
_FieldPanelWebProp: 'webUrl' | string;
_FieldPanelListProp: 'listTitle' | string;
_doHeadingStyles: boolean;
_imageWPInfo: string;
_imagePlace: string;
/**
* These are updated later in the code
*/
_performance: ILoadPerformance;
_sitePresets: ISitePreConfigProps;
_FPSUser: IFPSUser;
_FPSEnviro: IFPSEnviro;
_IFPSCert: IFPSCert[];
/**
* All themes object...
* import stylesFPS from './CoreFPS/fpsTheme.module.scss';
*
* add before super onInit
* this._fpsSiteThemes.fpsTheme;
*/
_fpsSiteThemes: IFPSSiteThemes;
_fpsSiteThemeDark: string;
_fpsSiteThemeLight: string;
_fpsSiteThemePrimary: string;
/**
* These are preset and should be managed by the code... do not change in main webpart class
*/
_wpInstanceID: string;
_FPSId: string;
_exitPropPaneChanged: boolean;
_importErrorMessage: string;
_trickyEmailsAll: string[];
_isSPA: boolean;
_urlParameters: any;
_beAReader: boolean;
_hardExpire: boolean;
/**
* These are functions used in the class
*/
_beAUserFunction(): void;
_saveFieldPanelViewsFunction(): void;
_saveFieldPanelCommandsFunction(): void;
_addParamToUrl: ICallbackAddParamToUrl;
_refreshBGStyles(): void;
_resetEasyIcons(): void;
_forceMainRender(): void;
/**
* Added as option rowRenders for EasyAnalytics so that entire page/ecosystem can easily be reused and customized (aka SP-API-Tester use)
* @param props
* @returns
*/
_renderItemsRow: ((props: ISourceRowRender) => IFPSGeneric_JSX_Element) | null;
_renderBarsRow: ((props: ISourceRowRender) => IFPSGeneric_JSX_Element) | null;
/**
* These are here JUST FOR INTERFACE but come from SharePoint class
*/
displayMode: DisplayMode;
context: WebPartContextCopy_15_2;
domElement: HTMLElement;
properties: IMinWPBannerProps;
onPropertyPaneConfigurationStart: any;
onPropertyPaneFieldChanged: any;
}
export interface ITenantHelpPageLinks {
_tenantHelpUrl: string;
_tenanatFirst5: string;
_tenantGetStartedUrl: string;
_tenantPolicies: string;
_youtubeChannel: string;
_youtubeFirst5: string;
_youtubeHelp: string;
_youtubeGetStarted: string;
_preConfigClassTest: string;
}
//# sourceMappingURL=IThisFPSWebPartClass1152.d.ts.map