UNPKG

@highloop/feedback

Version:

86 lines (82 loc) 1.89 kB
import type { IText, ITheme, IData, PopoverPosition, DialogWidget, PopoverWidget, InlineWidget } from '@highloop/feedback-internal'; import { prefetch } from './prefetch'; import { scriptManager } from './scriptManager'; export let createDialogWidget = ( id: string, opts: { meta?: any; apiEndpoint?: string; theme?: ITheme; demo?: IData; text?: IText; expanded?: boolean; closeOnOutsideClick?: boolean; } & ( | { position?: 'center'; blanket?: boolean; } | { position?: 'top' | 'bottom'; } ) = {} ) => new Promise<DialogWidget>((resolve, reject) => { prefetch(id); scriptManager() .then(() => { resolve(window.highloopFeedback.createDialogWidget(id, opts)); }) .catch(reject); }); export let createInlineWidget = ( id: string, root: HTMLElement, opts: { meta?: any; apiEndpoint?: string; theme?: ITheme; demo?: IData; text?: IText; expanded?: boolean; resetOnSubmit?: boolean | number; } = {} ) => new Promise<InlineWidget>((resolve, reject) => { prefetch(id); scriptManager() .then(() => { resolve(window.highloopFeedback.createInlineWidget(id, root, opts)); }) .catch(reject); }); export let createPopoverWidget = ( id: string, button: HTMLElement, opts: { meta?: any; apiEndpoint?: string; theme?: ITheme; demo?: IData; text?: IText; expanded?: boolean; position?: PopoverPosition; closeOnOutsideClick?: boolean; } = {} ) => new Promise<PopoverWidget>((resolve, reject) => { prefetch(id); scriptManager() .then(() => { resolve(window.highloopFeedback.createPopoverWidget(id, button, opts)); }) .catch(reject); });