@plone/types
Version:
Plone's Types Package
106 lines (101 loc) • 2.93 kB
TypeScript
import { Content } from '../content';
import { BlocksFormData } from '../blocks/index';
type apiExpandersType =
| { match: string; GET_CONTENT: string[] }
| {
match: string;
GET_CONTENT: string[];
querystring:
| { [key: string]: string }
| (() => { [key: string]: string });
};
type styleClassNameExtendersType = ({
block,
content,
data,
classNames,
}: {
block: string;
content: Content;
data: BlocksFormData;
classNames: string[];
}) => string[];
export interface SettingsConfig {
[key: string]: unknown;
host: string;
port: string;
publicURL: string;
apiPath: string;
apiExpanders: apiExpandersType[] | [];
devProxyToApiPath: string | undefined;
proxyRewriteTarget: string | undefined;
actions_raising_api_errors: string[];
internalApiPath: string | undefined;
websockets: string | false;
legacyTraverse: string | false;
cookieExpires: number;
nonContentRoutes: string[];
richtextEditorSettings: unknown;
richtextViewSettings: unknown;
imageObjects: string[];
reservedIds: string[];
downloadableObjects: string[];
viewableInBrowserObjects: string[];
listingPreviewImageField: string;
openExternalLinkInNewTab: boolean;
notSupportedBrowsers: string[];
defaultPageSize: number;
isMultilingual: boolean;
supportedLanguages: string[]; // TODO: Improve list of possible values
defaultLanguage: string;
navDepth: number;
expressMiddleware: unknown;
defaultBlockType: string; // TODO: Improve list of possible values
verticalFormTabs: boolean;
useEmailAsLogin: boolean;
persistentReducers: string[];
initialReducersBlacklist: string[];
asyncPropsExtenders: unknown[];
contentIcons: Record<string, React.ComponentType>;
loadables: unknown;
lazyBundles: {
[key: string]: string[];
};
appExtras: {
match: string;
component: React.ComponentType;
props: {
[key: string]: unknown;
};
}[];
maxResponseSize: number;
maxFileUploadSize: number | null;
serverConfig: unknown;
storeExtenders: unknown[];
showTags: boolean;
showRelatedItems: boolean;
controlpanels: unknown[];
controlPanelsIcons: Record<string, React.ComponentType>;
filterControlPanels: unknown;
filterControlPanelsSchema: unknown;
externalRoutes: {
match?: string | { path: string; exact: boolean; strict: boolean };
}[];
showSelfRegistration: boolean;
contentMetadataTagsImageField: string;
maxUndoLevels: number;
addonsInfo: unknown;
workflowMapping: unknown;
errorHandlers: unknown[];
styleClassNameConverters: unknown;
hashLinkSmoothScroll: boolean;
styleClassNameExtenders: styleClassNameExtendersType[];
querystringSearchGet: boolean;
blockSettingsTabFieldsetsInitialStateOpen: boolean;
excludeLinksAndReferencesMenuItem: boolean;
siteTitleFormat: {
includeSiteTitle: boolean;
titleAndSiteTitleSeparator: string;
};
cssLayers: string[];
}