UNPKG

@etsoo/website

Version:

ETSOO CMS Based NextJs Website Framework

120 lines (119 loc) 3.4 kB
/// <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 {};