@mikezimm/npmfunctions
Version:
Functions used in my SPFx webparts
300 lines • 12.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BannerPropButtonThemes = exports.FPSBanner3ThemeGroup = exports.FPSBanner3Group = exports.FPSBanner3NavGroup = exports.BannerPropNavButtonFields = exports.FPSBanner4BasicGroup = exports.FPSBanner3BasicGroup = exports.BannerPropPaneButtonBasics = exports.FPSOptionsGroupBasic = exports.FPSOptionsGroupAdvanced = void 0;
var sp_property_pane_1 = require("@microsoft/sp-property-pane");
var defaults_1 = require("../../HelpPanelOnNPM/onNpm/defaults");
var Audiences_1 = require("./Audiences");
// import { IMinWPBannerProps } from '../../HelpPanelOnNPM/onNpm/BannerInterface';
// { FPSBanner3Group, FPSBanner3BasicGroup,FPSBanner3NavGroup, FPSBanner3ThemeGroup }
/**
* This is the legacy options which were more complex with more options
* @param showSearch
* @param pageStyle
* @param quickLaunchHide
* @param containerMaxWidth
*/
function FPSOptionsGroupAdvanced(pageStyle, containerMaxWidth) {
var fields = [];
if (pageStyle === true) {
fields.push((0, sp_property_pane_1.PropertyPaneTextField)('fpsPageStyle', {
// disabled: webPartProps.ignoreList === true ? true : false,
label: 'Custom page style settings', description: 'See wiki for more information.', multiline: true,
}));
}
if (containerMaxWidth === true) {
fields.push((0, sp_property_pane_1.PropertyPaneTextField)('fpsContainerMaxWidth', {
// disabled: webPartProps.ignoreList === true ? true : false,
label: 'Webpart container Max Width', description: 'ie: 100% or 2400px',
}));
}
var optionsGroup = { groupName: 'FPS options - Advanced',
isCollapsed: true,
groupFields: fields
};
return optionsGroup;
}
exports.FPSOptionsGroupAdvanced = FPSOptionsGroupAdvanced;
/**
* This is the second version which is more simple (toggles and sliders)
* @param showSearch
* @param pageStyle
* @param quickLaunchHide
* @param containerMaxWidth
*/
function FPSOptionsGroupBasic(showSearch, quickLaunchHide, pageHeaderHide, allSectWidth, allSectionMaxWidthEnable, allSectMargin, allSectionMarginEnable, toolBarHide) {
var fields = [];
if (showSearch === true) {
fields.push((0, sp_property_pane_1.PropertyPaneToggle)('searchShow', {
label: 'Show search bar by default', offText: 'Hide', onText: 'Show',
}));
}
if (quickLaunchHide === true) {
fields.push((0, sp_property_pane_1.PropertyPaneToggle)('quickLaunchHide', {
label: 'Hide quick launch - may be seen briefly', offText: 'Ignore', onText: 'Hidden',
}));
}
if (pageHeaderHide === true) {
fields.push((0, sp_property_pane_1.PropertyPaneToggle)('pageHeaderHide', {
label: 'Hide Page Header - may be seen briefly',
offText: 'Ignore',
onText: 'Hidden',
}));
}
if (allSectWidth !== 'skip') {
fields.push((0, sp_property_pane_1.PropertyPaneToggle)('allSectionMaxWidthEnable', {
label: 'All Sections Max Width',
offText: 'Off',
onText: 'On',
}));
fields.push((0, sp_property_pane_1.PropertyPaneSlider)('allSectionMaxWidth', {
label: 'Max width of all sections',
disabled: allSectionMaxWidthEnable === true ? false : true,
min: 1200,
max: 3200,
step: 100,
}));
}
if (allSectMargin !== 'skip') {
fields.push((0, sp_property_pane_1.PropertyPaneToggle)('allSectionMarginEnable', {
label: 'All Sections Margin',
offText: 'Off',
onText: 'On',
}));
fields.push((0, sp_property_pane_1.PropertyPaneSlider)('allSectionMargin', {
label: 'Top and Bottom Margin',
disabled: allSectionMarginEnable === true ? false : true,
min: 0,
max: 100,
step: 2,
}));
}
if (toolBarHide === true) {
fields.push((0, sp_property_pane_1.PropertyPaneToggle)('toolBarHide', {
label: 'Hide Toolbar - while viewing',
offText: 'Ignore',
onText: 'Hidden',
}));
}
var optionsGroup = { groupName: 'FPS Page Layout - Basic',
isCollapsed: true,
groupFields: fields
};
return optionsGroup;
}
exports.FPSOptionsGroupBasic = FPSOptionsGroupBasic;
/**
* BannerPropPaneButtonBasics - Builds Basic FIELDS for Banner
* @param forceBanner
* @param modifyBannerTitle
* @param showBanner
* @param infoElementText
* @returns
*/
function BannerPropPaneButtonBasics(forceBanner, modifyBannerTitle, showBanner, infoElementText, feedback, enableBeAUser) {
var fields = [];
fields.push((0, sp_property_pane_1.PropertyPaneToggle)('showBanner', {
label: 'Show Banner',
disabled: forceBanner !== false ? true : false,
}));
fields.push((0, sp_property_pane_1.PropertyPaneTextField)('bannerTitle', {
label: 'Webpart Title',
description: '',
disabled: modifyBannerTitle !== true || showBanner !== true ? true : false,
}));
fields.push((0, sp_property_pane_1.PropertyPaneDropdown)('infoElementChoice', {
label: 'More Info text-button',
options: defaults_1.bannerInfoEleChoices,
disabled: showBanner !== true ? true : false,
}));
fields.push((0, sp_property_pane_1.PropertyPaneTextField)('infoElementText', {
label: 'More Information text on right of banner',
description: 'Keep simple to one word if possible.',
disabled: infoElementText !== true || showBanner !== true ? true : false,
}));
//feedbackEmail: string;
fields.push((0, sp_property_pane_1.PropertyPaneTextField)('feedbackEmail', {
label: 'Feedback email',
description: 'Adds Feedback icon in the banner.',
disabled: feedback !== true || showBanner !== true ? true : false,
}));
if (enableBeAUser === true) {
fields.push((0, sp_property_pane_1.PropertyPaneDropdown)('beAUserAudience', {
label: 'Audience for Be A User mode',
options: Audiences_1.PageEditorAudienceChoices,
disabled: showBanner !== true ? true : false,
}));
}
return fields;
}
exports.BannerPropPaneButtonBasics = BannerPropPaneButtonBasics;
/**
* FPSBanner3BasicGroup builds FPS Banner Basics Prop Pane Group: showBanner, bannerTitle, infoElementChoice, infoElementText,
* @param forceBanner
* @param modifyBannerTitle
* @param showBanner
* @param infoElementText
* @returns
*/
function FPSBanner3BasicGroup(forceBanner, modifyBannerTitle, showBanner, infoElementText, feedback) {
var fields = BannerPropPaneButtonBasics(forceBanner, modifyBannerTitle, showBanner, infoElementText, feedback, false);
var bannerGroup = { groupName: 'FPS Banner - Basics',
isCollapsed: true,
groupFields: fields
};
return bannerGroup;
}
exports.FPSBanner3BasicGroup = FPSBanner3BasicGroup;
/**
* FPSBanner3BasicGroup builds FPS Banner Basics Prop Pane Group: showBanner, bannerTitle, infoElementChoice, infoElementText,
* @param forceBanner
* @param modifyBannerTitle
* @param showBanner
* @param infoElementText
* @returns
*/
function FPSBanner4BasicGroup(forceBanner, modifyBannerTitle, showBanner, infoElementText, feedback, enableBeAUser) {
var fields = BannerPropPaneButtonBasics(forceBanner, modifyBannerTitle, showBanner, infoElementText, feedback, enableBeAUser);
var bannerGroup = { groupName: 'FPS Banner - Basics',
isCollapsed: true,
groupFields: fields
};
return bannerGroup;
}
exports.FPSBanner4BasicGroup = FPSBanner4BasicGroup;
/**
* BannerPropNavButtonFields - Builds Fields for FPS Banner Nav Group
*/
exports.BannerPropNavButtonFields = [
(0, sp_property_pane_1.PropertyPaneToggle)('showGoToHome', {
label: 'Show Go to Home Page Icon',
}),
(0, sp_property_pane_1.PropertyPaneToggle)('showGoToParent', {
label: 'Show Got to Parent Site Icon',
}),
(0, sp_property_pane_1.PropertyPaneDropdown)('homeParentGearAudience', {
label: 'Gear, Home, Parent audience',
options: Audiences_1.EveryoneAudienceChoices,
}),
];
/**
* FPSBanner3NavGroup - Builds Prop Pane group for Nav Buttons: showGoToHome, showGoToParent, homeParentGearAudience
* @returns
*/
function FPSBanner3NavGroup() {
var fields = exports.BannerPropNavButtonFields;
var bannerGroup = { groupName: 'FPS Banner - Navigation',
isCollapsed: true,
groupFields: fields
};
return bannerGroup;
}
exports.FPSBanner3NavGroup = FPSBanner3NavGroup;
/**
*
* @param forceBanner
* @param modifyBannerTitle
* @param modifyBannerStyle
* @param showBanner
* @param showAdvanced
* @param showNavigation - Adds Navigate to Home Page and Parent Site
*/
function FPSBanner3Group(forceBanner, modifyBannerTitle, modifyBannerStyle, showBanner, showAdvanced, showNavigation, lockStyles, infoElementText, showFeedBackEmail, includeSiteTheme) {
if (showFeedBackEmail === void 0) { showFeedBackEmail = true; }
if (includeSiteTheme === void 0) { includeSiteTheme = false; }
var fields = [];
//Add basic properties
BannerPropPaneButtonBasics(forceBanner, modifyBannerTitle, showBanner, infoElementText, showFeedBackEmail, false).map(function (field) {
fields.push(field);
});
//Add button properties
if (showNavigation === true) {
exports.BannerPropNavButtonFields.map(function (field) {
fields.push(field);
});
}
fields.push((0, sp_property_pane_1.PropertyPaneHorizontalRule)());
//Add Theme properties
BannerPropButtonThemes(modifyBannerStyle, showBanner, lockStyles, includeSiteTheme).map(function (field) {
fields.push(field);
});
var bannerGroup = { groupName: 'Banner',
isCollapsed: true,
groupFields: fields
};
return bannerGroup;
}
exports.FPSBanner3Group = FPSBanner3Group;
/**
* FPSBanner3ThemeGroup - Builds FPS Banner Theme Group: bannerStyleChoice, bannerStyle, bannerCmdStyle, bannerHoverEffect
* @param modifyBannerStyle
* @param showBanner
* @param lockStyles
* @returns
*/
function FPSBanner3ThemeGroup(modifyBannerStyle, showBanner, lockStyles, includeSiteTheme) {
var fields = BannerPropButtonThemes(modifyBannerStyle, showBanner, lockStyles, includeSiteTheme);
var bannerGroup = { groupName: 'FPS Banner - Theme',
isCollapsed: true,
groupFields: fields
};
return bannerGroup;
}
exports.FPSBanner3ThemeGroup = FPSBanner3ThemeGroup;
/**
* Generates prop pane FIELDS for: bannerStyleChoice, bannerStyle, bannerCmdStyle, bannerHoverEffect
* @param modifyBannerStyle
* @param showBanner
* @param lockStyles
* @returns
*/
function BannerPropButtonThemes(modifyBannerStyle, showBanner, lockStyles, includeSiteTheme) {
var fields = [];
fields.push((0, sp_property_pane_1.PropertyPaneDropdown)('bannerStyleChoice', {
label: 'Banner Theme',
options: includeSiteTheme === true ? defaults_1.bannerThemeChoicesWSiteTheme : defaults_1.bannerThemeChoices,
disabled: modifyBannerStyle !== true || showBanner !== true ? true : false,
}));
// if ( lockStyles !== true ) {
fields.push((0, sp_property_pane_1.PropertyPaneTextField)('bannerStyle', {
label: 'Style options',
description: 'React.CSSProperties format like: "fontSize":"larger","color":"red"',
disabled: modifyBannerStyle !== true || showBanner !== true || lockStyles === true ? true : false,
multiline: true,
}));
// }
// if ( lockStyles !== true ) {
fields.push((0, sp_property_pane_1.PropertyPaneTextField)('bannerCmdStyle', {
label: 'Button Style options',
description: 'React.CSSProperties format like: "fontSize":"larger","color":"red"',
disabled: modifyBannerStyle !== true || showBanner !== true || lockStyles === true ? true : false,
multiline: true,
}));
// }
fields.push((0, sp_property_pane_1.PropertyPaneToggle)('bannerHoverEffect', {
label: 'Banner Hover Effect',
disabled: modifyBannerStyle !== true || showBanner !== true ? true : false,
}));
return fields;
}
exports.BannerPropButtonThemes = BannerPropButtonThemes;
//# sourceMappingURL=FPSOptionsGroup3.js.map