dromo-uploader-react 1.2.2 → 1.2.10

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 CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { IColumnHookInput, IColumnHookOutput, IColumnHook, IDeveloperField, IValidatorField, IDeveloperSettings, IRowHookInput, IRowHookOutput, IRowHook, IDeveloperStyleOverrides, IUser, IResultMetadata } from './interfaces';
2
+ import { IColumnHookInput, IColumnHookOutput, IColumnHook, IDeveloperField, IValidatorField, IDeveloperSettings, IRowHookInput, IRowHookOutput, IRowHook, IDeveloperStyleOverrides, IUser, IResultMetadata, EStepHook, IStepHook } from './interfaces';
3
3
  interface Props {
4
4
  style?: React.CSSProperties;
5
5
  className?: string;
@@ -7,11 +7,9 @@ interface Props {
7
7
  user: IUser;
8
8
  fields: IDeveloperField[];
9
9
  settings: IDeveloperSettings;
10
- rowHooks?: ((record: IRowHookInput) => IRowHookOutput | Promise<IRowHookOutput>)[];
11
- columnHooks?: {
12
- fieldName: string;
13
- callback: (values: Array<IColumnHookInput>) => Array<IColumnHookOutput> | Promise<Array<IColumnHookOutput>>;
14
- }[];
10
+ rowHooks?: IRowHook[];
11
+ columnHooks?: IColumnHook[];
12
+ stepHooks?: IStepHook[];
15
13
  onResults?: (data: any, metadata: IResultMetadata) => void;
16
14
  onCancel?: () => void;
17
15
  }
@@ -23,4 +21,4 @@ export default class DromoReactUploader extends React.Component<Props> {
23
21
  open: () => void;
24
22
  render(): JSX.Element;
25
23
  }
26
- export { IDeveloperField, IDeveloperSettings, IUser, IColumnHookInput, IColumnHookOutput, IColumnHook, IRowHookInput, IRowHookOutput, IRowHook, IValidatorField, IDeveloperStyleOverrides, IResultMetadata };
24
+ export { IDeveloperField, IDeveloperSettings, IUser, IColumnHookInput, IColumnHookOutput, IColumnHook, IRowHookInput, IRowHookOutput, IRowHook, IValidatorField, IDeveloperStyleOverrides, IResultMetadata, EStepHook, IStepHook };
package/dist/index.js CHANGED
@@ -6,6 +6,11 @@ function _inheritsLoose(subClass, superClass) {
6
6
  subClass.__proto__ = superClass;
7
7
  }
8
8
 
9
+ (function (EStepHook) {
10
+ EStepHook["UPLOAD_STEP"] = "UPLOAD_STEP";
11
+ EStepHook["REVIEW_STEP"] = "REVIEW_STEP";
12
+ })(exports.EStepHook || (exports.EStepHook = {}));
13
+
9
14
  var SCRIPT_SRC = 'https://unpkg.com/dromo-uploader-js/dist/DromoUploader.js';
10
15
  var SCRIPT_LOADED_EVENT = 'DROMO_SCRIPT_LOADED';
11
16
 
@@ -39,6 +44,12 @@ var DromoReactUploader = /*#__PURE__*/function (_React$Component) {
39
44
  if (_this.props.onCancel) {
40
45
  _this.dromo.onCancel(_this.props.onCancel);
41
46
  }
47
+
48
+ if (_this.props.stepHooks) {
49
+ _this.props.stepHooks.forEach(function (hook) {
50
+ _this.dromo.registerStepHook(hook.type, hook.callback);
51
+ });
52
+ }
42
53
  };
43
54
 
44
55
  _this.open = function () {
@@ -95,5 +106,5 @@ var DromoReactUploader = /*#__PURE__*/function (_React$Component) {
95
106
  return DromoReactUploader;
96
107
  }(React.Component);
97
108
 
98
- module.exports = DromoReactUploader;
109
+ exports.default = DromoReactUploader;
99
110
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["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} 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?: ((\n record: IRowHookInput\n ) => IRowHookOutput | Promise<IRowHookOutput>)[]\n columnHooks?: {\n fieldName: string\n callback: (\n values: Array<IColumnHookInput>\n ) => Array<IColumnHookOutput> | Promise<Array<IColumnHookOutput>>\n }[]\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\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}\n"],"names":["SCRIPT_SRC","SCRIPT_LOADED_EVENT","DromoReactUploader","dromo","DromoUploader","props","licenseKey","fields","settings","user","rowHooks","forEach","hook","registerRowHook","columnHooks","registerColumnHook","fieldName","callback","onResults","onCancel","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":";;;;;;;;AAsCA,IAAMA,UAAU,GAAG,2DAAnB;AACA,IAAMC,mBAAmB,GAAG,qBAA5B;;IAEqBC;;;AAArB;;;;;AA8CE,sBAAA,GAAe;AACb,YAAKC,KAAL,GAAa,IAAIC,aAAJ,CACX,MAAKC,KAAL,CAAWC,UADA,EAEX,MAAKD,KAAL,CAAWE,MAFA,EAGX,MAAKF,KAAL,CAAWG,QAHA,EAIX,MAAKH,KAAL,CAAWI,IAJA,CAAb;;AAOA,UAAI,MAAKJ,KAAL,CAAWK,QAAf,EAAyB;AACvB,cAAKL,KAAL,CAAWK,QAAX,CAAoBC,OAApB,CAA4B,UAACC,IAAD;AAAA,iBAAU,MAAKT,KAAL,CAAWU,eAAX,CAA2BD,IAA3B,CAAV;AAAA,SAA5B;AACD;;AAED,UAAI,MAAKP,KAAL,CAAWS,WAAf,EAA4B;AAC1B,cAAKT,KAAL,CAAWS,WAAX,CAAuBH,OAAvB,CAA+B,UAACC,IAAD;AAC7B,gBAAKT,KAAL,CAAWY,kBAAX,CAA8BH,IAAI,CAACI,SAAnC,EAA8CJ,IAAI,CAACK,QAAnD;AACD,SAFD;AAGD;;AAED,UAAI,MAAKZ,KAAL,CAAWa,SAAf,EAA0B;AACxB,cAAKf,KAAL,CAAWe,SAAX,CAAqB,MAAKb,KAAL,CAAWa,SAAhC;AACD;;AAED,UAAI,MAAKb,KAAL,CAAWc,QAAf,EAAyB;AACvB,cAAKhB,KAAL,CAAWgB,QAAX,CAAoB,MAAKd,KAAL,CAAWc,QAA/B;AACD;AACF,KAzBD;;AA2BA,cAAA,GAAO;AACL,UAAI,MAAKhB,KAAT,EAAgB,MAAKA,KAAL,CAAWiB,IAAX;AACjB,KAFD;;;AAeD;;;;SArFCC,oBAAA;AAEEC,IAAAA,MAAM,CAACC,gBAAP,CAAwBtB,mBAAxB,EAA6C,KAAKuB,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB,CAA7C;AAEA,QAAMC,aAAa,GAAGC,KAAK,CAACC,IAAN,CACpBC,QAAQ,CAACC,oBAAT,CAA8B,QAA9B,CADoB,EAEpBC,IAFoB,CAEf,UAACC,CAAD;AAAA,aAAOA,CAAC,CAACC,GAAF,KAAUjC,UAAjB;AAAA,KAFe,CAAtB;;AAMA,QAAI,CAAC0B,aAAL,EAAoB;AAClB,UAAMQ,MAAM,GAAGL,QAAQ,CAACM,aAAT,CAAuB,QAAvB,CAAf;AACAD,MAAAA,MAAM,CAACD,GAAP,GAAajC,UAAb;AACAkC,MAAAA,MAAM,CAACE,KAAP,GAAe,IAAf;;AACAF,MAAAA,MAAM,CAACG,MAAP,GAAgB;AACd,YAAMC,KAAK,GAAG,IAAIC,KAAJ,CAAUtC,mBAAV,CAAd;AACAqB,QAAAA,MAAM,CAACkB,aAAP,CAAqBF,KAArB;AACD,OAHD;;AAIAT,MAAAA,QAAQ,CAACY,IAAT,CAAcC,WAAd,CAA0BR,MAA1B;AACD,KATD,MASO;AACL,UAAI,mBAAmBZ,MAAvB,EAA+B;AAG7B,YAAMgB,KAAK,GAAG,IAAIC,KAAJ,CAAUtC,mBAAV,CAAd;AACAqB,QAAAA,MAAM,CAACkB,aAAP,CAAqBF,KAArB;AACD,OALD,MAKO;AAGLZ,QAAAA,aAAa,CAACW,MAAd,GAAuB;AACrB,cAAMC,KAAK,GAAG,IAAIC,KAAJ,CAAUtC,mBAAV,CAAd;AACAqB,UAAAA,MAAM,CAACkB,aAAP,CAAqBF,KAArB;AACD,SAHD;AAID;AACF;AACF;;SAEDK,uBAAA;AACErB,IAAAA,MAAM,CAACsB,mBAAP,CACE3C,mBADF,EAEE,KAAKuB,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB,CAFF;AAID;;SAiCDoB,SAAA;AACE,WACEC,mBAAA,SAAA;AACEC,MAAAA,KAAK,EAAE,KAAK1C,KAAL,CAAW0C;AAClBC,MAAAA,SAAS,EAAE,KAAK3C,KAAL,CAAW2C;AACtBC,MAAAA,OAAO,EAAE,KAAK7B;KAHhB,EAKG,KAAKf,KAAL,CAAW6C,QALd,CADF;AASD;;;EAvF6CJ;;;;"}
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 | '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 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 ITableMessage {\n message: string\n level: 'info' | 'warning' | 'error'\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'\n\nexport enum EStepHook {\n // eslint-disable-next-line no-unused-vars\n UPLOAD_STEP = 'UPLOAD_STEP',\n // eslint-disable-next-line no-unused-vars\n REVIEW_STEP = 'REVIEW_STEP'\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 IStepHook {\n type: EStepHook\n callback: (\n uploader: any,\n data: IUploadStepData | IReviewStepData\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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"}
@@ -6,6 +6,13 @@ function _inheritsLoose(subClass, superClass) {
6
6
  subClass.__proto__ = superClass;
7
7
  }
8
8
 
9
+ var EStepHook;
10
+
11
+ (function (EStepHook) {
12
+ EStepHook["UPLOAD_STEP"] = "UPLOAD_STEP";
13
+ EStepHook["REVIEW_STEP"] = "REVIEW_STEP";
14
+ })(EStepHook || (EStepHook = {}));
15
+
9
16
  var SCRIPT_SRC = 'https://unpkg.com/dromo-uploader-js/dist/DromoUploader.js';
10
17
  var SCRIPT_LOADED_EVENT = 'DROMO_SCRIPT_LOADED';
11
18
 
@@ -39,6 +46,12 @@ var DromoReactUploader = /*#__PURE__*/function (_React$Component) {
39
46
  if (_this.props.onCancel) {
40
47
  _this.dromo.onCancel(_this.props.onCancel);
41
48
  }
49
+
50
+ if (_this.props.stepHooks) {
51
+ _this.props.stepHooks.forEach(function (hook) {
52
+ _this.dromo.registerStepHook(hook.type, hook.callback);
53
+ });
54
+ }
42
55
  };
43
56
 
44
57
  _this.open = function () {
@@ -96,4 +109,5 @@ var DromoReactUploader = /*#__PURE__*/function (_React$Component) {
96
109
  }(Component);
97
110
 
98
111
  export default DromoReactUploader;
112
+ export { EStepHook };
99
113
  //# sourceMappingURL=index.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/index.tsx"],"sourcesContent":["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} 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?: ((\n record: IRowHookInput\n ) => IRowHookOutput | Promise<IRowHookOutput>)[]\n columnHooks?: {\n fieldName: string\n callback: (\n values: Array<IColumnHookInput>\n ) => Array<IColumnHookOutput> | Promise<Array<IColumnHookOutput>>\n }[]\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\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}\n"],"names":["SCRIPT_SRC","SCRIPT_LOADED_EVENT","DromoReactUploader","dromo","DromoUploader","props","licenseKey","fields","settings","user","rowHooks","forEach","hook","registerRowHook","columnHooks","registerColumnHook","fieldName","callback","onResults","onCancel","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":";;;;;;;;AAsCA,IAAMA,UAAU,GAAG,2DAAnB;AACA,IAAMC,mBAAmB,GAAG,qBAA5B;;IAEqBC;;;AAArB;;;;;AA8CE,sBAAA,GAAe;AACb,YAAKC,KAAL,GAAa,IAAIC,aAAJ,CACX,MAAKC,KAAL,CAAWC,UADA,EAEX,MAAKD,KAAL,CAAWE,MAFA,EAGX,MAAKF,KAAL,CAAWG,QAHA,EAIX,MAAKH,KAAL,CAAWI,IAJA,CAAb;;AAOA,UAAI,MAAKJ,KAAL,CAAWK,QAAf,EAAyB;AACvB,cAAKL,KAAL,CAAWK,QAAX,CAAoBC,OAApB,CAA4B,UAACC,IAAD;AAAA,iBAAU,MAAKT,KAAL,CAAWU,eAAX,CAA2BD,IAA3B,CAAV;AAAA,SAA5B;AACD;;AAED,UAAI,MAAKP,KAAL,CAAWS,WAAf,EAA4B;AAC1B,cAAKT,KAAL,CAAWS,WAAX,CAAuBH,OAAvB,CAA+B,UAACC,IAAD;AAC7B,gBAAKT,KAAL,CAAWY,kBAAX,CAA8BH,IAAI,CAACI,SAAnC,EAA8CJ,IAAI,CAACK,QAAnD;AACD,SAFD;AAGD;;AAED,UAAI,MAAKZ,KAAL,CAAWa,SAAf,EAA0B;AACxB,cAAKf,KAAL,CAAWe,SAAX,CAAqB,MAAKb,KAAL,CAAWa,SAAhC;AACD;;AAED,UAAI,MAAKb,KAAL,CAAWc,QAAf,EAAyB;AACvB,cAAKhB,KAAL,CAAWgB,QAAX,CAAoB,MAAKd,KAAL,CAAWc,QAA/B;AACD;AACF,KAzBD;;AA2BA,cAAA,GAAO;AACL,UAAI,MAAKhB,KAAT,EAAgB,MAAKA,KAAL,CAAWiB,IAAX;AACjB,KAFD;;;AAeD;;;;SArFCC,oBAAA;AAEEC,IAAAA,MAAM,CAACC,gBAAP,CAAwBtB,mBAAxB,EAA6C,KAAKuB,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB,CAA7C;AAEA,QAAMC,aAAa,GAAGC,KAAK,CAACC,IAAN,CACpBC,QAAQ,CAACC,oBAAT,CAA8B,QAA9B,CADoB,EAEpBC,IAFoB,CAEf,UAACC,CAAD;AAAA,aAAOA,CAAC,CAACC,GAAF,KAAUjC,UAAjB;AAAA,KAFe,CAAtB;;AAMA,QAAI,CAAC0B,aAAL,EAAoB;AAClB,UAAMQ,MAAM,GAAGL,QAAQ,CAACM,aAAT,CAAuB,QAAvB,CAAf;AACAD,MAAAA,MAAM,CAACD,GAAP,GAAajC,UAAb;AACAkC,MAAAA,MAAM,CAACE,KAAP,GAAe,IAAf;;AACAF,MAAAA,MAAM,CAACG,MAAP,GAAgB;AACd,YAAMC,KAAK,GAAG,IAAIC,KAAJ,CAAUtC,mBAAV,CAAd;AACAqB,QAAAA,MAAM,CAACkB,aAAP,CAAqBF,KAArB;AACD,OAHD;;AAIAT,MAAAA,QAAQ,CAACY,IAAT,CAAcC,WAAd,CAA0BR,MAA1B;AACD,KATD,MASO;AACL,UAAI,mBAAmBZ,MAAvB,EAA+B;AAG7B,YAAMgB,KAAK,GAAG,IAAIC,KAAJ,CAAUtC,mBAAV,CAAd;AACAqB,QAAAA,MAAM,CAACkB,aAAP,CAAqBF,KAArB;AACD,OALD,MAKO;AAGLZ,QAAAA,aAAa,CAACW,MAAd,GAAuB;AACrB,cAAMC,KAAK,GAAG,IAAIC,KAAJ,CAAUtC,mBAAV,CAAd;AACAqB,UAAAA,MAAM,CAACkB,aAAP,CAAqBF,KAArB;AACD,SAHD;AAID;AACF;AACF;;SAEDK,uBAAA;AACErB,IAAAA,MAAM,CAACsB,mBAAP,CACE3C,mBADF,EAEE,KAAKuB,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB,CAFF;AAID;;SAiCDoB,SAAA;AACE,WACEC,aAAA,SAAA;AACEC,MAAAA,KAAK,EAAE,KAAK1C,KAAL,CAAW0C;AAClBC,MAAAA,SAAS,EAAE,KAAK3C,KAAL,CAAW2C;AACtBC,MAAAA,OAAO,EAAE,KAAK7B;KAHhB,EAKG,KAAKf,KAAL,CAAW6C,QALd,CADF;AASD;;;EAvF6CJ;;;;"}
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 | '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 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 ITableMessage {\n message: string\n level: 'info' | 'warning' | 'error'\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'\n\nexport enum EStepHook {\n // eslint-disable-next-line no-unused-vars\n UPLOAD_STEP = 'UPLOAD_STEP',\n // eslint-disable-next-line no-unused-vars\n REVIEW_STEP = 'REVIEW_STEP'\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 IStepHook {\n type: EStepHook\n callback: (\n uploader: any,\n data: IUploadStepData | IReviewStepData\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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"}
@@ -38,6 +38,15 @@ export interface IDeveloperSettings {
38
38
  displayEncoding?: boolean;
39
39
  styleOverrides?: IDeveloperStyleOverrides;
40
40
  webhookUrl?: string;
41
+ initialData?: any[] | null;
42
+ autoMapHeaders?: boolean;
43
+ delimiter?: string;
44
+ backendOverride?: {
45
+ url: string;
46
+ type: 'AWS' | 'AZURE';
47
+ } | null;
48
+ locale?: TLocaleShorthand;
49
+ templateDownloadFilename?: string;
41
50
  }
42
51
  export interface IDeveloperStyleOverrides {
43
52
  global?: {
@@ -121,6 +130,7 @@ export interface IRowHookInput {
121
130
  row: {
122
131
  [key: string]: {
123
132
  value: any;
133
+ info?: ITableMessage[];
124
134
  };
125
135
  };
126
136
  index: number;
@@ -140,4 +150,23 @@ export interface IResultMetadata {
140
150
  id: string | null;
141
151
  importIdentifier: string;
142
152
  user: IUser;
153
+ rowsWithError: number[];
154
+ }
155
+ export declare type TLocaleShorthand = 'en';
156
+ export declare enum EStepHook {
157
+ UPLOAD_STEP = "UPLOAD_STEP",
158
+ REVIEW_STEP = "REVIEW_STEP"
159
+ }
160
+ export interface IUploadStepData {
161
+ dataPreview: any[][];
162
+ }
163
+ export interface IReviewStepData {
164
+ rawHeaders: string[] | null;
165
+ headerMapping: {
166
+ [header: string]: string | undefined;
167
+ };
168
+ }
169
+ export interface IStepHook {
170
+ type: EStepHook;
171
+ callback: (uploader: any, data: IUploadStepData | IReviewStepData) => void | Promise<void>;
143
172
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dromo-uploader-react",
3
- "version": "1.2.2",
3
+ "version": "1.2.10",
4
4
  "description": "Easy to use data (CSV, TSV, Excel) importer",
5
5
  "author": "ankitgoyal100",
6
6
  "license": "MIT",