All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.js.utils.fieldSettings.ts Maven / Gradle / Ivy

The newest version!
/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

export function normalizeFieldSettings(
	objectFieldSettings: ObjectFieldSetting[] | undefined
) {
	const settings: {
		[key in ObjectFieldSettingName]?:
			| LocalizedValue
			| NameValueObject[]
			| ObjectFieldFilterSetting[]
			| ObjectFieldPicklistSetting
			| boolean
			| number
			| string;
	} = {};

	objectFieldSettings?.forEach(({name, value}) => {
		settings[name] = value;
	});

	return settings;
}

export function removeFieldSettings(
	settingsToRemove: ObjectFieldSettingName[],
	values: Partial
): ObjectFieldSetting[] {
	return values.objectFieldSettings!.filter(
		(setting) => !settingsToRemove.includes(setting.name)
	);
}

export function updateFieldSettings(
	objectFieldSettings: ObjectFieldSetting[] = [],
	{name, value}: ObjectFieldSetting
) {
	let isNewSetting = true;

	const settings = objectFieldSettings.map((setting) => {
		if (setting.name === name) {
			isNewSetting = false;

			return {...setting, value};
		}

		return setting;
	});

	return isNewSetting ? [...settings, {name, value}] : settings;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy