@etsoo/website
Version:
ETSOO CMS Based NextJs Website Framework
120 lines (119 loc) • 3.4 kB
TypeScript
/// <reference types="wx" />
import { ApiDataError, IApi } from '@etsoo/restclient';
import { DataTypes, IActionResult } from '@etsoo/shared';
import { INotifierContainer } from '../notifier/NotifierContainer';
import { SendEmailRQ } from '../rq/site/SendEmailRQ';
type ScrollActions = {
backToTopSelector?: string;
backToTopThreshold?: number;
stickyTopSelector?: string;
stickyTopThreshold?: number;
};
type SetupOptions = ScrollActions & {
drawflowStyle?: string;
drawVersion?: string;
};
/**
* Client site
*/
export declare class ClientSite {
readonly culture: 'en' | 'zh-Hans' | 'zh-Hant' | string;
/**
* API
* 接口调用对象
*/
readonly api: IApi;
/**
* Notifier
* 通知器
*/
readonly notifier: INotifierContainer;
private _isReady;
/**
* Is ready
* 是否准备就绪
*/
get isReady(): boolean;
private backToTopDispose?;
private windowScrollDispose?;
private formSubmitDispose?;
/**
* Constructor
* 构造函数
* @param culture Culture, like en, zh-Hans
* @param apiUrl Headless CMS API Url
* @param errorHandler Custom error handler
*/
constructor(culture: 'en' | 'zh-Hans' | 'zh-Hant' | string, apiUrl: string, errorHandler?: (e: ApiDataError) => void);
/**
* Dispose
* 释放资源
*/
dispose(): void;
/**
* Get document meta content
* 获取文档 Meta 内容
* @param name Name
* @returns content
*/
getMeta(name: string): string | undefined;
/**
* Get document Open Graph
* https://ogp.me/
* 获取文档 Open Graph 内容
* @param name Name
* @returns content
*/
getOG(name: string): string | undefined;
/**
* Get Google reCaptcha token
* @param action Action
* @param callback Callback
*/
grecaptcha(action: string, callback: (token: string) => void): void;
/**
* Send email
* 发送邮件
* @param rq Request data
* @param api Function API
* @returns Result
*/
sendEmail(rq: SendEmailRQ, api?: string): Promise<IActionResult<{
successMessage: string;
}> | undefined>;
/**
* Setup
* @param resources Custom resources
* @param options Setup options
*/
setup(resources?: DataTypes.StringRecord, options?: SetupOptions): void;
/**
* Setup scroll actions
* 设置滚动动作
* @param actions Scroll actions
*/
setupScrollActions(actions?: ScrollActions): void;
/**
* Setup contact form
* @param selectors Form selectors, default is "form[name='contact-form']"
* @param recipientField Recipient field name, default is "email"
* @param templateName Email template name
*/
setupContactForm(selectors?: string, recipientField?: string, templateName?: string): void;
/**
* Setup drawflow viewer
* 设置 Drawflow 视图
* @param drawflowStyle Drawflow style
* @param drawVersion Drawflow version
*/
setupDrawflowViewer(drawflowStyle?: string, drawVersion?: string): void;
/**
* Setup wechat share
* 设置微信分享
* @param share Shared data
* @param api Wechat configuration API
* @returns Result
*/
setupWechat(share?: wx.UpdateAppMessageShareDataParams, api?: string): Promise<void>;
}
export {};