@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
43 lines • 2.64 kB
JavaScript
/**
* 2024-09-06: Migrated from same folder fps-library-v2\src\pnpjs\SourceItems
*/
import { check4This, Check4 } from '../../../logic/Links/CheckSearch';
import { getExpandColumns, getSelectColumns } from './Lists/getVX/PnpjsListGetBasic';
import { clonePropsWithFpsSpService } from './createSources/cloneSourceProps';
// import { check4This } from '@mikezimm/fps-pnp2/lib/services/sp/CheckSearch';
/**
* prepSourceColumns will look at SourceProps and figure out all columns to be selected and expanded
* @param sourceProps
* @returns
*/
export function prepSourceColumns(sourceProps, forceWebUrl) {
if (check4This(Check4.prepSource_Eq_true) === true) {
console.log(`fps-core-v7 BEFORE: prepSourceColumns ~ 12`, clonePropsWithFpsSpService(sourceProps));
}
;
const searchProps = sourceProps.searchProps ? sourceProps.searchProps : [];
const viewProps = sourceProps.viewProps ? sourceProps.viewProps : [];
const editProps = sourceProps.editProps ? sourceProps.editProps : [];
const columns = [...sourceProps.columns, ...searchProps, ...viewProps, ...editProps];
const expColumns = getExpandColumns(columns);
const selColumns = getSelectColumns(columns);
//Do not get * columns when using standards so you don't pull WikiFields
const baseSelectColumns = sourceProps.selectThese ? sourceProps.selectThese : sourceProps.columns;
// [ added: ... baseSelectColumns, did not have the ... not sure how that worked.
const selectThese = [...baseSelectColumns, ...selColumns];
//Filtering dups from all columns : https://dev.to/soyleninjs/3-ways-to-remove-duplicates-in-an-array-in-javascript-259o
sourceProps.columns = columns.filter((element, index) => { return columns.indexOf(element) === index; });
sourceProps.selectThese = selectThese.filter((element, index) => { return selectThese.indexOf(element) === index; });
sourceProps.expandThese = expColumns.filter((element, index) => { return expColumns.indexOf(element) === index; });
// Sanitize the web urls
const updateUrl = forceWebUrl ? forceWebUrl : sourceProps.webUrl;
sourceProps.webUrl = updateUrl.replace(window.location.origin, '');
sourceProps.absoluteWebUrl = updateUrl.indexOf('https:') === 0 ? updateUrl : window.location.origin + updateUrl;
sourceProps.sitesWebUrls = sourceProps.webUrl.replace('/sites/', '/');
if (check4This(Check4.prepSource_Eq_true) === true) {
console.log(`fps-core-v7 COMPLETE: prepSourceColumns ~ 29`, sourceProps);
}
;
return sourceProps;
}
//# sourceMappingURL=prepSourceColumns.js.map