@mikezimm/fps-library-v2
Version:
Library of reusable typescript/javascript functions, interfaces and constants
121 lines (120 loc) • 7.89 kB
JavaScript
/**
* CodeAnalizerComment: Updated 3 imports on 2024-09-21 23:07:24
* Update:: import { ISitePreConfigProps } to '@mikezimm/fps-core-v7/lib/common/PropPaneHelp/preconfig/IPreConfig;'
* Update:: import { IMinLockProps } to '@mikezimm/fps-core-v7/lib/banner/features/LockProps/Interfaces;'
* Update:: import { IMinOverRideProps } to '@mikezimm/fps-core-v7/lib/common/PropPaneHelp/preconfig/Interfaces;'
*/
import { PivotItem } from '@fluentui/react/lib/Pivot';
import * as React from 'react';
/**
* 2022-08-29: Refactored return statement to fix compile warning.
* @param sitePresets : ISitePreConfigProps
* @returns
*/
export function SitePresetsInfo(sitePresets, lockProps, overRideProps) {
const usePreSets = sitePresets && (sitePresets.forces.length > 0 || sitePresets.presets.length > 0) ? true : false;
if (usePreSets === true) {
const allForces = [];
const forcesRows = [];
let forcePreviously = null;
sitePresets.forces.map((preset, index) => {
if (index === 0 || sitePresets.forces[index].source !== sitePresets.forces[index - 1].source) {
forcesRows.push(React.createElement("tr", { className: 'fps-policy', style: { color: 'darkred' } },
React.createElement("td", { colSpan: 2 }, preset.source),
React.createElement("td", { colSpan: 2 }, preset.location)));
}
let wasForced = '';
let wasForcedClass = wasForced ? 'was-forced' : '';
if (allForces.indexOf(preset.prop) > -1) {
wasForced = '*';
forcePreviously = React.createElement("div", null, "* These items were previously enforced");
}
else {
allForces.push(preset.prop);
}
forcesRows.push(React.createElement("tr", { className: preset.className },
React.createElement("td", null, preset.prop),
React.createElement("td", { title: `for sites: ${preset.location}` }, preset.type),
React.createElement("td", { className: wasForcedClass },
preset.status,
wasForced),
React.createElement("td", null,
JSON.stringify(preset.value),
" ")));
});
const forces = sitePresets.forces.length === 0 ? null : React.createElement("div", null,
React.createElement("div", { className: 'fps-pph-topic' }, "Forced Properties - may seem editable but are auto-set."),
React.createElement("div", { className: '' }, "In the case a property is forced multiple times, the last one is the one that gets applied."),
forcePreviously,
React.createElement("table", { className: 'configured-props' }, forcesRows));
const presetsRows = [];
const alreadyEnforced = [];
sitePresets.presets.map((preset, index) => {
if (index === 0 || sitePresets.presets[index].source !== sitePresets.presets[index - 1].source) {
presetsRows.push(React.createElement("tr", { className: 'fps-policy', style: { color: 'darkgreen' } },
React.createElement("td", { colSpan: 2 }, preset.source),
React.createElement("td", { colSpan: 2 }, preset.location)));
}
let wasForced = '';
if (allForces.indexOf(preset.prop) > -1 && alreadyEnforced.indexOf(preset.prop) < 0) {
alreadyEnforced.push(preset.prop);
wasForced = '^';
}
let wasForcedClass = wasForced ? 'was-forced' : '';
presetsRows.push(React.createElement("tr", { className: preset.className },
React.createElement("td", null, preset.prop),
React.createElement("td", { title: `for sites: ${preset.location}` }, preset.type),
React.createElement("td", { className: wasForcedClass },
preset.status,
wasForced),
React.createElement("td", null,
JSON.stringify(preset.value),
" ")));
});
const alreadyEnforcedStr = alreadyEnforced.join('; ');
const presets = sitePresets.presets.length === 0 ? null : React.createElement("div", null,
React.createElement("div", { className: 'fps-pph-topic' }, "Preset Properties"),
React.createElement("div", { className: '' }, "These presets were over-written by the forced policies listed above:"),
React.createElement("div", { className: '' }, "In the case a property is preset multiple times, the last one is the one that gets applied."),
React.createElement("div", { className: 'width90' }, alreadyEnforcedStr),
React.createElement("table", { className: 'configured-props' }, presetsRows));
const lockPropsTable = !lockProps ? undefined : React.createElement("div", null,
React.createElement("div", { className: 'fps-pph-topic' }, "Current Lock Properties:"),
React.createElement("table", { style: { margin: '10px 0px 0px 15px', width: '600px' } },
React.createElement("tr", null,
React.createElement("th", null, "Property"),
React.createElement("th", null, "Value")),
Object.keys(lockProps).map(key => {
return React.createElement("tr", { key: key },
React.createElement("td", null,
key,
": . . ."),
React.createElement("td", { style: { fontWeight: 600 } }, lockProps[key]));
})));
const propsLockContent = React.createElement("div", null,
React.createElement("div", { className: 'fps-pph-topic' }, "Locked Properties"),
React.createElement("div", null, "If the web part Properties are 'Locked', go to the last page of the web part properties to unlock"),
React.createElement("div", null, "If you do that, be warned your changes are saved and the owner will find out if you broke something!"),
lockPropsTable);
const overridePropsContent = overRideProps.overrideKeys.length > 0 ? React.createElement("div", null,
React.createElement("div", { className: 'fps-pph-topic' }, "Over-ride Properties"),
React.createElement("div", null, "This web part installation has some properties that were intended to be a forced value but were over-riden. This means that they are unlocked in the property pane and can now be modified by anyone with edit rights!"),
React.createElement("div", { style: { padding: '15px 0px 10px 15px' } }, Object.keys(overRideProps).map((key) => {
return key === 'overrideProps' || key === 'enableForceOverRide' ? undefined : React.createElement("div", { style: { display: 'flex', alignItems: 'center' } },
React.createElement("div", { style: { width: '225px' } }, key),
React.createElement("div", { style: { width: '100%', fontSize: 'large', fontWeight: 600 } }, JSON.stringify(overRideProps[key])));
}))) : undefined;
const preSetsContent = React.createElement("div", { className: 'fps-pph-content', style: { display: 'flex' } },
React.createElement("div", null,
propsLockContent,
overridePropsContent,
forces,
presets));
const returnPivot = React.createElement(PivotItem, { headerText: undefined, itemIcon: 'Badge' }, preSetsContent);
return returnPivot;
}
else {
return undefined;
}
}
//# sourceMappingURL=SitePresetsInfo.js.map