dromo-uploader-react 1.2.13 → 1.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js.map +1 -1
- package/dist/interfaces.d.ts +35 -16
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/interfaces.ts","../src/index.tsx"],"sourcesContent":["export interface IDeveloperField {\n label: string\n key: string\n type?: 'string' | 'checkbox' | 'select'\n description?: string\n alternateMatches?: string[]\n validators?: IValidatorField[]\n selectOptions?: {\n label: string\n value: string\n }[]\n}\n\nexport interface IValidatorField {\n validate:\n | 'required'\n | 'unique'\n | 'unique_case_insensitive'\n | 'regex_match'\n | 'regex_exclude'\n | 'require_with'\n | 'require_without'\n | 'require_with_all'\n | 'require_without_all'\n | 'require_with_values'\n | 'require_without_values'\n | 'require_with_all_values'\n | 'require_without_all_values'\n errorMessage?: string\n fields?: string[]\n fieldValues?: { [key: string]: any }\n regex?: string\n regexOptions?: {\n ignoreCase?: boolean\n dotAll?: boolean\n multiline?: boolean\n unicode?: boolean\n }\n}\n\nexport interface IDeveloperSettings {\n importIdentifier: string\n title?: string\n allowInvalidSubmit?: boolean\n backendSync?: boolean\n manualInputDisabled?: boolean\n manualInputOnly?: boolean\n allowCustomFields?: boolean\n maxRecords?: number | null\n developmentMode?: boolean\n displayEncoding?: boolean\n styleOverrides?: IDeveloperStyleOverrides\n webhookUrl?: string\n initialData?: any[] | null\n matchingStep?: {\n headerRowOverride?: number | null\n }\n autoMapHeaders?: boolean\n delimiter?: string\n backendOverride?: {\n url: string\n type: 'AWS' | 'AZURE'\n } | null\n locale?: TLocaleShorthand\n templateDownloadFilename?: string\n}\n\n// If you update this, also update IDeveloperStylesOverridesStrict\n// in interfaces.tsx\nexport interface IDeveloperStyleOverrides {\n global?: {\n textColor?: string\n primaryTextColor?: string\n secondaryTextColor?: string\n successColor?: string\n warningColor?: string\n customFontURL?: string | null\n customFontFamily?: string | null\n }\n primaryButton?: {\n borderRadius?: string\n backgroundColor?: string\n textColor?: string\n border?: string\n hoverBackgroundColor?: string\n hoverTextColor?: string\n hoverBorder?: string\n }\n secondaryButton?: {\n borderRadius?: string\n backgroundColor?: string\n textColor?: string\n border?: string\n hoverBackgroundColor?: string\n hoverTextColor?: string\n hoverBorder?: string\n }\n tertiaryButton?: {\n borderRadius?: string\n backgroundColor?: string\n textColor?: string\n border?: string\n hoverBackgroundColor?: string\n hoverTextColor?: string\n hoverBorder?: string\n }\n dropzone?: {\n borderWidth?: number\n borderRadius?: number\n borderColor?: string\n borderStyle?: string\n color?: string\n outline?: string\n }\n stepperBar?: {\n completeColor?: string\n incompleteColor?: string\n currentColor?: string\n }\n}\n\nexport interface IUser {\n id: string\n name?: string\n email?: string\n companyId?: string\n companyName?: string\n}\n\nexport interface ICellRef {\n rowIndex: number\n column: string\n}\n\nexport interface ITableMessage {\n message: string\n level: 'info' | 'warning' | 'error'\n}\n\nexport type ITableMessageWithRef = ITableMessage & ICellRef\n\nexport interface IColumnHook {\n fieldName: string\n callback: (\n values: IColumnHookInput[]\n ) => IColumnHookOutput[] | Promise<IColumnHookOutput[]>\n}\n\nexport interface IRowHook {\n (data: IRowHookInput, mode: 'init' | 'update'):\n | IRowHookOutput\n | Promise<IRowHookOutput>\n}\n\nexport interface IColumnHookInput {\n index: number\n value: any\n}\n\nexport interface IColumnHookOutput {\n index: number\n value?: any\n info?: ITableMessage[]\n}\n\nexport interface IRowHookInput {\n row: {\n [key: string]: {\n value: any\n info?: ITableMessage[]\n }\n }\n index: number\n}\n\nexport interface IRowHookOutput {\n row: {\n [key: string]: {\n value?: any\n info?: ITableMessage[]\n }\n }\n}\n\nexport interface IRowHookOutputInternal extends IRowHookOutput {\n index: number\n}\n\nexport interface IResultMetadata {\n id: string | null\n importIdentifier: string\n user: IUser\n rowsWithError: number[]\n}\n\nexport type TLocaleShorthand = 'en'\n\n/* eslint-disable no-unused-vars */\nexport enum EStepHook {\n UPLOAD_STEP = 'UPLOAD_STEP',\n REVIEW_STEP = 'REVIEW_STEP',\n REVIEW_STEP_POST_HOOKS = 'REVIEW_STEP_POST_HOOKS'\n}\n\nexport interface IUploadStepData {\n dataPreview: any[][]\n}\n\nexport interface IReviewStepData {\n rawHeaders: string[] | null\n headerMapping: { [header: string]: string | undefined }\n}\n\nexport interface IReviewStepPostHooksData {\n headerMapping: { [header: string]: string | undefined }\n}\n\nexport interface IStepHook {\n type: EStepHook\n callback: (\n uploader: any,\n data: IUploadStepData | IReviewStepData | IReviewStepPostHooksData\n ) => void | Promise<void>\n}\n","import * as React from 'react'\nimport {\n IColumnHookInput,\n IColumnHookOutput,\n IColumnHook,\n IDeveloperField,\n IValidatorField,\n IDeveloperSettings,\n IRowHookInput,\n IRowHookOutput,\n IRowHook,\n IDeveloperStyleOverrides,\n IUser,\n IResultMetadata,\n EStepHook,\n IStepHook\n} from './interfaces'\n\ninterface Props {\n style?: React.CSSProperties\n className?: string\n licenseKey: string\n user: IUser\n fields: IDeveloperField[]\n settings: IDeveloperSettings\n rowHooks?: IRowHook[]\n columnHooks?: IColumnHook[]\n stepHooks?: IStepHook[]\n onResults?: (data: any, metadata: IResultMetadata) => void\n onCancel?: () => void\n}\n\ndeclare var DromoUploader: any\n\nconst SCRIPT_SRC = 'https://unpkg.com/dromo-uploader-js/dist/DromoUploader.js'\nconst SCRIPT_LOADED_EVENT = 'DROMO_SCRIPT_LOADED'\n\nexport default class DromoReactUploader extends React.Component<Props> {\n dromo: any\n\n componentDidMount() {\n // Add event listener post load to set up Dromo\n window.addEventListener(SCRIPT_LOADED_EVENT, this.scriptLoaded.bind(this))\n\n const loadingScript = Array.from(\n document.getElementsByTagName('script')\n ).find((s) => s.src === SCRIPT_SRC)\n\n // If there is no script tag added to HTML then we add. Prevents multiple\n // adds if there are multiple components\n if (!loadingScript) {\n const script = document.createElement('script')\n script.src = SCRIPT_SRC\n script.async = true\n script.onload = () => {\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n }\n document.body.appendChild(script)\n } else {\n if ('DromoUploader' in window) {\n // If the script has been injected and has been loaded we can call\n // scriptLoaded\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n } else {\n // If the script has been injected but hasn't been loaded, we wait\n // for load\n loadingScript.onload = () => {\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n }\n }\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener(\n SCRIPT_LOADED_EVENT,\n this.scriptLoaded.bind(this)\n )\n }\n\n scriptLoaded = () => {\n this.dromo = new DromoUploader(\n this.props.licenseKey,\n this.props.fields,\n this.props.settings,\n this.props.user\n )\n\n if (this.props.rowHooks) {\n this.props.rowHooks.forEach((hook) => this.dromo.registerRowHook(hook))\n }\n\n if (this.props.columnHooks) {\n this.props.columnHooks.forEach((hook) => {\n this.dromo.registerColumnHook(hook.fieldName, hook.callback)\n })\n }\n\n if (this.props.onResults) {\n this.dromo.onResults(this.props.onResults)\n }\n\n if (this.props.onCancel) {\n this.dromo.onCancel(this.props.onCancel)\n }\n\n if (this.props.stepHooks) {\n this.props.stepHooks.forEach((hook) => {\n this.dromo.registerStepHook(hook.type, hook.callback)\n })\n }\n }\n\n open = () => {\n if (this.dromo) this.dromo.open()\n }\n\n render() {\n return (\n <button\n style={this.props.style}\n className={this.props.className}\n onClick={this.open}\n >\n {this.props.children}\n </button>\n )\n }\n}\n\nexport {\n IDeveloperField,\n IDeveloperSettings,\n IUser,\n IColumnHookInput,\n IColumnHookOutput,\n IColumnHook,\n IRowHookInput,\n IRowHookOutput,\n IRowHook,\n IValidatorField,\n IDeveloperStyleOverrides,\n IResultMetadata,\n EStepHook,\n IStepHook\n}\n"],"names":["EStepHook","SCRIPT_SRC","SCRIPT_LOADED_EVENT","DromoReactUploader","dromo","DromoUploader","props","licenseKey","fields","settings","user","rowHooks","forEach","hook","registerRowHook","columnHooks","registerColumnHook","fieldName","callback","onResults","onCancel","stepHooks","registerStepHook","type","open","componentDidMount","window","addEventListener","scriptLoaded","bind","loadingScript","Array","from","document","getElementsByTagName","find","s","src","script","createElement","async","onload","event","Event","dispatchEvent","body","appendChild","componentWillUnmount","removeEventListener","render","React","style","className","onClick","children"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/interfaces.ts","../src/index.tsx"],"sourcesContent":["export interface IDeveloperField {\n label: string;\n key: string;\n type?: \"string\" | \"checkbox\" | \"select\";\n description?: string;\n alternateMatches?: string[];\n validators?: IValidatorField[];\n selectOptions?: {\n label: string;\n value: string;\n }[];\n}\n\ninterface IAbstractValidator<ValidateKey> {\n validate: ValidateKey;\n errorMessage?: string;\n level?: \"info\" | \"warning\" | \"error\";\n}\n\nexport type IRequiredValidator = IAbstractValidator<\"required\">;\n\nexport type IUniqueValidator = IAbstractValidator<\n \"unique\" | \"unique_case_insensitive\"\n>;\n\nexport interface IUniqueWithValidator\n extends IAbstractValidator<\"unique_with\"> {\n uniqueKey: string;\n}\n\nexport interface IRegexValidator\n extends IAbstractValidator<\"regex_match\" | \"regex_exclude\"> {\n regex: string;\n regexOptions?: {\n ignoreCase?: boolean;\n dotAll?: boolean;\n multiline?: boolean;\n unicode?: boolean;\n };\n}\n\nexport interface IRequireWithValidator\n extends IAbstractValidator<\n | \"require_with\"\n | \"require_without\"\n | \"require_with_all\"\n | \"require_without_all\"\n > {\n fields: string[];\n}\n\nexport interface IRequireWithValuesValidator\n extends IAbstractValidator<\n | \"require_with_values\"\n | \"require_without_values\"\n | \"require_with_all_values\"\n | \"require_without_all_values\"\n > {\n fieldValues: { [key: string]: string };\n}\n\nexport type IValidatorField =\n | IRequiredValidator\n | IUniqueValidator\n | IUniqueWithValidator\n | IRegexValidator\n | IRequireWithValidator\n | IRequireWithValuesValidator;\n\nexport interface IDeveloperSettings {\n importIdentifier: string;\n title?: string;\n allowInvalidSubmit?: boolean;\n backendSync?: boolean;\n manualInputDisabled?: boolean;\n manualInputOnly?: boolean;\n allowCustomFields?: boolean;\n maxRecords?: number | null;\n developmentMode?: boolean;\n displayEncoding?: boolean;\n styleOverrides?: IDeveloperStyleOverrides;\n webhookUrl?: string;\n initialData?: { [key: string]: string }[] | any[][] | null;\n matchingStep?: {\n headerRowOverride?: number | null;\n };\n autoMapHeaders?: boolean;\n delimiter?: string;\n backendOverride?: {\n url: string;\n type: \"AWS\" | \"AZURE\";\n } | null;\n locale?: TLocaleShorthand;\n templateDownloadFilename?: string;\n}\n\n// If you update this, also update IDeveloperStylesOverridesStrict\n// in interfaces.tsx\nexport interface IDeveloperStyleOverrides {\n global?: {\n textColor?: string;\n primaryTextColor?: string;\n secondaryTextColor?: string;\n successColor?: string;\n warningColor?: string;\n customFontURL?: string | null;\n customFontFamily?: string | null;\n };\n primaryButton?: {\n borderRadius?: string;\n backgroundColor?: string;\n textColor?: string;\n border?: string;\n hoverBackgroundColor?: string;\n hoverTextColor?: string;\n hoverBorder?: string;\n };\n secondaryButton?: {\n borderRadius?: string;\n backgroundColor?: string;\n textColor?: string;\n border?: string;\n hoverBackgroundColor?: string;\n hoverTextColor?: string;\n hoverBorder?: string;\n };\n tertiaryButton?: {\n borderRadius?: string;\n backgroundColor?: string;\n textColor?: string;\n border?: string;\n hoverBackgroundColor?: string;\n hoverTextColor?: string;\n hoverBorder?: string;\n };\n dropzone?: {\n borderWidth?: number;\n borderRadius?: number;\n borderColor?: string;\n borderStyle?: string;\n color?: string;\n outline?: string;\n };\n stepperBar?: {\n completeColor?: string;\n incompleteColor?: string;\n currentColor?: string;\n };\n}\n\nexport interface IUser {\n id: string;\n name?: string;\n email?: string;\n companyId?: string;\n companyName?: string;\n}\n\nexport interface ICellRef {\n rowIndex: number;\n fieldKey: string;\n}\n\nexport interface ITableMessage {\n message: string;\n level: \"info\" | \"warning\" | \"error\";\n}\n\nexport interface IMessagesForCell extends ICellRef {\n messages: ITableMessage[];\n}\n\nexport interface IColumnHook {\n fieldName: string;\n callback: (\n values: IColumnHookInput[]\n ) => IColumnHookOutput[] | Promise<IColumnHookOutput[]>;\n}\n\nexport interface IRowHook {\n (data: IRowHookInput, mode: \"init\" | \"update\"):\n | IRowHookOutput\n | Promise<IRowHookOutput>;\n}\n\nexport interface IColumnHookInput {\n index: number;\n value: any;\n}\n\nexport interface IColumnHookOutput {\n index: number;\n value?: any;\n info?: ITableMessage[];\n}\n\nexport interface IRowHookInput {\n row: {\n [key: string]: {\n value: any;\n info?: ITableMessage[];\n };\n };\n index: number;\n}\n\nexport interface IRowHookOutput {\n row: {\n [key: string]: {\n value?: any;\n info?: ITableMessage[];\n };\n };\n}\n\nexport interface IRowHookOutputInternal extends IRowHookOutput {\n index: number;\n}\n\nexport interface IResultMetadata {\n id: string | null;\n importIdentifier: string;\n user: IUser;\n rowsWithError: number[];\n}\n\nexport type TLocaleShorthand = \"en\" | \"de\";\n\nexport enum EStepHook {\n UPLOAD_STEP = \"UPLOAD_STEP\",\n REVIEW_STEP = \"REVIEW_STEP\",\n REVIEW_STEP_POST_HOOKS = \"REVIEW_STEP_POST_HOOKS\",\n}\n\nexport interface IUploadStepData {\n filename: string | undefined;\n dataPreview: any[][];\n}\n\nexport interface IReviewStepData {\n rawHeaders: string[] | null;\n headerMapping: { [header: string]: string | undefined };\n}\n\nexport interface IReviewStepPostHooksData {\n headerMapping: { [header: string]: string | undefined };\n}\n\nexport interface IStepHook {\n type: keyof typeof EStepHook;\n callback: (\n uploader: any,\n data: IUploadStepData | IReviewStepData | IReviewStepPostHooksData\n ) => void | Promise<void>;\n}\n\n","import * as React from 'react'\nimport {\n IColumnHookInput,\n IColumnHookOutput,\n IColumnHook,\n IDeveloperField,\n IValidatorField,\n IDeveloperSettings,\n IRowHookInput,\n IRowHookOutput,\n IRowHook,\n IDeveloperStyleOverrides,\n IUser,\n IResultMetadata,\n EStepHook,\n IStepHook\n} from './interfaces'\n\ninterface Props {\n style?: React.CSSProperties\n className?: string\n licenseKey: string\n user: IUser\n fields: IDeveloperField[]\n settings: IDeveloperSettings\n rowHooks?: IRowHook[]\n columnHooks?: IColumnHook[]\n stepHooks?: IStepHook[]\n onResults?: (data: any, metadata: IResultMetadata) => void\n onCancel?: () => void\n children: React.ReactNode\n}\n\ndeclare var DromoUploader: any\n\nconst SCRIPT_SRC = 'https://unpkg.com/dromo-uploader-js/dist/DromoUploader.js'\nconst SCRIPT_LOADED_EVENT = 'DROMO_SCRIPT_LOADED'\n\nexport default class DromoReactUploader extends React.Component<Props> {\n dromo: any\n\n componentDidMount() {\n // Add event listener post load to set up Dromo\n window.addEventListener(SCRIPT_LOADED_EVENT, this.scriptLoaded.bind(this))\n\n const loadingScript = Array.from(\n document.getElementsByTagName('script')\n ).find((s) => s.src === SCRIPT_SRC)\n\n // If there is no script tag added to HTML then we add. Prevents multiple\n // adds if there are multiple components\n if (!loadingScript) {\n const script = document.createElement('script')\n script.src = SCRIPT_SRC\n script.async = true\n script.onload = () => {\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n }\n document.body.appendChild(script)\n } else {\n if ('DromoUploader' in window) {\n // If the script has been injected and has been loaded we can call\n // scriptLoaded\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n } else {\n // If the script has been injected but hasn't been loaded, we wait\n // for load\n loadingScript.onload = () => {\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n }\n }\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener(\n SCRIPT_LOADED_EVENT,\n this.scriptLoaded.bind(this)\n )\n }\n\n scriptLoaded = () => {\n this.dromo = new DromoUploader(\n this.props.licenseKey,\n this.props.fields,\n this.props.settings,\n this.props.user\n )\n\n if (this.props.rowHooks) {\n this.props.rowHooks.forEach((hook) => this.dromo.registerRowHook(hook))\n }\n\n if (this.props.columnHooks) {\n this.props.columnHooks.forEach((hook) => {\n this.dromo.registerColumnHook(hook.fieldName, hook.callback)\n })\n }\n\n if (this.props.onResults) {\n this.dromo.onResults(this.props.onResults)\n }\n\n if (this.props.onCancel) {\n this.dromo.onCancel(this.props.onCancel)\n }\n\n if (this.props.stepHooks) {\n this.props.stepHooks.forEach((hook) => {\n this.dromo.registerStepHook(hook.type, hook.callback)\n })\n }\n }\n\n open = () => {\n if (this.dromo) this.dromo.open()\n }\n\n render() {\n return (\n <button\n style={this.props.style}\n className={this.props.className}\n onClick={this.open}\n >\n {this.props.children}\n </button>\n )\n }\n}\n\nexport {\n IDeveloperField,\n IDeveloperSettings,\n IUser,\n IColumnHookInput,\n IColumnHookOutput,\n IColumnHook,\n IRowHookInput,\n IRowHookOutput,\n IRowHook,\n IValidatorField,\n IDeveloperStyleOverrides,\n IResultMetadata,\n EStepHook,\n IStepHook\n}\n"],"names":["EStepHook","SCRIPT_SRC","SCRIPT_LOADED_EVENT","DromoReactUploader","dromo","DromoUploader","props","licenseKey","fields","settings","user","rowHooks","forEach","hook","registerRowHook","columnHooks","registerColumnHook","fieldName","callback","onResults","onCancel","stepHooks","registerStepHook","type","open","componentDidMount","window","addEventListener","scriptLoaded","bind","loadingScript","Array","from","document","getElementsByTagName","find","s","src","script","createElement","async","onload","event","Event","dispatchEvent","body","appendChild","componentWillUnmount","removeEventListener","render","React","style","className","onClick","children"],"mappings":"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"}
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/interfaces.ts","../src/index.tsx"],"sourcesContent":["export interface IDeveloperField {\n label: string\n key: string\n type?: 'string' | 'checkbox' | 'select'\n description?: string\n alternateMatches?: string[]\n validators?: IValidatorField[]\n selectOptions?: {\n label: string\n value: string\n }[]\n}\n\nexport interface IValidatorField {\n validate:\n | 'required'\n | 'unique'\n | 'unique_case_insensitive'\n | 'regex_match'\n | 'regex_exclude'\n | 'require_with'\n | 'require_without'\n | 'require_with_all'\n | 'require_without_all'\n | 'require_with_values'\n | 'require_without_values'\n | 'require_with_all_values'\n | 'require_without_all_values'\n errorMessage?: string\n fields?: string[]\n fieldValues?: { [key: string]: any }\n regex?: string\n regexOptions?: {\n ignoreCase?: boolean\n dotAll?: boolean\n multiline?: boolean\n unicode?: boolean\n }\n}\n\nexport interface IDeveloperSettings {\n importIdentifier: string\n title?: string\n allowInvalidSubmit?: boolean\n backendSync?: boolean\n manualInputDisabled?: boolean\n manualInputOnly?: boolean\n allowCustomFields?: boolean\n maxRecords?: number | null\n developmentMode?: boolean\n displayEncoding?: boolean\n styleOverrides?: IDeveloperStyleOverrides\n webhookUrl?: string\n initialData?: any[] | null\n matchingStep?: {\n headerRowOverride?: number | null\n }\n autoMapHeaders?: boolean\n delimiter?: string\n backendOverride?: {\n url: string\n type: 'AWS' | 'AZURE'\n } | null\n locale?: TLocaleShorthand\n templateDownloadFilename?: string\n}\n\n// If you update this, also update IDeveloperStylesOverridesStrict\n// in interfaces.tsx\nexport interface IDeveloperStyleOverrides {\n global?: {\n textColor?: string\n primaryTextColor?: string\n secondaryTextColor?: string\n successColor?: string\n warningColor?: string\n customFontURL?: string | null\n customFontFamily?: string | null\n }\n primaryButton?: {\n borderRadius?: string\n backgroundColor?: string\n textColor?: string\n border?: string\n hoverBackgroundColor?: string\n hoverTextColor?: string\n hoverBorder?: string\n }\n secondaryButton?: {\n borderRadius?: string\n backgroundColor?: string\n textColor?: string\n border?: string\n hoverBackgroundColor?: string\n hoverTextColor?: string\n hoverBorder?: string\n }\n tertiaryButton?: {\n borderRadius?: string\n backgroundColor?: string\n textColor?: string\n border?: string\n hoverBackgroundColor?: string\n hoverTextColor?: string\n hoverBorder?: string\n }\n dropzone?: {\n borderWidth?: number\n borderRadius?: number\n borderColor?: string\n borderStyle?: string\n color?: string\n outline?: string\n }\n stepperBar?: {\n completeColor?: string\n incompleteColor?: string\n currentColor?: string\n }\n}\n\nexport interface IUser {\n id: string\n name?: string\n email?: string\n companyId?: string\n companyName?: string\n}\n\nexport interface ICellRef {\n rowIndex: number\n column: string\n}\n\nexport interface ITableMessage {\n message: string\n level: 'info' | 'warning' | 'error'\n}\n\nexport type ITableMessageWithRef = ITableMessage & ICellRef\n\nexport interface IColumnHook {\n fieldName: string\n callback: (\n values: IColumnHookInput[]\n ) => IColumnHookOutput[] | Promise<IColumnHookOutput[]>\n}\n\nexport interface IRowHook {\n (data: IRowHookInput, mode: 'init' | 'update'):\n | IRowHookOutput\n | Promise<IRowHookOutput>\n}\n\nexport interface IColumnHookInput {\n index: number\n value: any\n}\n\nexport interface IColumnHookOutput {\n index: number\n value?: any\n info?: ITableMessage[]\n}\n\nexport interface IRowHookInput {\n row: {\n [key: string]: {\n value: any\n info?: ITableMessage[]\n }\n }\n index: number\n}\n\nexport interface IRowHookOutput {\n row: {\n [key: string]: {\n value?: any\n info?: ITableMessage[]\n }\n }\n}\n\nexport interface IRowHookOutputInternal extends IRowHookOutput {\n index: number\n}\n\nexport interface IResultMetadata {\n id: string | null\n importIdentifier: string\n user: IUser\n rowsWithError: number[]\n}\n\nexport type TLocaleShorthand = 'en'\n\n/* eslint-disable no-unused-vars */\nexport enum EStepHook {\n UPLOAD_STEP = 'UPLOAD_STEP',\n REVIEW_STEP = 'REVIEW_STEP',\n REVIEW_STEP_POST_HOOKS = 'REVIEW_STEP_POST_HOOKS'\n}\n\nexport interface IUploadStepData {\n dataPreview: any[][]\n}\n\nexport interface IReviewStepData {\n rawHeaders: string[] | null\n headerMapping: { [header: string]: string | undefined }\n}\n\nexport interface IReviewStepPostHooksData {\n headerMapping: { [header: string]: string | undefined }\n}\n\nexport interface IStepHook {\n type: EStepHook\n callback: (\n uploader: any,\n data: IUploadStepData | IReviewStepData | IReviewStepPostHooksData\n ) => void | Promise<void>\n}\n","import * as React from 'react'\nimport {\n IColumnHookInput,\n IColumnHookOutput,\n IColumnHook,\n IDeveloperField,\n IValidatorField,\n IDeveloperSettings,\n IRowHookInput,\n IRowHookOutput,\n IRowHook,\n IDeveloperStyleOverrides,\n IUser,\n IResultMetadata,\n EStepHook,\n IStepHook\n} from './interfaces'\n\ninterface Props {\n style?: React.CSSProperties\n className?: string\n licenseKey: string\n user: IUser\n fields: IDeveloperField[]\n settings: IDeveloperSettings\n rowHooks?: IRowHook[]\n columnHooks?: IColumnHook[]\n stepHooks?: IStepHook[]\n onResults?: (data: any, metadata: IResultMetadata) => void\n onCancel?: () => void\n}\n\ndeclare var DromoUploader: any\n\nconst SCRIPT_SRC = 'https://unpkg.com/dromo-uploader-js/dist/DromoUploader.js'\nconst SCRIPT_LOADED_EVENT = 'DROMO_SCRIPT_LOADED'\n\nexport default class DromoReactUploader extends React.Component<Props> {\n dromo: any\n\n componentDidMount() {\n // Add event listener post load to set up Dromo\n window.addEventListener(SCRIPT_LOADED_EVENT, this.scriptLoaded.bind(this))\n\n const loadingScript = Array.from(\n document.getElementsByTagName('script')\n ).find((s) => s.src === SCRIPT_SRC)\n\n // If there is no script tag added to HTML then we add. Prevents multiple\n // adds if there are multiple components\n if (!loadingScript) {\n const script = document.createElement('script')\n script.src = SCRIPT_SRC\n script.async = true\n script.onload = () => {\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n }\n document.body.appendChild(script)\n } else {\n if ('DromoUploader' in window) {\n // If the script has been injected and has been loaded we can call\n // scriptLoaded\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n } else {\n // If the script has been injected but hasn't been loaded, we wait\n // for load\n loadingScript.onload = () => {\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n }\n }\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener(\n SCRIPT_LOADED_EVENT,\n this.scriptLoaded.bind(this)\n )\n }\n\n scriptLoaded = () => {\n this.dromo = new DromoUploader(\n this.props.licenseKey,\n this.props.fields,\n this.props.settings,\n this.props.user\n )\n\n if (this.props.rowHooks) {\n this.props.rowHooks.forEach((hook) => this.dromo.registerRowHook(hook))\n }\n\n if (this.props.columnHooks) {\n this.props.columnHooks.forEach((hook) => {\n this.dromo.registerColumnHook(hook.fieldName, hook.callback)\n })\n }\n\n if (this.props.onResults) {\n this.dromo.onResults(this.props.onResults)\n }\n\n if (this.props.onCancel) {\n this.dromo.onCancel(this.props.onCancel)\n }\n\n if (this.props.stepHooks) {\n this.props.stepHooks.forEach((hook) => {\n this.dromo.registerStepHook(hook.type, hook.callback)\n })\n }\n }\n\n open = () => {\n if (this.dromo) this.dromo.open()\n }\n\n render() {\n return (\n <button\n style={this.props.style}\n className={this.props.className}\n onClick={this.open}\n >\n {this.props.children}\n </button>\n )\n }\n}\n\nexport {\n IDeveloperField,\n IDeveloperSettings,\n IUser,\n IColumnHookInput,\n IColumnHookOutput,\n IColumnHook,\n IRowHookInput,\n IRowHookOutput,\n IRowHook,\n IValidatorField,\n IDeveloperStyleOverrides,\n IResultMetadata,\n EStepHook,\n IStepHook\n}\n"],"names":["EStepHook","SCRIPT_SRC","SCRIPT_LOADED_EVENT","DromoReactUploader","dromo","DromoUploader","props","licenseKey","fields","settings","user","rowHooks","forEach","hook","registerRowHook","columnHooks","registerColumnHook","fieldName","callback","onResults","onCancel","stepHooks","registerStepHook","type","open","componentDidMount","window","addEventListener","scriptLoaded","bind","loadingScript","Array","from","document","getElementsByTagName","find","s","src","script","createElement","async","onload","event","Event","dispatchEvent","body","appendChild","componentWillUnmount","removeEventListener","render","React","style","className","onClick","children"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/interfaces.ts","../src/index.tsx"],"sourcesContent":["export interface IDeveloperField {\n label: string;\n key: string;\n type?: \"string\" | \"checkbox\" | \"select\";\n description?: string;\n alternateMatches?: string[];\n validators?: IValidatorField[];\n selectOptions?: {\n label: string;\n value: string;\n }[];\n}\n\ninterface IAbstractValidator<ValidateKey> {\n validate: ValidateKey;\n errorMessage?: string;\n level?: \"info\" | \"warning\" | \"error\";\n}\n\nexport type IRequiredValidator = IAbstractValidator<\"required\">;\n\nexport type IUniqueValidator = IAbstractValidator<\n \"unique\" | \"unique_case_insensitive\"\n>;\n\nexport interface IUniqueWithValidator\n extends IAbstractValidator<\"unique_with\"> {\n uniqueKey: string;\n}\n\nexport interface IRegexValidator\n extends IAbstractValidator<\"regex_match\" | \"regex_exclude\"> {\n regex: string;\n regexOptions?: {\n ignoreCase?: boolean;\n dotAll?: boolean;\n multiline?: boolean;\n unicode?: boolean;\n };\n}\n\nexport interface IRequireWithValidator\n extends IAbstractValidator<\n | \"require_with\"\n | \"require_without\"\n | \"require_with_all\"\n | \"require_without_all\"\n > {\n fields: string[];\n}\n\nexport interface IRequireWithValuesValidator\n extends IAbstractValidator<\n | \"require_with_values\"\n | \"require_without_values\"\n | \"require_with_all_values\"\n | \"require_without_all_values\"\n > {\n fieldValues: { [key: string]: string };\n}\n\nexport type IValidatorField =\n | IRequiredValidator\n | IUniqueValidator\n | IUniqueWithValidator\n | IRegexValidator\n | IRequireWithValidator\n | IRequireWithValuesValidator;\n\nexport interface IDeveloperSettings {\n importIdentifier: string;\n title?: string;\n allowInvalidSubmit?: boolean;\n backendSync?: boolean;\n manualInputDisabled?: boolean;\n manualInputOnly?: boolean;\n allowCustomFields?: boolean;\n maxRecords?: number | null;\n developmentMode?: boolean;\n displayEncoding?: boolean;\n styleOverrides?: IDeveloperStyleOverrides;\n webhookUrl?: string;\n initialData?: { [key: string]: string }[] | any[][] | null;\n matchingStep?: {\n headerRowOverride?: number | null;\n };\n autoMapHeaders?: boolean;\n delimiter?: string;\n backendOverride?: {\n url: string;\n type: \"AWS\" | \"AZURE\";\n } | null;\n locale?: TLocaleShorthand;\n templateDownloadFilename?: string;\n}\n\n// If you update this, also update IDeveloperStylesOverridesStrict\n// in interfaces.tsx\nexport interface IDeveloperStyleOverrides {\n global?: {\n textColor?: string;\n primaryTextColor?: string;\n secondaryTextColor?: string;\n successColor?: string;\n warningColor?: string;\n customFontURL?: string | null;\n customFontFamily?: string | null;\n };\n primaryButton?: {\n borderRadius?: string;\n backgroundColor?: string;\n textColor?: string;\n border?: string;\n hoverBackgroundColor?: string;\n hoverTextColor?: string;\n hoverBorder?: string;\n };\n secondaryButton?: {\n borderRadius?: string;\n backgroundColor?: string;\n textColor?: string;\n border?: string;\n hoverBackgroundColor?: string;\n hoverTextColor?: string;\n hoverBorder?: string;\n };\n tertiaryButton?: {\n borderRadius?: string;\n backgroundColor?: string;\n textColor?: string;\n border?: string;\n hoverBackgroundColor?: string;\n hoverTextColor?: string;\n hoverBorder?: string;\n };\n dropzone?: {\n borderWidth?: number;\n borderRadius?: number;\n borderColor?: string;\n borderStyle?: string;\n color?: string;\n outline?: string;\n };\n stepperBar?: {\n completeColor?: string;\n incompleteColor?: string;\n currentColor?: string;\n };\n}\n\nexport interface IUser {\n id: string;\n name?: string;\n email?: string;\n companyId?: string;\n companyName?: string;\n}\n\nexport interface ICellRef {\n rowIndex: number;\n fieldKey: string;\n}\n\nexport interface ITableMessage {\n message: string;\n level: \"info\" | \"warning\" | \"error\";\n}\n\nexport interface IMessagesForCell extends ICellRef {\n messages: ITableMessage[];\n}\n\nexport interface IColumnHook {\n fieldName: string;\n callback: (\n values: IColumnHookInput[]\n ) => IColumnHookOutput[] | Promise<IColumnHookOutput[]>;\n}\n\nexport interface IRowHook {\n (data: IRowHookInput, mode: \"init\" | \"update\"):\n | IRowHookOutput\n | Promise<IRowHookOutput>;\n}\n\nexport interface IColumnHookInput {\n index: number;\n value: any;\n}\n\nexport interface IColumnHookOutput {\n index: number;\n value?: any;\n info?: ITableMessage[];\n}\n\nexport interface IRowHookInput {\n row: {\n [key: string]: {\n value: any;\n info?: ITableMessage[];\n };\n };\n index: number;\n}\n\nexport interface IRowHookOutput {\n row: {\n [key: string]: {\n value?: any;\n info?: ITableMessage[];\n };\n };\n}\n\nexport interface IRowHookOutputInternal extends IRowHookOutput {\n index: number;\n}\n\nexport interface IResultMetadata {\n id: string | null;\n importIdentifier: string;\n user: IUser;\n rowsWithError: number[];\n}\n\nexport type TLocaleShorthand = \"en\" | \"de\";\n\nexport enum EStepHook {\n UPLOAD_STEP = \"UPLOAD_STEP\",\n REVIEW_STEP = \"REVIEW_STEP\",\n REVIEW_STEP_POST_HOOKS = \"REVIEW_STEP_POST_HOOKS\",\n}\n\nexport interface IUploadStepData {\n filename: string | undefined;\n dataPreview: any[][];\n}\n\nexport interface IReviewStepData {\n rawHeaders: string[] | null;\n headerMapping: { [header: string]: string | undefined };\n}\n\nexport interface IReviewStepPostHooksData {\n headerMapping: { [header: string]: string | undefined };\n}\n\nexport interface IStepHook {\n type: keyof typeof EStepHook;\n callback: (\n uploader: any,\n data: IUploadStepData | IReviewStepData | IReviewStepPostHooksData\n ) => void | Promise<void>;\n}\n\n","import * as React from 'react'\nimport {\n IColumnHookInput,\n IColumnHookOutput,\n IColumnHook,\n IDeveloperField,\n IValidatorField,\n IDeveloperSettings,\n IRowHookInput,\n IRowHookOutput,\n IRowHook,\n IDeveloperStyleOverrides,\n IUser,\n IResultMetadata,\n EStepHook,\n IStepHook\n} from './interfaces'\n\ninterface Props {\n style?: React.CSSProperties\n className?: string\n licenseKey: string\n user: IUser\n fields: IDeveloperField[]\n settings: IDeveloperSettings\n rowHooks?: IRowHook[]\n columnHooks?: IColumnHook[]\n stepHooks?: IStepHook[]\n onResults?: (data: any, metadata: IResultMetadata) => void\n onCancel?: () => void\n children: React.ReactNode\n}\n\ndeclare var DromoUploader: any\n\nconst SCRIPT_SRC = 'https://unpkg.com/dromo-uploader-js/dist/DromoUploader.js'\nconst SCRIPT_LOADED_EVENT = 'DROMO_SCRIPT_LOADED'\n\nexport default class DromoReactUploader extends React.Component<Props> {\n dromo: any\n\n componentDidMount() {\n // Add event listener post load to set up Dromo\n window.addEventListener(SCRIPT_LOADED_EVENT, this.scriptLoaded.bind(this))\n\n const loadingScript = Array.from(\n document.getElementsByTagName('script')\n ).find((s) => s.src === SCRIPT_SRC)\n\n // If there is no script tag added to HTML then we add. Prevents multiple\n // adds if there are multiple components\n if (!loadingScript) {\n const script = document.createElement('script')\n script.src = SCRIPT_SRC\n script.async = true\n script.onload = () => {\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n }\n document.body.appendChild(script)\n } else {\n if ('DromoUploader' in window) {\n // If the script has been injected and has been loaded we can call\n // scriptLoaded\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n } else {\n // If the script has been injected but hasn't been loaded, we wait\n // for load\n loadingScript.onload = () => {\n const event = new Event(SCRIPT_LOADED_EVENT)\n window.dispatchEvent(event)\n }\n }\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener(\n SCRIPT_LOADED_EVENT,\n this.scriptLoaded.bind(this)\n )\n }\n\n scriptLoaded = () => {\n this.dromo = new DromoUploader(\n this.props.licenseKey,\n this.props.fields,\n this.props.settings,\n this.props.user\n )\n\n if (this.props.rowHooks) {\n this.props.rowHooks.forEach((hook) => this.dromo.registerRowHook(hook))\n }\n\n if (this.props.columnHooks) {\n this.props.columnHooks.forEach((hook) => {\n this.dromo.registerColumnHook(hook.fieldName, hook.callback)\n })\n }\n\n if (this.props.onResults) {\n this.dromo.onResults(this.props.onResults)\n }\n\n if (this.props.onCancel) {\n this.dromo.onCancel(this.props.onCancel)\n }\n\n if (this.props.stepHooks) {\n this.props.stepHooks.forEach((hook) => {\n this.dromo.registerStepHook(hook.type, hook.callback)\n })\n }\n }\n\n open = () => {\n if (this.dromo) this.dromo.open()\n }\n\n render() {\n return (\n <button\n style={this.props.style}\n className={this.props.className}\n onClick={this.open}\n >\n {this.props.children}\n </button>\n )\n }\n}\n\nexport {\n IDeveloperField,\n IDeveloperSettings,\n IUser,\n IColumnHookInput,\n IColumnHookOutput,\n IColumnHook,\n IRowHookInput,\n IRowHookOutput,\n IRowHook,\n IValidatorField,\n IDeveloperStyleOverrides,\n IResultMetadata,\n EStepHook,\n IStepHook\n}\n"],"names":["EStepHook","SCRIPT_SRC","SCRIPT_LOADED_EVENT","DromoReactUploader","dromo","DromoUploader","props","licenseKey","fields","settings","user","rowHooks","forEach","hook","registerRowHook","columnHooks","registerColumnHook","fieldName","callback","onResults","onCancel","stepHooks","registerStepHook","type","open","componentDidMount","window","addEventListener","scriptLoaded","bind","loadingScript","Array","from","document","getElementsByTagName","find","s","src","script","createElement","async","onload","event","Event","dispatchEvent","body","appendChild","componentWillUnmount","removeEventListener","render","React","style","className","onClick","children"],"mappings":"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"}
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export interface IDeveloperField {
|
|
2
2
|
label: string;
|
|
3
3
|
key: string;
|
|
4
|
-
type?:
|
|
4
|
+
type?: "string" | "checkbox" | "select";
|
|
5
5
|
description?: string;
|
|
6
6
|
alternateMatches?: string[];
|
|
7
7
|
validators?: IValidatorField[];
|
|
@@ -10,14 +10,18 @@ export interface IDeveloperField {
|
|
|
10
10
|
value: string;
|
|
11
11
|
}[];
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
validate:
|
|
13
|
+
interface IAbstractValidator<ValidateKey> {
|
|
14
|
+
validate: ValidateKey;
|
|
15
15
|
errorMessage?: string;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
level?: "info" | "warning" | "error";
|
|
17
|
+
}
|
|
18
|
+
export declare type IRequiredValidator = IAbstractValidator<"required">;
|
|
19
|
+
export declare type IUniqueValidator = IAbstractValidator<"unique" | "unique_case_insensitive">;
|
|
20
|
+
export interface IUniqueWithValidator extends IAbstractValidator<"unique_with"> {
|
|
21
|
+
uniqueKey: string;
|
|
22
|
+
}
|
|
23
|
+
export interface IRegexValidator extends IAbstractValidator<"regex_match" | "regex_exclude"> {
|
|
24
|
+
regex: string;
|
|
21
25
|
regexOptions?: {
|
|
22
26
|
ignoreCase?: boolean;
|
|
23
27
|
dotAll?: boolean;
|
|
@@ -25,6 +29,15 @@ export interface IValidatorField {
|
|
|
25
29
|
unicode?: boolean;
|
|
26
30
|
};
|
|
27
31
|
}
|
|
32
|
+
export interface IRequireWithValidator extends IAbstractValidator<"require_with" | "require_without" | "require_with_all" | "require_without_all"> {
|
|
33
|
+
fields: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface IRequireWithValuesValidator extends IAbstractValidator<"require_with_values" | "require_without_values" | "require_with_all_values" | "require_without_all_values"> {
|
|
36
|
+
fieldValues: {
|
|
37
|
+
[key: string]: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export declare type IValidatorField = IRequiredValidator | IUniqueValidator | IUniqueWithValidator | IRegexValidator | IRequireWithValidator | IRequireWithValuesValidator;
|
|
28
41
|
export interface IDeveloperSettings {
|
|
29
42
|
importIdentifier: string;
|
|
30
43
|
title?: string;
|
|
@@ -38,7 +51,9 @@ export interface IDeveloperSettings {
|
|
|
38
51
|
displayEncoding?: boolean;
|
|
39
52
|
styleOverrides?: IDeveloperStyleOverrides;
|
|
40
53
|
webhookUrl?: string;
|
|
41
|
-
initialData?:
|
|
54
|
+
initialData?: {
|
|
55
|
+
[key: string]: string;
|
|
56
|
+
}[] | any[][] | null;
|
|
42
57
|
matchingStep?: {
|
|
43
58
|
headerRowOverride?: number | null;
|
|
44
59
|
};
|
|
@@ -46,7 +61,7 @@ export interface IDeveloperSettings {
|
|
|
46
61
|
delimiter?: string;
|
|
47
62
|
backendOverride?: {
|
|
48
63
|
url: string;
|
|
49
|
-
type:
|
|
64
|
+
type: "AWS" | "AZURE";
|
|
50
65
|
} | null;
|
|
51
66
|
locale?: TLocaleShorthand;
|
|
52
67
|
templateDownloadFilename?: string;
|
|
@@ -111,19 +126,21 @@ export interface IUser {
|
|
|
111
126
|
}
|
|
112
127
|
export interface ICellRef {
|
|
113
128
|
rowIndex: number;
|
|
114
|
-
|
|
129
|
+
fieldKey: string;
|
|
115
130
|
}
|
|
116
131
|
export interface ITableMessage {
|
|
117
132
|
message: string;
|
|
118
|
-
level:
|
|
133
|
+
level: "info" | "warning" | "error";
|
|
134
|
+
}
|
|
135
|
+
export interface IMessagesForCell extends ICellRef {
|
|
136
|
+
messages: ITableMessage[];
|
|
119
137
|
}
|
|
120
|
-
export declare type ITableMessageWithRef = ITableMessage & ICellRef;
|
|
121
138
|
export interface IColumnHook {
|
|
122
139
|
fieldName: string;
|
|
123
140
|
callback: (values: IColumnHookInput[]) => IColumnHookOutput[] | Promise<IColumnHookOutput[]>;
|
|
124
141
|
}
|
|
125
142
|
export interface IRowHook {
|
|
126
|
-
(data: IRowHookInput, mode:
|
|
143
|
+
(data: IRowHookInput, mode: "init" | "update"): IRowHookOutput | Promise<IRowHookOutput>;
|
|
127
144
|
}
|
|
128
145
|
export interface IColumnHookInput {
|
|
129
146
|
index: number;
|
|
@@ -160,13 +177,14 @@ export interface IResultMetadata {
|
|
|
160
177
|
user: IUser;
|
|
161
178
|
rowsWithError: number[];
|
|
162
179
|
}
|
|
163
|
-
export declare type TLocaleShorthand =
|
|
180
|
+
export declare type TLocaleShorthand = "en" | "de";
|
|
164
181
|
export declare enum EStepHook {
|
|
165
182
|
UPLOAD_STEP = "UPLOAD_STEP",
|
|
166
183
|
REVIEW_STEP = "REVIEW_STEP",
|
|
167
184
|
REVIEW_STEP_POST_HOOKS = "REVIEW_STEP_POST_HOOKS"
|
|
168
185
|
}
|
|
169
186
|
export interface IUploadStepData {
|
|
187
|
+
filename: string | undefined;
|
|
170
188
|
dataPreview: any[][];
|
|
171
189
|
}
|
|
172
190
|
export interface IReviewStepData {
|
|
@@ -181,6 +199,7 @@ export interface IReviewStepPostHooksData {
|
|
|
181
199
|
};
|
|
182
200
|
}
|
|
183
201
|
export interface IStepHook {
|
|
184
|
-
type: EStepHook;
|
|
202
|
+
type: keyof typeof EStepHook;
|
|
185
203
|
callback: (uploader: any, data: IUploadStepData | IReviewStepData | IReviewStepPostHooksData) => void | Promise<void>;
|
|
186
204
|
}
|
|
205
|
+
export {};
|