UNPKG

@mikezimm/fps-core-v7

Version:

Library of reusable core interfaces, types and constants migrated from fps-library-v2

43 lines 2.64 kB
/** * 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