UNPKG

@highloop/feedback-internal

Version:

47 lines (40 loc) 1.31 kB
import { HighloopFeedbackCore } from '../core'; import type { IData, ITheme } from '../interfaces/data'; import type { IText } from '../interfaces/text'; import { resetOnSubmit } from '../lib/resetOnSubmit'; export type InlineWidget = ReturnType<typeof createInlineWidget>; export type InlineWidgetOpts = Parameters<typeof createInlineWidget>[2]; export let createInlineWidget = ( id: string, root: HTMLElement, opts: { meta?: any; apiEndpoint?: string; theme?: ITheme; demo?: IData; text?: IText; expanded?: boolean; resetOnSubmit?: boolean | number; } = {} ) => { if (typeof window == 'undefined') return; let instance = new HighloopFeedbackCore(id, { ...opts, closable: false, root }); if (opts.resetOnSubmit) { resetOnSubmit(instance, opts.resetOnSubmit == true ? 7000 : opts.resetOnSubmit); } instance.render(); return { destroy: () => { instance.destroy(); }, instance: instance, setMeta: (meta: any) => instance.setMeta(meta), setTheme: (theme: ITheme) => instance.setTheme(theme), on: <T>(type: string, handler: (d: T) => unknown) => instance.on(type, handler), once: <T>(type: string, handler: (d: T) => unknown) => instance.once(type, handler) }; };