@mikezimm/npmfunctions
Version:
Functions used in my SPFx webparts
97 lines • 4.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.applySectionStyle = exports.setSectionStyles = void 0;
var FPSDocument_1 = require("./FPSDocument");
var console_1 = require("./console");
/**
* This minimizes the header on site pages where you do not want the Page Title at the top. originally copied from Pivot Tiles
*
* @param document
* @param minimize
* @param alertError
* @param consoleResult
*/
function setSectionStyles(document, sectionStyles, alertError, consoleResult) {
if (alertError === void 0) { alertError = true; }
if (consoleResult === void 0) { consoleResult = false; }
var fpsWindowProps = (0, FPSDocument_1.createFPSWindowProps)();
var winMaxWidthStyle = fpsWindowProps.sections.maxWidth;
var winMarginTBStyle = fpsWindowProps.sections.marginTB;
//Check if everything was already attempted
var proceed = false;
if (sectionStyles.maxWidth.do === true && winMaxWidthStyle.success === 0) {
proceed = true;
}
else if (sectionStyles.marginTB.do === true && winMarginTBStyle.success === 0) {
proceed = true;
}
if (proceed === false) {
return;
}
var divs = document.querySelectorAll('[data-automation-id="CanvasSection"]');
console.log("divs.length: ", divs.length);
//inspiration from: https://reactgo.com/select-element-data-attribute-js/
var maxWidthStyle = sectionStyles.maxWidth;
var marginTBStyle = sectionStyles.marginTB;
divs.forEach(function (el) {
try {
//This updates section maxWidth: As of 2022-02-08: default = '1256px'
if (maxWidthStyle.do === true) {
fpsWindowProps.sections.maxWidth = applySectionStyle(el.parentNode, maxWidthStyle, winMaxWidthStyle, alertError, consoleResult);
}
//This updates section top and bottom margin: As of 2022-02-08: default = '24px 0'
if (marginTBStyle.do === true) {
fpsWindowProps.sections.marginTB = applySectionStyle(el.childNodes[0], marginTBStyle, winMarginTBStyle, alertError, consoleResult);
}
sectionStyles.summary.success++;
}
catch (e) {
if (alertError === true) {
alert('minimizeHeader: Could not find element with data-automation-id="pageHeader"');
}
console.log('minimizeHeader: Could not find element with data-automation-id="pageHeader"');
sectionStyles.summary.errors++;
fpsWindowProps.sections.summary.errors++;
}
});
(0, console_1.sendFPSWindowConsole)(true, 'COMPLETE', fpsWindowProps);
return { sectionStyles: sectionStyles };
}
exports.setSectionStyles = setSectionStyles;
function applySectionStyle(el, targetStyle, windowStyle, alertError, consoleResult) {
if (alertError === void 0) { alertError = true; }
if (consoleResult === void 0) { consoleResult = false; }
var cssProp = targetStyle.cssProp;
windowStyle.do = true;
//Needed to get instanceId this way to prevent mutation
var thisInstanceId = targetStyle.wpInstanceID + '';
windowStyle.wpInstanceID = thisInstanceId;
windowStyle.history.push(thisInstanceId);
try {
if (el.style) {
if (windowStyle.original === 'tbd') {
windowStyle.original = el.style[cssProp];
}
el.style[cssProp] = targetStyle.value;
}
else {
if (windowStyle.original === 'tbd') {
windowStyle.original = null;
}
el.style = {};
el.style[cssProp] = targetStyle.value;
windowStyle.value = targetStyle.value;
}
windowStyle.success++;
windowStyle.attempted = true;
(0, console_1.sendStandardConsole)(consoleResult, 'SUCCESS', windowStyle);
}
catch (e) {
windowStyle.errors++;
windowStyle.attempted = true;
(0, console_1.sendStandardConsole)(consoleResult, 'FAILURE', windowStyle);
}
return windowStyle;
}
exports.applySectionStyle = applySectionStyle;
//# sourceMappingURL=setAllSectionStyles.js.map