import { arrayInsert, isEmptyArray, moveArrayElement } from "./arrays";
import { buildCategoryColumns } from "./categoryColumns";
import {
	areAllComponentsEmpty,
	areEqual,
	isComponentEmpty,
	isEmptyContainer,
	setAsContainedComponent,
} from "./containerEvaluations";
import { getMaxColumns, updateColumns } from "./customColumns";
import { getActivatedDataPacksIds, getDeactivatedModules, isModuleDisabled } from "./dataPacks";
import {
	areEqualDates,
	dateToString,
	formatDate,
	getDateRange,
	getDaysAgo,
	getFormattedDateWithTimezone,
	getHumanLastModifiedDate,
	getRange,
	getScheduleFormatDate,
	getStringifyDateRange,
	isValidDate,
	isValidDateRange,
	stringToDate,
} from "./dates";
import { isDevelopment } from "./environment";
import { getFieldByPath } from "./fields";
import { getFileIcon, getNewBreadcrumb, updatePropertyById } from "./files";
import { protectFormKeys } from "./forms";
import { compressImage, imageResizeCropAndCompress } from "./imageResize";
import { formatBytes, getCroppedImg, getImageFromHtml, getImageFromIFrame, imageToBase64 } from "./images";
import {
	areEquals,
	deepClone,
	encodeData,
	filterDuplicatedValues,
	findObjectValue,
	getNullValue,
	hasProps,
	isEmptyObj,
	isSelectedEditorID,
	removeDuplicatesByProperty,
	removeEditorIds,
	removeMenuEditorIds,
	resetMultipleValues,
	sortBy,
	trimObject,
} from "./objects";
import { parseTheme } from "./parseTheme";
import { delay, handleRequest, isReqOk } from "./requests";
import {
	filterByCategory,
	getDataPackSchema,
	getDefaultFormTemplate,
	getDefaultNavigationModules,
	getDefaultSchema,
	getDefaultTemplate,
	getDisplayName,
	getFormTemplate,
	getFormTemplateCategories,
	getFormTemplates,
	getFormTemplateThumbnails,
	getMenuItems,
	getModuleCategories,
	getModuleStyles,
	getNavigationModules,
	getSchema,
	getSchemaFormCategories,
	getSchemaThumbnails,
	getSchemaType,
	getTemplate,
	getTemplateDisplayName,
	getTemplateThumbnails,
	getTemplateType,
	isMultipleNavigationModules,
} from "./schemas";
import { DEV_NOW, getShareTokenInfo } from "./shareToken";
import {
	camelize,
	capitalize,
	copyTextToClipboard,
	decodeEntities,
	filterImageText,
	getFileExtension,
	getInitials,
	getSlugFromUrl,
	isNumber,
	slugify,
	splitAndJoin,
	splitAndTrim,
	splitCamelCase,
	stripHtml,
	trimText,
	validateEmail,
} from "./strings";
import {
	getCurrentPageStructuredData,
	getGlobalPageTypes,
	getStructuredDataFromPage,
	getStructuredDataTitle,
	isGlobalStructuredData,
	isStructuredDataFromPage,
} from "./structuredData";
import {
	filterThemeDatapacks,
	filterThemeModules,
	filterThemeTemplates,
	getDefaultTheme,
	getThemeElements,
	isTemplateExcludedFromTheme,
} from "./themes";
import { getFormTemplateThumbnailProps, getThumbnailProps } from "./thumbnails";

export {
	areAllComponentsEmpty,
	areEqual,
	areEqualDates,
	areEquals,
	arrayInsert,
	buildCategoryColumns,
	camelize,
	capitalize,
	compressImage,
	copyTextToClipboard,
	dateToString,
	decodeEntities,
	deepClone,
	delay,
	encodeData,
	filterByCategory,
	filterDuplicatedValues,
	filterImageText,
	filterThemeDatapacks,
	filterThemeModules,
	filterThemeTemplates,
	findObjectValue,
	formatBytes,
	formatDate,
	getActivatedDataPacksIds,
	getCroppedImg,
	getCurrentPageStructuredData,
	getDataPackSchema,
	getDateRange,
	getDaysAgo,
	getDeactivatedModules,
	getDefaultFormTemplate,
	getDefaultNavigationModules,
	getDefaultSchema,
	getDefaultTemplate,
	getDefaultTheme,
	getDisplayName,
	getFieldByPath,
	getFileExtension,
	getFileIcon,
	getFormattedDateWithTimezone,
	getFormTemplate,
	getFormTemplateCategories,
	getFormTemplates,
	getFormTemplateThumbnailProps,
	getFormTemplateThumbnails,
	getGlobalPageTypes,
	getHumanLastModifiedDate,
	getImageFromHtml,
	getImageFromIFrame,
	getInitials,
	getMaxColumns,
	getMenuItems,
	getModuleCategories,
	getModuleStyles,
	getNavigationModules,
	getNewBreadcrumb,
	getNullValue,
	getRange,
	getScheduleFormatDate,
	getSchema,
	getSchemaFormCategories,
	getSchemaThumbnails,
	getSchemaType,
	DEV_NOW,
	getShareTokenInfo,
	getSlugFromUrl,
	getStringifyDateRange,
	getStructuredDataFromPage,
	getStructuredDataTitle,
	getTemplate,
	getTemplateDisplayName,
	getTemplateThumbnails,
	getTemplateType,
	getThemeElements,
	getThumbnailProps,
	handleRequest,
	hasProps,
	imageResizeCropAndCompress,
	imageToBase64,
	isComponentEmpty,
	isDevelopment,
	isEmptyArray,
	isEmptyContainer,
	isEmptyObj,
	isGlobalStructuredData,
	isModuleDisabled,
	isMultipleNavigationModules,
	isNumber,
	isReqOk,
	isSelectedEditorID,
	isStructuredDataFromPage,
	isTemplateExcludedFromTheme,
	isValidDate,
	isValidDateRange,
	moveArrayElement,
	parseTheme,
	protectFormKeys,
	removeDuplicatesByProperty,
	removeEditorIds,
	removeMenuEditorIds,
	resetMultipleValues,
	setAsContainedComponent,
	slugify,
	sortBy,
	splitAndJoin,
	splitAndTrim,
	splitCamelCase,
	stringToDate,
	stripHtml,
	trimObject,
	trimText,
	updateColumns,
	updatePropertyById,
	validateEmail,
};
