@bigbinary/neeto-molecules 1.0.28 → 1.0.29

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.
Files changed (117) hide show
  1. package/dist/BrowserSupport.cjs.js +22 -1221
  2. package/dist/BrowserSupport.cjs.js.map +1 -1
  3. package/dist/BrowserSupport.js +22 -1221
  4. package/dist/BrowserSupport.js.map +1 -1
  5. package/dist/Columns.cjs.js +39 -976
  6. package/dist/Columns.cjs.js.map +1 -1
  7. package/dist/Columns.js +39 -976
  8. package/dist/Columns.js.map +1 -1
  9. package/dist/Container.cjs.js +3 -125
  10. package/dist/Container.cjs.js.map +1 -1
  11. package/dist/Container.js +3 -125
  12. package/dist/Container.js.map +1 -1
  13. package/dist/CustomDomain.cjs.js +156 -6060
  14. package/dist/CustomDomain.cjs.js.map +1 -1
  15. package/dist/CustomDomain.js +156 -6060
  16. package/dist/CustomDomain.js.map +1 -1
  17. package/dist/DateFormat.cjs.js +9 -264
  18. package/dist/DateFormat.cjs.js.map +1 -1
  19. package/dist/DateFormat.js +9 -264
  20. package/dist/DateFormat.js.map +1 -1
  21. package/dist/DateRangeFilter.cjs.js +35 -715
  22. package/dist/DateRangeFilter.cjs.js.map +1 -1
  23. package/dist/DateRangeFilter.js +35 -715
  24. package/dist/DateRangeFilter.js.map +1 -1
  25. package/dist/DynamicVariables.cjs.js +26 -908
  26. package/dist/DynamicVariables.cjs.js.map +1 -1
  27. package/dist/DynamicVariables.js +26 -908
  28. package/dist/DynamicVariables.js.map +1 -1
  29. package/dist/EmailPreview.cjs.js +14 -349
  30. package/dist/EmailPreview.cjs.js.map +1 -1
  31. package/dist/EmailPreview.js +14 -349
  32. package/dist/EmailPreview.js.map +1 -1
  33. package/dist/ErrorPage.cjs.js +13 -541
  34. package/dist/ErrorPage.cjs.js.map +1 -1
  35. package/dist/ErrorPage.js +13 -541
  36. package/dist/ErrorPage.js.map +1 -1
  37. package/dist/Header.cjs.js +13 -513
  38. package/dist/Header.cjs.js.map +1 -1
  39. package/dist/Header.js +13 -513
  40. package/dist/Header.js.map +1 -1
  41. package/dist/IpRestriction.cjs.js +134 -4226
  42. package/dist/IpRestriction.cjs.js.map +1 -1
  43. package/dist/IpRestriction.js +134 -4226
  44. package/dist/IpRestriction.js.map +1 -1
  45. package/dist/KeyboardShortcuts.cjs.js +51 -2129
  46. package/dist/KeyboardShortcuts.cjs.js.map +1 -1
  47. package/dist/KeyboardShortcuts.js +51 -2129
  48. package/dist/KeyboardShortcuts.js.map +1 -1
  49. package/dist/LoginPage.cjs.js +32 -752
  50. package/dist/LoginPage.cjs.js.map +1 -1
  51. package/dist/LoginPage.js +32 -752
  52. package/dist/LoginPage.js.map +1 -1
  53. package/dist/MenuBar.cjs.js +28 -1501
  54. package/dist/MenuBar.cjs.js.map +1 -1
  55. package/dist/MenuBar.js +28 -1501
  56. package/dist/MenuBar.js.map +1 -1
  57. package/dist/NeetoWidget.cjs.js +170 -6756
  58. package/dist/NeetoWidget.cjs.js.map +1 -1
  59. package/dist/NeetoWidget.js +171 -6757
  60. package/dist/NeetoWidget.js.map +1 -1
  61. package/dist/PageLoader.cjs.js +3 -160
  62. package/dist/PageLoader.cjs.js.map +1 -1
  63. package/dist/PageLoader.js +3 -160
  64. package/dist/PageLoader.js.map +1 -1
  65. package/dist/PhoneNumber.cjs.js +64 -2291
  66. package/dist/PhoneNumber.cjs.js.map +1 -1
  67. package/dist/PhoneNumber.js +64 -2291
  68. package/dist/PhoneNumber.js.map +1 -1
  69. package/dist/PublishBlock.cjs.js +19 -512
  70. package/dist/PublishBlock.cjs.js.map +1 -1
  71. package/dist/PublishBlock.js +19 -512
  72. package/dist/PublishBlock.js.map +1 -1
  73. package/dist/Rename.cjs.js +46 -1090
  74. package/dist/Rename.cjs.js.map +1 -1
  75. package/dist/Rename.js +48 -1092
  76. package/dist/Rename.js.map +1 -1
  77. package/dist/ResponsiveDevicePicker.cjs.js +9 -296
  78. package/dist/ResponsiveDevicePicker.cjs.js.map +1 -1
  79. package/dist/ResponsiveDevicePicker.js +9 -296
  80. package/dist/ResponsiveDevicePicker.js.map +1 -1
  81. package/dist/Schedule.cjs.js +356 -7305
  82. package/dist/Schedule.cjs.js.map +1 -1
  83. package/dist/Schedule.js +356 -7305
  84. package/dist/Schedule.js.map +1 -1
  85. package/dist/Scrollable.cjs.js +4 -183
  86. package/dist/Scrollable.cjs.js.map +1 -1
  87. package/dist/Scrollable.js +4 -183
  88. package/dist/Scrollable.js.map +1 -1
  89. package/dist/ShareViaEmail.cjs.js +68 -2481
  90. package/dist/ShareViaEmail.cjs.js.map +1 -1
  91. package/dist/ShareViaEmail.js +68 -2481
  92. package/dist/ShareViaEmail.js.map +1 -1
  93. package/dist/ShareViaLink.cjs.js +57 -1640
  94. package/dist/ShareViaLink.cjs.js.map +1 -1
  95. package/dist/ShareViaLink.js +57 -1640
  96. package/dist/ShareViaLink.js.map +1 -1
  97. package/dist/Sidebar.cjs.js +99 -4367
  98. package/dist/Sidebar.cjs.js.map +1 -1
  99. package/dist/Sidebar.js +99 -4367
  100. package/dist/Sidebar.js.map +1 -1
  101. package/dist/SubHeader.cjs.js +17 -781
  102. package/dist/SubHeader.cjs.js.map +1 -1
  103. package/dist/SubHeader.js +17 -781
  104. package/dist/SubHeader.js.map +1 -1
  105. package/dist/TableWrapper.cjs.js +2 -150
  106. package/dist/TableWrapper.cjs.js.map +1 -1
  107. package/dist/TableWrapper.js +2 -150
  108. package/dist/TableWrapper.js.map +1 -1
  109. package/dist/TimeFormat.cjs.js +1 -44
  110. package/dist/TimeFormat.cjs.js.map +1 -1
  111. package/dist/TimeFormat.js +1 -44
  112. package/dist/TimeFormat.js.map +1 -1
  113. package/dist/TimezoneMismatchModal.cjs.js +18 -905
  114. package/dist/TimezoneMismatchModal.cjs.js.map +1 -1
  115. package/dist/TimezoneMismatchModal.js +18 -905
  116. package/dist/TimezoneMismatchModal.js.map +1 -1
  117. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ShareViaEmail.js","sources":["../src/components/EmailPreview.jsx","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/classnames/index.js","../src/components/ShareViaEmail/constants.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../src/components/ShareViaEmail/EmailBodyEditor.jsx","../src/components/ShareViaEmail/FilePicker.jsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../src/components/ShareViaEmail/FormikDatePicker.jsx","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/papaparse/papaparse.js","../src/components/ShareViaEmail/utils.js","../src/components/ShareViaEmail/Form.jsx","../src/components/ShareViaEmail/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { isNotEmpty } from \"neetocommons/pure\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Typography, Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst EmailPreview = ({\n to,\n from,\n subject,\n body,\n productName,\n actionButtonText,\n logo,\n}) => {\n const { t } = useTranslation();\n\n return (\n <div\n className=\"neeto-ui-border-gray-300 neeto-ui-shadow-m neeto-ui-bg-white flex flex-1 flex-col border\"\n data-cy=\"email-preview-card\"\n >\n <div className=\"neeto-ui-border-gray-300 space-y-3 divide-y divide-gray-200 border-b p-6\">\n <div\n className=\"flex gap-2\"\n data-cy=\"email-send-to-preview\"\n data-testid=\"email-to-block\"\n >\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.to\")}:\n </Typography>\n {isNotEmpty(to) ? (\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {to.join(\", \")}\n </Typography>\n ) : (\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full mt-2 h-2 w-40\" />\n )}\n </div>\n {from && (\n <div className=\"flex items-center gap-2 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.from\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-send-from-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {from}\n </Typography>\n </div>\n )}\n <div className=\"flex items-center gap-2 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.subject\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-subject-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {subject || (\n <span className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40\" />\n )}\n </Typography>\n </div>\n </div>\n <div\n className=\"neeto-ui-text-gray-800 flex flex-1 flex-col justify-between space-y-6 p-6 pr-10 text-base leading-relaxed\"\n data-cy=\"email-body-preview-container\"\n >\n {body ? (\n <EditorContent content={body} />\n ) : (\n <div className=\"space-y-4\">\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-72\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80\" />\n </div>\n )}\n {actionButtonText && (\n <div className=\"mt-6 flex w-full items-center justify-center\">\n <Button className=\"pointer-events-none\" label={actionButtonText} />\n </div>\n )}\n {logo && (\n <img\n alt={t(\"neetoMolecules.emailPreview.logoAltText\")}\n className=\"h-20 w-36 object-cover\"\n data-cy=\"company-logo-preview\"\n src={logo}\n />\n )}\n </div>\n {productName && (\n <div\n className=\"neeto-ui-bg-gray-100 mt-auto p-2\"\n data-testid=\"product-name-block\"\n >\n <Typography\n className=\"neeto-ui-text-gray-600 text-center leading-6\"\n style=\"body3\"\n >\n {t(\"neetoMolecules.emailPreview.poweredBy\")}\n <span className=\"neeto-ui-text-gray-800 font-medium\">\n {productName}\n </span>\n </Typography>\n </div>\n )}\n </div>\n );\n};\n\nexport default EmailPreview;\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export const ONE_MEGABYTE = 1_048_576;\n\nexport const INITIAL_VALUES = {\n sendFromEmail: \"\",\n replyToEmail: \"\",\n notifyEmails: [],\n emailSubject: \"\",\n emailBody: \"\",\n isSendLaterEnabled: false,\n sendEmailDatetime: undefined,\n category: \"email_share\",\n actionButtonText: \"\",\n};\n\nexport const EDITOR_ADDONS = [\n \"emoji\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n\nexport const DIRECT_UPLOAD_URL = \"/api/direct_uploads\";\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import React, { forwardRef } from \"react\";\n\nimport { FormikEditor } from \"neetoeditor\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS, DIRECT_UPLOAD_URL } from \"./constants\";\n\nconst EmailBody = ({ id, showVideoEmbedInEditor }, ref) => {\n const { t } = useTranslation();\n\n return (\n <FormikEditor\n required\n className=\"mb-6\"\n data-cy=\"email-body\"\n id={id}\n label={t(\"neetoMolecules.shareViaEmail.emailBody\")}\n name=\"emailBody\"\n ref={ref}\n uploadEndpoint={DIRECT_UPLOAD_URL}\n addons={\n showVideoEmbedInEditor\n ? [...EDITOR_ADDONS, \"video-embed\"]\n : EDITOR_ADDONS\n }\n />\n );\n};\n\nexport default forwardRef(EmailBody);\n","import React, { useRef } from \"react\";\n\nimport { Upload } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst FilePicker = ({ types = [], onChange }) => {\n const { t } = useTranslation();\n\n const inputRef = useRef();\n\n const accept = types.join(\", \");\n\n const handleInputChange = ({ target }) => {\n if (!target.files) return;\n onChange(target.files);\n\n // This will trigger handleClick when same file is uploaded again.\n inputRef.current.value = \"\";\n handleClick();\n };\n\n const handleClick = () => {\n if (!inputRef.current) return;\n inputRef.current.click();\n };\n\n return (\n <>\n <Button\n icon={Upload}\n label={t(\"neetoMolecules.shareViaEmail.uploadCsv\")}\n size=\"small\"\n style=\"link\"\n tooltipProps={{\n content: t(\"neetoMolecules.shareViaEmail.uploadCsvTooltip\"),\n }}\n onClick={handleClick}\n />\n <input\n accept={accept}\n className=\"hidden\"\n ref={inputRef}\n type=\"file\"\n onChange={handleInputChange}\n />\n </>\n );\n};\n\nexport default FilePicker;\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","import React from \"react\";\n\nimport { useField } from \"formik\";\nimport { DatePicker } from \"neetoui\";\n\nconst FormikDatePicker = ({ name, ...props }) => {\n const [field, meta, { setValue }] = useField(name);\n\n return (\n <DatePicker\n {...field}\n {...meta}\n onChange={date => setValue(date || undefined)}\n {...props}\n data-cy=\"email-share-date-input\"\n />\n );\n};\n\nexport default FormikDatePicker;\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/* @license\nPapa Parse\nv5.4.0\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n\n(function(root, factory)\n{\n\t/* globals define */\n\tif (typeof define === 'function' && define.amd)\n\t{\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t}\n\telse if (typeof module === 'object' && typeof exports !== 'undefined')\n\t{\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t}\n\telse\n\t{\n\t\t// Browser globals (root is window)\n\t\troot.Papa = factory();\n\t}\n\t// in strict mode we cannot access arguments.callee, so we need a named reference to\n\t// stringify the factory method for the blob worker\n\t// eslint-disable-next-line func-name\n}(this, function moduleFactory()\n{\n\t'use strict';\n\n\tvar global = (function() {\n\t\t// alternative method, similar to `Function('return this')()`\n\t\t// but without using `eval` (which is disabled when\n\t\t// using Content Security Policy).\n\n\t\tif (typeof self !== 'undefined') { return self; }\n\t\tif (typeof window !== 'undefined') { return window; }\n\t\tif (typeof global !== 'undefined') { return global; }\n\n\t\t// When running tests none of the above have been defined\n\t\treturn {};\n\t})();\n\n\n\tfunction getWorkerBlob() {\n\t\tvar URL = global.URL || global.webkitURL || null;\n\t\tvar code = moduleFactory.toString();\n\t\treturn Papa.BLOB_URL || (Papa.BLOB_URL = URL.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \", '(', code, ')();'], {type: 'text/javascript'})));\n\t}\n\n\tvar IS_WORKER = !global.document && !!global.postMessage,\n\t\tIS_PAPA_WORKER = global.IS_PAPA_WORKER || false;\n\n\tvar workers = {}, workerIdCounter = 0;\n\n\tvar Papa = {};\n\n\tPapa.parse = CsvToJson;\n\tPapa.unparse = JsonToCsv;\n\n\tPapa.RECORD_SEP = String.fromCharCode(30);\n\tPapa.UNIT_SEP = String.fromCharCode(31);\n\tPapa.BYTE_ORDER_MARK = '\\ufeff';\n\tPapa.BAD_DELIMITERS = ['\\r', '\\n', '\"', Papa.BYTE_ORDER_MARK];\n\tPapa.WORKERS_SUPPORTED = !IS_WORKER && !!global.Worker;\n\tPapa.NODE_STREAM_INPUT = 1;\n\n\t// Configurable chunk sizes for local and remote files, respectively\n\tPapa.LocalChunkSize = 1024 * 1024 * 10;\t// 10 MB\n\tPapa.RemoteChunkSize = 1024 * 1024 * 5;\t// 5 MB\n\tPapa.DefaultDelimiter = ',';\t\t\t// Used if not specified and detection fails\n\n\t// Exposed for testing and development only\n\tPapa.Parser = Parser;\n\tPapa.ParserHandle = ParserHandle;\n\tPapa.NetworkStreamer = NetworkStreamer;\n\tPapa.FileStreamer = FileStreamer;\n\tPapa.StringStreamer = StringStreamer;\n\tPapa.ReadableStreamStreamer = ReadableStreamStreamer;\n\tif (typeof PAPA_BROWSER_CONTEXT === 'undefined') {\n\t\tPapa.DuplexStreamStreamer = DuplexStreamStreamer;\n\t}\n\n\tif (global.jQuery)\n\t{\n\t\tvar $ = global.jQuery;\n\t\t$.fn.parse = function(options)\n\t\t{\n\t\t\tvar config = options.config || {};\n\t\t\tvar queue = [];\n\n\t\t\tthis.each(function(idx)\n\t\t\t{\n\t\t\t\tvar supported = $(this).prop('tagName').toUpperCase() === 'INPUT'\n\t\t\t\t\t\t\t\t&& $(this).attr('type').toLowerCase() === 'file'\n\t\t\t\t\t\t\t\t&& global.FileReader;\n\n\t\t\t\tif (!supported || !this.files || this.files.length === 0)\n\t\t\t\t\treturn true;\t// continue to next input element\n\n\t\t\t\tfor (var i = 0; i < this.files.length; i++)\n\t\t\t\t{\n\t\t\t\t\tqueue.push({\n\t\t\t\t\t\tfile: this.files[i],\n\t\t\t\t\t\tinputElem: this,\n\t\t\t\t\t\tinstanceConfig: $.extend({}, config)\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tparseNextFile();\t// begin parsing\n\t\t\treturn this;\t\t// maintains chainability\n\n\n\t\t\tfunction parseNextFile()\n\t\t\t{\n\t\t\t\tif (queue.length === 0)\n\t\t\t\t{\n\t\t\t\t\tif (isFunction(options.complete))\n\t\t\t\t\t\toptions.complete();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar f = queue[0];\n\n\t\t\t\tif (isFunction(options.before))\n\t\t\t\t{\n\t\t\t\t\tvar returned = options.before(f.file, f.inputElem);\n\n\t\t\t\t\tif (typeof returned === 'object')\n\t\t\t\t\t{\n\t\t\t\t\t\tif (returned.action === 'abort')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terror('AbortError', f.file, f.inputElem, returned.reason);\n\t\t\t\t\t\t\treturn;\t// Aborts all queued files immediately\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (returned.action === 'skip')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfileComplete();\t// parse the next file in the queue, if any\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (typeof returned.config === 'object')\n\t\t\t\t\t\t\tf.instanceConfig = $.extend(f.instanceConfig, returned.config);\n\t\t\t\t\t}\n\t\t\t\t\telse if (returned === 'skip')\n\t\t\t\t\t{\n\t\t\t\t\t\tfileComplete();\t// parse the next file in the queue, if any\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Wrap up the user's complete callback, if any, so that ours also gets executed\n\t\t\t\tvar userCompleteFunc = f.instanceConfig.complete;\n\t\t\t\tf.instanceConfig.complete = function(results)\n\t\t\t\t{\n\t\t\t\t\tif (isFunction(userCompleteFunc))\n\t\t\t\t\t\tuserCompleteFunc(results, f.file, f.inputElem);\n\t\t\t\t\tfileComplete();\n\t\t\t\t};\n\n\t\t\t\tPapa.parse(f.file, f.instanceConfig);\n\t\t\t}\n\n\t\t\tfunction error(name, file, elem, reason)\n\t\t\t{\n\t\t\t\tif (isFunction(options.error))\n\t\t\t\t\toptions.error({name: name}, file, elem, reason);\n\t\t\t}\n\n\t\t\tfunction fileComplete()\n\t\t\t{\n\t\t\t\tqueue.splice(0, 1);\n\t\t\t\tparseNextFile();\n\t\t\t}\n\t\t};\n\t}\n\n\n\tif (IS_PAPA_WORKER)\n\t{\n\t\tglobal.onmessage = workerThreadReceivedMessage;\n\t}\n\n\n\n\n\tfunction CsvToJson(_input, _config)\n\t{\n\t\t_config = _config || {};\n\t\tvar dynamicTyping = _config.dynamicTyping || false;\n\t\tif (isFunction(dynamicTyping)) {\n\t\t\t_config.dynamicTypingFunction = dynamicTyping;\n\t\t\t// Will be filled on first row call\n\t\t\tdynamicTyping = {};\n\t\t}\n\t\t_config.dynamicTyping = dynamicTyping;\n\n\t\t_config.transform = isFunction(_config.transform) ? _config.transform : false;\n\n\t\tif (_config.worker && Papa.WORKERS_SUPPORTED)\n\t\t{\n\t\t\tvar w = newWorker();\n\n\t\t\tw.userStep = _config.step;\n\t\t\tw.userChunk = _config.chunk;\n\t\t\tw.userComplete = _config.complete;\n\t\t\tw.userError = _config.error;\n\n\t\t\t_config.step = isFunction(_config.step);\n\t\t\t_config.chunk = isFunction(_config.chunk);\n\t\t\t_config.complete = isFunction(_config.complete);\n\t\t\t_config.error = isFunction(_config.error);\n\t\t\tdelete _config.worker;\t// prevent infinite loop\n\n\t\t\tw.postMessage({\n\t\t\t\tinput: _input,\n\t\t\t\tconfig: _config,\n\t\t\t\tworkerId: w.id\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tvar streamer = null;\n\t\tif (_input === Papa.NODE_STREAM_INPUT && typeof PAPA_BROWSER_CONTEXT === 'undefined')\n\t\t{\n\t\t\t// create a node Duplex stream for use\n\t\t\t// with .pipe\n\t\t\tstreamer = new DuplexStreamStreamer(_config);\n\t\t\treturn streamer.getStream();\n\t\t}\n\t\telse if (typeof _input === 'string')\n\t\t{\n\t\t\t_input = stripBom(_input);\n\t\t\tif (_config.download)\n\t\t\t\tstreamer = new NetworkStreamer(_config);\n\t\t\telse\n\t\t\t\tstreamer = new StringStreamer(_config);\n\t\t}\n\t\telse if (_input.readable === true && isFunction(_input.read) && isFunction(_input.on))\n\t\t{\n\t\t\tstreamer = new ReadableStreamStreamer(_config);\n\t\t}\n\t\telse if ((global.File && _input instanceof File) || _input instanceof Object)\t// ...Safari. (see issue #106)\n\t\t\tstreamer = new FileStreamer(_config);\n\n\t\treturn streamer.stream(_input);\n\n\t\t// Strip character from UTF-8 BOM encoded files that cause issue parsing the file\n\t\tfunction stripBom(string) {\n\t\t\tif (string.charCodeAt(0) === 0xfeff) {\n\t\t\t\treturn string.slice(1);\n\t\t\t}\n\t\t\treturn string;\n\t\t}\n\t}\n\n\n\n\n\n\n\tfunction JsonToCsv(_input, _config)\n\t{\n\t\t// Default configuration\n\n\t\t/** whether to surround every datum with quotes */\n\t\tvar _quotes = false;\n\n\t\t/** whether to write headers */\n\t\tvar _writeHeader = true;\n\n\t\t/** delimiting character(s) */\n\t\tvar _delimiter = ',';\n\n\t\t/** newline character(s) */\n\t\tvar _newline = '\\r\\n';\n\n\t\t/** quote character */\n\t\tvar _quoteChar = '\"';\n\n\t\t/** escaped quote character, either \"\" or <config.escapeChar>\" */\n\t\tvar _escapedQuote = _quoteChar + _quoteChar;\n\n\t\t/** whether to skip empty lines */\n\t\tvar _skipEmptyLines = false;\n\n\t\t/** the columns (keys) we expect when we unparse objects */\n\t\tvar _columns = null;\n\n\t\t/** whether to prevent outputting cells that can be parsed as formulae by spreadsheet software (Excel and LibreOffice) */\n\t\tvar _escapeFormulae = false;\n\n\t\tunpackConfig();\n\n\t\tvar quoteCharRegex = new RegExp(escapeRegExp(_quoteChar), 'g');\n\n\t\tif (typeof _input === 'string')\n\t\t\t_input = JSON.parse(_input);\n\n\t\tif (Array.isArray(_input))\n\t\t{\n\t\t\tif (!_input.length || Array.isArray(_input[0]))\n\t\t\t\treturn serialize(null, _input, _skipEmptyLines);\n\t\t\telse if (typeof _input[0] === 'object')\n\t\t\t\treturn serialize(_columns || Object.keys(_input[0]), _input, _skipEmptyLines);\n\t\t}\n\t\telse if (typeof _input === 'object')\n\t\t{\n\t\t\tif (typeof _input.data === 'string')\n\t\t\t\t_input.data = JSON.parse(_input.data);\n\n\t\t\tif (Array.isArray(_input.data))\n\t\t\t{\n\t\t\t\tif (!_input.fields)\n\t\t\t\t\t_input.fields = _input.meta && _input.meta.fields || _columns;\n\n\t\t\t\tif (!_input.fields)\n\t\t\t\t\t_input.fields = Array.isArray(_input.data[0])\n\t\t\t\t\t\t? _input.fields\n\t\t\t\t\t\t: typeof _input.data[0] === 'object'\n\t\t\t\t\t\t\t? Object.keys(_input.data[0])\n\t\t\t\t\t\t\t: [];\n\n\t\t\t\tif (!(Array.isArray(_input.data[0])) && typeof _input.data[0] !== 'object')\n\t\t\t\t\t_input.data = [_input.data];\t// handles input like [1,2,3] or ['asdf']\n\t\t\t}\n\n\t\t\treturn serialize(_input.fields || [], _input.data || [], _skipEmptyLines);\n\t\t}\n\n\t\t// Default (any valid paths should return before this)\n\t\tthrow new Error('Unable to serialize unrecognized input');\n\n\n\t\tfunction unpackConfig()\n\t\t{\n\t\t\tif (typeof _config !== 'object')\n\t\t\t\treturn;\n\n\t\t\tif (typeof _config.delimiter === 'string'\n && !Papa.BAD_DELIMITERS.filter(function(value) { return _config.delimiter.indexOf(value) !== -1; }).length)\n\t\t\t{\n\t\t\t\t_delimiter = _config.delimiter;\n\t\t\t}\n\n\t\t\tif (typeof _config.quotes === 'boolean'\n\t\t\t\t|| typeof _config.quotes === 'function'\n\t\t\t\t|| Array.isArray(_config.quotes))\n\t\t\t\t_quotes = _config.quotes;\n\n\t\t\tif (typeof _config.skipEmptyLines === 'boolean'\n\t\t\t\t|| typeof _config.skipEmptyLines === 'string')\n\t\t\t\t_skipEmptyLines = _config.skipEmptyLines;\n\n\t\t\tif (typeof _config.newline === 'string')\n\t\t\t\t_newline = _config.newline;\n\n\t\t\tif (typeof _config.quoteChar === 'string')\n\t\t\t\t_quoteChar = _config.quoteChar;\n\n\t\t\tif (typeof _config.header === 'boolean')\n\t\t\t\t_writeHeader = _config.header;\n\n\t\t\tif (Array.isArray(_config.columns)) {\n\n\t\t\t\tif (_config.columns.length === 0) throw new Error('Option columns is empty');\n\n\t\t\t\t_columns = _config.columns;\n\t\t\t}\n\n\t\t\tif (_config.escapeChar !== undefined) {\n\t\t\t\t_escapedQuote = _config.escapeChar + _quoteChar;\n\t\t\t}\n\n\t\t\tif (typeof _config.escapeFormulae === 'boolean' || _config.escapeFormulae instanceof RegExp) {\n\t\t\t\t_escapeFormulae = _config.escapeFormulae instanceof RegExp ? _config.escapeFormulae : /^[=+\\-@\\t\\r].*$/;\n\t\t\t}\n\t\t}\n\n\t\t/** The double for loop that iterates the data and writes out a CSV string including header row */\n\t\tfunction serialize(fields, data, skipEmptyLines)\n\t\t{\n\t\t\tvar csv = '';\n\n\t\t\tif (typeof fields === 'string')\n\t\t\t\tfields = JSON.parse(fields);\n\t\t\tif (typeof data === 'string')\n\t\t\t\tdata = JSON.parse(data);\n\n\t\t\tvar hasHeader = Array.isArray(fields) && fields.length > 0;\n\t\t\tvar dataKeyedByField = !(Array.isArray(data[0]));\n\n\t\t\t// If there a header row, write it first\n\t\t\tif (hasHeader && _writeHeader)\n\t\t\t{\n\t\t\t\tfor (var i = 0; i < fields.length; i++)\n\t\t\t\t{\n\t\t\t\t\tif (i > 0)\n\t\t\t\t\t\tcsv += _delimiter;\n\t\t\t\t\tcsv += safe(fields[i], i);\n\t\t\t\t}\n\t\t\t\tif (data.length > 0)\n\t\t\t\t\tcsv += _newline;\n\t\t\t}\n\n\t\t\t// Then write out the data\n\t\t\tfor (var row = 0; row < data.length; row++)\n\t\t\t{\n\t\t\t\tvar maxCol = hasHeader ? fields.length : data[row].length;\n\n\t\t\t\tvar emptyLine = false;\n\t\t\t\tvar nullLine = hasHeader ? Object.keys(data[row]).length === 0 : data[row].length === 0;\n\t\t\t\tif (skipEmptyLines && !hasHeader)\n\t\t\t\t{\n\t\t\t\t\temptyLine = skipEmptyLines === 'greedy' ? data[row].join('').trim() === '' : data[row].length === 1 && data[row][0].length === 0;\n\t\t\t\t}\n\t\t\t\tif (skipEmptyLines === 'greedy' && hasHeader) {\n\t\t\t\t\tvar line = [];\n\t\t\t\t\tfor (var c = 0; c < maxCol; c++) {\n\t\t\t\t\t\tvar cx = dataKeyedByField ? fields[c] : c;\n\t\t\t\t\t\tline.push(data[row][cx]);\n\t\t\t\t\t}\n\t\t\t\t\temptyLine = line.join('').trim() === '';\n\t\t\t\t}\n\t\t\t\tif (!emptyLine)\n\t\t\t\t{\n\t\t\t\t\tfor (var col = 0; col < maxCol; col++)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (col > 0 && !nullLine)\n\t\t\t\t\t\t\tcsv += _delimiter;\n\t\t\t\t\t\tvar colIdx = hasHeader && dataKeyedByField ? fields[col] : col;\n\t\t\t\t\t\tcsv += safe(data[row][colIdx], col);\n\t\t\t\t\t}\n\t\t\t\t\tif (row < data.length - 1 && (!skipEmptyLines || (maxCol > 0 && !nullLine)))\n\t\t\t\t\t{\n\t\t\t\t\t\tcsv += _newline;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn csv;\n\t\t}\n\n\t\t/** Encloses a value around quotes if needed (makes a value safe for CSV insertion) */\n\t\tfunction safe(str, col)\n\t\t{\n\t\t\tif (typeof str === 'undefined' || str === null)\n\t\t\t\treturn '';\n\n\t\t\tif (str.constructor === Date)\n\t\t\t\treturn JSON.stringify(str).slice(1, 25);\n\n\t\t\tvar needsQuotes = false;\n\n\t\t\tif (_escapeFormulae && typeof str === \"string\" && _escapeFormulae.test(str)) {\n\t\t\t\tstr = \"'\" + str;\n\t\t\t\tneedsQuotes = true;\n\t\t\t}\n\n\t\t\tvar escapedQuoteStr = str.toString().replace(quoteCharRegex, _escapedQuote);\n\n\t\t\tneedsQuotes = needsQuotes\n\t\t\t\t\t\t\t|| _quotes === true\n\t\t\t\t\t\t\t|| (typeof _quotes === 'function' && _quotes(str, col))\n\t\t\t\t\t\t\t|| (Array.isArray(_quotes) && _quotes[col])\n\t\t\t\t\t\t\t|| hasAny(escapedQuoteStr, Papa.BAD_DELIMITERS)\n\t\t\t\t\t\t\t|| escapedQuoteStr.indexOf(_delimiter) > -1\n\t\t\t\t\t\t\t|| escapedQuoteStr.charAt(0) === ' '\n\t\t\t\t\t\t\t|| escapedQuoteStr.charAt(escapedQuoteStr.length - 1) === ' ';\n\n\t\t\treturn needsQuotes ? _quoteChar + escapedQuoteStr + _quoteChar : escapedQuoteStr;\n\t\t}\n\n\t\tfunction hasAny(str, substrings)\n\t\t{\n\t\t\tfor (var i = 0; i < substrings.length; i++)\n\t\t\t\tif (str.indexOf(substrings[i]) > -1)\n\t\t\t\t\treturn true;\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/** ChunkStreamer is the base prototype for various streamer implementations. */\n\tfunction ChunkStreamer(config)\n\t{\n\t\tthis._handle = null;\n\t\tthis._finished = false;\n\t\tthis._completed = false;\n\t\tthis._halted = false;\n\t\tthis._input = null;\n\t\tthis._baseIndex = 0;\n\t\tthis._partialLine = '';\n\t\tthis._rowCount = 0;\n\t\tthis._start = 0;\n\t\tthis._nextChunk = null;\n\t\tthis.isFirstChunk = true;\n\t\tthis._completeResults = {\n\t\t\tdata: [],\n\t\t\terrors: [],\n\t\t\tmeta: {}\n\t\t};\n\t\treplaceConfig.call(this, config);\n\n\t\tthis.parseChunk = function(chunk, isFakeChunk)\n\t\t{\n\t\t\t// First chunk pre-processing\n\t\t\tif (this.isFirstChunk && isFunction(this._config.beforeFirstChunk))\n\t\t\t{\n\t\t\t\tvar modifiedChunk = this._config.beforeFirstChunk(chunk);\n\t\t\t\tif (modifiedChunk !== undefined)\n\t\t\t\t\tchunk = modifiedChunk;\n\t\t\t}\n\t\t\tthis.isFirstChunk = false;\n\t\t\tthis._halted = false;\n\n\t\t\t// Rejoin the line we likely just split in two by chunking the file\n\t\t\tvar aggregate = this._partialLine + chunk;\n\t\t\tthis._partialLine = '';\n\n\t\t\tvar results = this._handle.parse(aggregate, this._baseIndex, !this._finished);\n\n\t\t\tif (this._handle.paused() || this._handle.aborted()) {\n\t\t\t\tthis._halted = true;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar lastIndex = results.meta.cursor;\n\n\t\t\tif (!this._finished)\n\t\t\t{\n\t\t\t\tthis._partialLine = aggregate.substring(lastIndex - this._baseIndex);\n\t\t\t\tthis._baseIndex = lastIndex;\n\t\t\t}\n\n\t\t\tif (results && results.data)\n\t\t\t\tthis._rowCount += results.data.length;\n\n\t\t\tvar finishedIncludingPreview = this._finished || (this._config.preview && this._rowCount >= this._config.preview);\n\n\t\t\tif (IS_PAPA_WORKER)\n\t\t\t{\n\t\t\t\tglobal.postMessage({\n\t\t\t\t\tresults: results,\n\t\t\t\t\tworkerId: Papa.WORKER_ID,\n\t\t\t\t\tfinished: finishedIncludingPreview\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if (isFunction(this._config.chunk) && !isFakeChunk)\n\t\t\t{\n\t\t\t\tthis._config.chunk(results, this._handle);\n\t\t\t\tif (this._handle.paused() || this._handle.aborted()) {\n\t\t\t\t\tthis._halted = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tresults = undefined;\n\t\t\t\tthis._completeResults = undefined;\n\t\t\t}\n\n\t\t\tif (!this._config.step && !this._config.chunk) {\n\t\t\t\tthis._completeResults.data = this._completeResults.data.concat(results.data);\n\t\t\t\tthis._completeResults.errors = this._completeResults.errors.concat(results.errors);\n\t\t\t\tthis._completeResults.meta = results.meta;\n\t\t\t}\n\n\t\t\tif (!this._completed && finishedIncludingPreview && isFunction(this._config.complete) && (!results || !results.meta.aborted)) {\n\t\t\t\tthis._config.complete(this._completeResults, this._input);\n\t\t\t\tthis._completed = true;\n\t\t\t}\n\n\t\t\tif (!finishedIncludingPreview && (!results || !results.meta.paused))\n\t\t\t\tthis._nextChunk();\n\n\t\t\treturn results;\n\t\t};\n\n\t\tthis._sendError = function(error)\n\t\t{\n\t\t\tif (isFunction(this._config.error))\n\t\t\t\tthis._config.error(error);\n\t\t\telse if (IS_PAPA_WORKER && this._config.error)\n\t\t\t{\n\t\t\t\tglobal.postMessage({\n\t\t\t\t\tworkerId: Papa.WORKER_ID,\n\t\t\t\t\terror: error,\n\t\t\t\t\tfinished: false\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tfunction replaceConfig(config)\n\t\t{\n\t\t\t// Deep-copy the config so we can edit it\n\t\t\tvar configCopy = copy(config);\n\t\t\tconfigCopy.chunkSize = parseInt(configCopy.chunkSize);\t// parseInt VERY important so we don't concatenate strings!\n\t\t\tif (!config.step && !config.chunk)\n\t\t\t\tconfigCopy.chunkSize = null; // disable Range header if not streaming; bad values break IIS - see issue #196\n\t\t\tthis._handle = new ParserHandle(configCopy);\n\t\t\tthis._handle.streamer = this;\n\t\t\tthis._config = configCopy;\t// persist the copy to the caller\n\t\t}\n\t}\n\n\n\tfunction NetworkStreamer(config)\n\t{\n\t\tconfig = config || {};\n\t\tif (!config.chunkSize)\n\t\t\tconfig.chunkSize = Papa.RemoteChunkSize;\n\t\tChunkStreamer.call(this, config);\n\n\t\tvar xhr;\n\n\t\tif (IS_WORKER)\n\t\t{\n\t\t\tthis._nextChunk = function()\n\t\t\t{\n\t\t\t\tthis._readChunk();\n\t\t\t\tthis._chunkLoaded();\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis._nextChunk = function()\n\t\t\t{\n\t\t\t\tthis._readChunk();\n\t\t\t};\n\t\t}\n\n\t\tthis.stream = function(url)\n\t\t{\n\t\t\tthis._input = url;\n\t\t\tthis._nextChunk();\t// Starts streaming\n\t\t};\n\n\t\tthis._readChunk = function()\n\t\t{\n\t\t\tif (this._finished)\n\t\t\t{\n\t\t\t\tthis._chunkLoaded();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\txhr = new XMLHttpRequest();\n\n\t\t\tif (this._config.withCredentials)\n\t\t\t{\n\t\t\t\txhr.withCredentials = this._config.withCredentials;\n\t\t\t}\n\n\t\t\tif (!IS_WORKER)\n\t\t\t{\n\t\t\t\txhr.onload = bindFunction(this._chunkLoaded, this);\n\t\t\t\txhr.onerror = bindFunction(this._chunkError, this);\n\t\t\t}\n\n\t\t\txhr.open(this._config.downloadRequestBody ? 'POST' : 'GET', this._input, !IS_WORKER);\n\t\t\t// Headers can only be set when once the request state is OPENED\n\t\t\tif (this._config.downloadRequestHeaders)\n\t\t\t{\n\t\t\t\tvar headers = this._config.downloadRequestHeaders;\n\n\t\t\t\tfor (var headerName in headers)\n\t\t\t\t{\n\t\t\t\t\txhr.setRequestHeader(headerName, headers[headerName]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this._config.chunkSize)\n\t\t\t{\n\t\t\t\tvar end = this._start + this._config.chunkSize - 1;\t// minus one because byte range is inclusive\n\t\t\t\txhr.setRequestHeader('Range', 'bytes=' + this._start + '-' + end);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\txhr.send(this._config.downloadRequestBody);\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tthis._chunkError(err.message);\n\t\t\t}\n\n\t\t\tif (IS_WORKER && xhr.status === 0)\n\t\t\t\tthis._chunkError();\n\t\t};\n\n\t\tthis._chunkLoaded = function()\n\t\t{\n\t\t\tif (xhr.readyState !== 4)\n\t\t\t\treturn;\n\n\t\t\tif (xhr.status < 200 || xhr.status >= 400)\n\t\t\t{\n\t\t\t\tthis._chunkError();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Use chunckSize as it may be a diference on reponse lentgh due to characters with more than 1 byte\n\t\t\tthis._start += this._config.chunkSize ? this._config.chunkSize : xhr.responseText.length;\n\t\t\tthis._finished = !this._config.chunkSize || this._start >= getFileSize(xhr);\n\t\t\tthis.parseChunk(xhr.responseText);\n\t\t};\n\n\t\tthis._chunkError = function(errorMessage)\n\t\t{\n\t\t\tvar errorText = xhr.statusText || errorMessage;\n\t\t\tthis._sendError(new Error(errorText));\n\t\t};\n\n\t\tfunction getFileSize(xhr)\n\t\t{\n\t\t\tvar contentRange = xhr.getResponseHeader('Content-Range');\n\t\t\tif (contentRange === null) { // no content range, then finish!\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\treturn parseInt(contentRange.substring(contentRange.lastIndexOf('/') + 1));\n\t\t}\n\t}\n\tNetworkStreamer.prototype = Object.create(ChunkStreamer.prototype);\n\tNetworkStreamer.prototype.constructor = NetworkStreamer;\n\n\n\tfunction FileStreamer(config)\n\t{\n\t\tconfig = config || {};\n\t\tif (!config.chunkSize)\n\t\t\tconfig.chunkSize = Papa.LocalChunkSize;\n\t\tChunkStreamer.call(this, config);\n\n\t\tvar reader, slice;\n\n\t\t// FileReader is better than FileReaderSync (even in worker) - see http://stackoverflow.com/q/24708649/1048862\n\t\t// But Firefox is a pill, too - see issue #76: https://github.com/mholt/PapaParse/issues/76\n\t\tvar usingAsyncReader = typeof FileReader !== 'undefined';\t// Safari doesn't consider it a function - see issue #105\n\n\t\tthis.stream = function(file)\n\t\t{\n\t\t\tthis._input = file;\n\t\t\tslice = file.slice || file.webkitSlice || file.mozSlice;\n\n\t\t\tif (usingAsyncReader)\n\t\t\t{\n\t\t\t\treader = new FileReader();\t\t// Preferred method of reading files, even in workers\n\t\t\t\treader.onload = bindFunction(this._chunkLoaded, this);\n\t\t\t\treader.onerror = bindFunction(this._chunkError, this);\n\t\t\t}\n\t\t\telse\n\t\t\t\treader = new FileReaderSync();\t// Hack for running in a web worker in Firefox\n\n\t\t\tthis._nextChunk();\t// Starts streaming\n\t\t};\n\n\t\tthis._nextChunk = function()\n\t\t{\n\t\t\tif (!this._finished && (!this._config.preview || this._rowCount < this._config.preview))\n\t\t\t\tthis._readChunk();\n\t\t};\n\n\t\tthis._readChunk = function()\n\t\t{\n\t\t\tvar input = this._input;\n\t\t\tif (this._config.chunkSize)\n\t\t\t{\n\t\t\t\tvar end = Math.min(this._start + this._config.chunkSize, this._input.size);\n\t\t\t\tinput = slice.call(input, this._start, end);\n\t\t\t}\n\t\t\tvar txt = reader.readAsText(input, this._config.encoding);\n\t\t\tif (!usingAsyncReader)\n\t\t\t\tthis._chunkLoaded({ target: { result: txt } });\t// mimic the async signature\n\t\t};\n\n\t\tthis._chunkLoaded = function(event)\n\t\t{\n\t\t\t// Very important to increment start each time before handling results\n\t\t\tthis._start += this._config.chunkSize;\n\t\t\tthis._finished = !this._config.chunkSize || this._start >= this._input.size;\n\t\t\tthis.parseChunk(event.target.result);\n\t\t};\n\n\t\tthis._chunkError = function()\n\t\t{\n\t\t\tthis._sendError(reader.error);\n\t\t};\n\n\t}\n\tFileStreamer.prototype = Object.create(ChunkStreamer.prototype);\n\tFileStreamer.prototype.constructor = FileStreamer;\n\n\n\tfunction StringStreamer(config)\n\t{\n\t\tconfig = config || {};\n\t\tChunkStreamer.call(this, config);\n\n\t\tvar remaining;\n\t\tthis.stream = function(s)\n\t\t{\n\t\t\tremaining = s;\n\t\t\treturn this._nextChunk();\n\t\t};\n\t\tthis._nextChunk = function()\n\t\t{\n\t\t\tif (this._finished) return;\n\t\t\tvar size = this._config.chunkSize;\n\t\t\tvar chunk;\n\t\t\tif(size) {\n\t\t\t\tchunk = remaining.substring(0, size);\n\t\t\t\tremaining = remaining.substring(size);\n\t\t\t} else {\n\t\t\t\tchunk = remaining;\n\t\t\t\tremaining = '';\n\t\t\t}\n\t\t\tthis._finished = !remaining;\n\t\t\treturn this.parseChunk(chunk);\n\t\t};\n\t}\n\tStringStreamer.prototype = Object.create(StringStreamer.prototype);\n\tStringStreamer.prototype.constructor = StringStreamer;\n\n\n\tfunction ReadableStreamStreamer(config)\n\t{\n\t\tconfig = config || {};\n\n\t\tChunkStreamer.call(this, config);\n\n\t\tvar queue = [];\n\t\tvar parseOnData = true;\n\t\tvar streamHasEnded = false;\n\n\t\tthis.pause = function()\n\t\t{\n\t\t\tChunkStreamer.prototype.pause.apply(this, arguments);\n\t\t\tthis._input.pause();\n\t\t};\n\n\t\tthis.resume = function()\n\t\t{\n\t\t\tChunkStreamer.prototype.resume.apply(this, arguments);\n\t\t\tthis._input.resume();\n\t\t};\n\n\t\tthis.stream = function(stream)\n\t\t{\n\t\t\tthis._input = stream;\n\n\t\t\tthis._input.on('data', this._streamData);\n\t\t\tthis._input.on('end', this._streamEnd);\n\t\t\tthis._input.on('error', this._streamError);\n\t\t};\n\n\t\tthis._checkIsFinished = function()\n\t\t{\n\t\t\tif (streamHasEnded && queue.length === 1) {\n\t\t\t\tthis._finished = true;\n\t\t\t}\n\t\t};\n\n\t\tthis._nextChunk = function()\n\t\t{\n\t\t\tthis._checkIsFinished();\n\t\t\tif (queue.length)\n\t\t\t{\n\t\t\t\tthis.parseChunk(queue.shift());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tparseOnData = true;\n\t\t\t}\n\t\t};\n\n\t\tthis._streamData = bindFunction(function(chunk)\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\tqueue.push(typeof chunk === 'string' ? chunk : chunk.toString(this._config.encoding));\n\n\t\t\t\tif (parseOnData)\n\t\t\t\t{\n\t\t\t\t\tparseOnData = false;\n\t\t\t\t\tthis._checkIsFinished();\n\t\t\t\t\tthis.parseChunk(queue.shift());\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (error)\n\t\t\t{\n\t\t\t\tthis._streamError(error);\n\t\t\t}\n\t\t}, this);\n\n\t\tthis._streamError = bindFunction(function(error)\n\t\t{\n\t\t\tthis._streamCleanUp();\n\t\t\tthis._sendError(error);\n\t\t}, this);\n\n\t\tthis._streamEnd = bindFunction(function()\n\t\t{\n\t\t\tthis._streamCleanUp();\n\t\t\tstreamHasEnded = true;\n\t\t\tthis._streamData('');\n\t\t}, this);\n\n\t\tthis._streamCleanUp = bindFunction(function()\n\t\t{\n\t\t\tthis._input.removeListener('data', this._streamData);\n\t\t\tthis._input.removeListener('end', this._streamEnd);\n\t\t\tthis._input.removeListener('error', this._streamError);\n\t\t}, this);\n\t}\n\tReadableStreamStreamer.prototype = Object.create(ChunkStreamer.prototype);\n\tReadableStreamStreamer.prototype.constructor = ReadableStreamStreamer;\n\n\n\tfunction DuplexStreamStreamer(_config) {\n\t\tvar Duplex = require('stream').Duplex;\n\t\tvar config = copy(_config);\n\t\tvar parseOnWrite = true;\n\t\tvar writeStreamHasFinished = false;\n\t\tvar parseCallbackQueue = [];\n\t\tvar stream = null;\n\n\t\tthis._onCsvData = function(results)\n\t\t{\n\t\t\tvar data = results.data;\n\t\t\tif (!stream.push(data) && !this._handle.paused()) {\n\t\t\t\t// the writeable consumer buffer has filled up\n\t\t\t\t// so we need to pause until more items\n\t\t\t\t// can be processed\n\t\t\t\tthis._handle.pause();\n\t\t\t}\n\t\t};\n\n\t\tthis._onCsvComplete = function()\n\t\t{\n\t\t\t// node will finish the read stream when\n\t\t\t// null is pushed\n\t\t\tstream.push(null);\n\t\t};\n\n\t\tconfig.step = bindFunction(this._onCsvData, this);\n\t\tconfig.complete = bindFunction(this._onCsvComplete, this);\n\t\tChunkStreamer.call(this, config);\n\n\t\tthis._nextChunk = function()\n\t\t{\n\t\t\tif (writeStreamHasFinished && parseCallbackQueue.length === 1) {\n\t\t\t\tthis._finished = true;\n\t\t\t}\n\t\t\tif (parseCallbackQueue.length) {\n\t\t\t\tparseCallbackQueue.shift()();\n\t\t\t} else {\n\t\t\t\tparseOnWrite = true;\n\t\t\t}\n\t\t};\n\n\t\tthis._addToParseQueue = function(chunk, callback)\n\t\t{\n\t\t\t// add to queue so that we can indicate\n\t\t\t// completion via callback\n\t\t\t// node will automatically pause the incoming stream\n\t\t\t// when too many items have been added without their\n\t\t\t// callback being invoked\n\t\t\tparseCallbackQueue.push(bindFunction(function() {\n\t\t\t\tthis.parseChunk(typeof chunk === 'string' ? chunk : chunk.toString(config.encoding));\n\t\t\t\tif (isFunction(callback)) {\n\t\t\t\t\treturn callback();\n\t\t\t\t}\n\t\t\t}, this));\n\t\t\tif (parseOnWrite) {\n\t\t\t\tparseOnWrite = false;\n\t\t\t\tthis._nextChunk();\n\t\t\t}\n\t\t};\n\n\t\tthis._onRead = function()\n\t\t{\n\t\t\tif (this._handle.paused()) {\n\t\t\t\t// the writeable consumer can handle more data\n\t\t\t\t// so resume the chunk parsing\n\t\t\t\tthis._handle.resume();\n\t\t\t}\n\t\t};\n\n\t\tthis._onWrite = function(chunk, encoding, callback)\n\t\t{\n\t\t\tthis._addToParseQueue(chunk, callback);\n\t\t};\n\n\t\tthis._onWriteComplete = function()\n\t\t{\n\t\t\twriteStreamHasFinished = true;\n\t\t\t// have to write empty string\n\t\t\t// so parser knows its done\n\t\t\tthis._addToParseQueue('');\n\t\t};\n\n\t\tthis.getStream = function()\n\t\t{\n\t\t\treturn stream;\n\t\t};\n\t\tstream = new Duplex({\n\t\t\treadableObjectMode: true,\n\t\t\tdecodeStrings: false,\n\t\t\tread: bindFunction(this._onRead, this),\n\t\t\twrite: bindFunction(this._onWrite, this)\n\t\t});\n\t\tstream.once('finish', bindFunction(this._onWriteComplete, this));\n\t}\n\tif (typeof PAPA_BROWSER_CONTEXT === 'undefined') {\n\t\tDuplexStreamStreamer.prototype = Object.create(ChunkStreamer.prototype);\n\t\tDuplexStreamStreamer.prototype.constructor = DuplexStreamStreamer;\n\t}\n\n\n\t// Use one ParserHandle per entire CSV file or string\n\tfunction ParserHandle(_config)\n\t{\n\t\t// One goal is to minimize the use of regular expressions...\n\t\tvar MAX_FLOAT = Math.pow(2, 53);\n\t\tvar MIN_FLOAT = -MAX_FLOAT;\n\t\tvar FLOAT = /^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/;\n\t\tvar ISO_DATE = /^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/;\n\t\tvar self = this;\n\t\tvar _stepCounter = 0;\t// Number of times step was called (number of rows parsed)\n\t\tvar _rowCounter = 0;\t// Number of rows that have been parsed so far\n\t\tvar _input;\t\t\t\t// The input being parsed\n\t\tvar _parser;\t\t\t// The core parser being used\n\t\tvar _paused = false;\t// Whether we are paused or not\n\t\tvar _aborted = false;\t// Whether the parser has aborted or not\n\t\tvar _delimiterError;\t// Temporary state between delimiter detection and processing results\n\t\tvar _fields = [];\t\t// Fields are from the header row of the input, if there is one\n\t\tvar _results = {\t\t// The last results returned from the parser\n\t\t\tdata: [],\n\t\t\terrors: [],\n\t\t\tmeta: {}\n\t\t};\n\n\t\tif (isFunction(_config.step))\n\t\t{\n\t\t\tvar userStep = _config.step;\n\t\t\t_config.step = function(results)\n\t\t\t{\n\t\t\t\t_results = results;\n\n\t\t\t\tif (needsHeaderRow())\n\t\t\t\t\tprocessResults();\n\t\t\t\telse\t// only call user's step function after header row\n\t\t\t\t{\n\t\t\t\t\tprocessResults();\n\n\t\t\t\t\t// It's possbile that this line was empty and there's no row here after all\n\t\t\t\t\tif (_results.data.length === 0)\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t_stepCounter += results.data.length;\n\t\t\t\t\tif (_config.preview && _stepCounter > _config.preview)\n\t\t\t\t\t\t_parser.abort();\n\t\t\t\t\telse {\n\t\t\t\t\t\t_results.data = _results.data[0];\n\t\t\t\t\t\tuserStep(_results, self);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Parses input. Most users won't need, and shouldn't mess with, the baseIndex\n\t\t * and ignoreLastRow parameters. They are used by streamers (wrapper functions)\n\t\t * when an input comes in multiple chunks, like from a file.\n\t\t */\n\t\tthis.parse = function(input, baseIndex, ignoreLastRow)\n\t\t{\n\t\t\tvar quoteChar = _config.quoteChar || '\"';\n\t\t\tif (!_config.newline)\n\t\t\t\t_config.newline = guessLineEndings(input, quoteChar);\n\n\t\t\t_delimiterError = false;\n\t\t\tif (!_config.delimiter)\n\t\t\t{\n\t\t\t\tvar delimGuess = guessDelimiter(input, _config.newline, _config.skipEmptyLines, _config.comments, _config.delimitersToGuess);\n\t\t\t\tif (delimGuess.successful)\n\t\t\t\t\t_config.delimiter = delimGuess.bestDelimiter;\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t_delimiterError = true;\t// add error after parsing (otherwise it would be overwritten)\n\t\t\t\t\t_config.delimiter = Papa.DefaultDelimiter;\n\t\t\t\t}\n\t\t\t\t_results.meta.delimiter = _config.delimiter;\n\t\t\t}\n\t\t\telse if(isFunction(_config.delimiter))\n\t\t\t{\n\t\t\t\t_config.delimiter = _config.delimiter(input);\n\t\t\t\t_results.meta.delimiter = _config.delimiter;\n\t\t\t}\n\n\t\t\tvar parserConfig = copy(_config);\n\t\t\tif (_config.preview && _config.header)\n\t\t\t\tparserConfig.preview++;\t// to compensate for header row\n\n\t\t\t_input = input;\n\t\t\t_parser = new Parser(parserConfig);\n\t\t\t_results = _parser.parse(_input, baseIndex, ignoreLastRow);\n\t\t\tprocessResults();\n\t\t\treturn _paused ? { meta: { paused: true } } : (_results || { meta: { paused: false } });\n\t\t};\n\n\t\tthis.paused = function()\n\t\t{\n\t\t\treturn _paused;\n\t\t};\n\n\t\tthis.pause = function()\n\t\t{\n\t\t\t_paused = true;\n\t\t\t_parser.abort();\n\n\t\t\t// If it is streaming via \"chunking\", the reader will start appending correctly already so no need to substring,\n\t\t\t// otherwise we can get duplicate content within a row\n\t\t\t_input = isFunction(_config.chunk) ? \"\" : _input.substring(_parser.getCharIndex());\n\t\t};\n\n\t\tthis.resume = function()\n\t\t{\n\t\t\tif(self.streamer._halted) {\n\t\t\t\t_paused = false;\n\t\t\t\tself.streamer.parseChunk(_input, true);\n\t\t\t} else {\n\t\t\t\t// Bugfix: #636 In case the processing hasn't halted yet\n\t\t\t\t// wait for it to halt in order to resume\n\t\t\t\tsetTimeout(self.resume, 3);\n\t\t\t}\n\t\t};\n\n\t\tthis.aborted = function()\n\t\t{\n\t\t\treturn _aborted;\n\t\t};\n\n\t\tthis.abort = function()\n\t\t{\n\t\t\t_aborted = true;\n\t\t\t_parser.abort();\n\t\t\t_results.meta.aborted = true;\n\t\t\tif (isFunction(_config.complete))\n\t\t\t\t_config.complete(_results);\n\t\t\t_input = '';\n\t\t};\n\n\t\tfunction testEmptyLine(s) {\n\t\t\treturn _config.skipEmptyLines === 'greedy' ? s.join('').trim() === '' : s.length === 1 && s[0].length === 0;\n\t\t}\n\n\t\tfunction testFloat(s) {\n\t\t\tif (FLOAT.test(s)) {\n\t\t\t\tvar floatValue = parseFloat(s);\n\t\t\t\tif (floatValue > MIN_FLOAT && floatValue < MAX_FLOAT) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction processResults()\n\t\t{\n\t\t\tif (_results && _delimiterError)\n\t\t\t{\n\t\t\t\taddError('Delimiter', 'UndetectableDelimiter', 'Unable to auto-detect delimiting character; defaulted to \\'' + Papa.DefaultDelimiter + '\\'');\n\t\t\t\t_delimiterError = false;\n\t\t\t}\n\n\t\t\tif (_config.skipEmptyLines)\n\t\t\t{\n\t\t\t\t_results.data = _results.data.filter(function(d) {\n\t\t\t\t\treturn !testEmptyLine(d);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (needsHeaderRow())\n\t\t\t\tfillHeaderFields();\n\n\t\t\treturn applyHeaderAndDynamicTypingAndTransformation();\n\t\t}\n\n\t\tfunction needsHeaderRow()\n\t\t{\n\t\t\treturn _config.header && _fields.length === 0;\n\t\t}\n\n\t\tfunction fillHeaderFields()\n\t\t{\n\t\t\tif (!_results)\n\t\t\t\treturn;\n\n\t\t\tfunction addHeader(header, i)\n\t\t\t{\n\t\t\t\tif (isFunction(_config.transformHeader))\n\t\t\t\t\theader = _config.transformHeader(header, i);\n\n\t\t\t\t_fields.push(header);\n\t\t\t}\n\n\t\t\tif (Array.isArray(_results.data[0]))\n\t\t\t{\n\t\t\t\tfor (var i = 0; needsHeaderRow() && i < _results.data.length; i++)\n\t\t\t\t\t_results.data[i].forEach(addHeader);\n\n\t\t\t\t_results.data.splice(0, 1);\n\t\t\t}\n\t\t\t// if _results.data[0] is not an array, we are in a step where _results.data is the row.\n\t\t\telse\n\t\t\t\t_results.data.forEach(addHeader);\n\t\t}\n\n\t\tfunction shouldApplyDynamicTyping(field) {\n\t\t\t// Cache function values to avoid calling it for each row\n\t\t\tif (_config.dynamicTypingFunction && _config.dynamicTyping[field] === undefined) {\n\t\t\t\t_config.dynamicTyping[field] = _config.dynamicTypingFunction(field);\n\t\t\t}\n\t\t\treturn (_config.dynamicTyping[field] || _config.dynamicTyping) === true;\n\t\t}\n\n\t\tfunction parseDynamic(field, value)\n\t\t{\n\t\t\tif (shouldApplyDynamicTyping(field))\n\t\t\t{\n\t\t\t\tif (value === 'true' || value === 'TRUE')\n\t\t\t\t\treturn true;\n\t\t\t\telse if (value === 'false' || value === 'FALSE')\n\t\t\t\t\treturn false;\n\t\t\t\telse if (testFloat(value))\n\t\t\t\t\treturn parseFloat(value);\n\t\t\t\telse if (ISO_DATE.test(value))\n\t\t\t\t\treturn new Date(value);\n\t\t\t\telse\n\t\t\t\t\treturn (value === '' ? null : value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\n\t\tfunction applyHeaderAndDynamicTypingAndTransformation()\n\t\t{\n\t\t\tif (!_results || (!_config.header && !_config.dynamicTyping && !_config.transform))\n\t\t\t\treturn _results;\n\n\t\t\tfunction processRow(rowSource, i)\n\t\t\t{\n\t\t\t\tvar row = _config.header ? {} : [];\n\n\t\t\t\tvar j;\n\t\t\t\tfor (j = 0; j < rowSource.length; j++)\n\t\t\t\t{\n\t\t\t\t\tvar field = j;\n\t\t\t\t\tvar value = rowSource[j];\n\n\t\t\t\t\tif (_config.header)\n\t\t\t\t\t\tfield = j >= _fields.length ? '__parsed_extra' : _fields[j];\n\n\t\t\t\t\tif (_config.transform)\n\t\t\t\t\t\tvalue = _config.transform(value,field);\n\n\t\t\t\t\tvalue = parseDynamic(field, value);\n\n\t\t\t\t\tif (field === '__parsed_extra')\n\t\t\t\t\t{\n\t\t\t\t\t\trow[field] = row[field] || [];\n\t\t\t\t\t\trow[field].push(value);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\trow[field] = value;\n\t\t\t\t}\n\n\n\t\t\t\tif (_config.header)\n\t\t\t\t{\n\t\t\t\t\tif (j > _fields.length)\n\t\t\t\t\t\taddError('FieldMismatch', 'TooManyFields', 'Too many fields: expected ' + _fields.length + ' fields but parsed ' + j, _rowCounter + i);\n\t\t\t\t\telse if (j < _fields.length)\n\t\t\t\t\t\taddError('FieldMismatch', 'TooFewFields', 'Too few fields: expected ' + _fields.length + ' fields but parsed ' + j, _rowCounter + i);\n\t\t\t\t}\n\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\tvar incrementBy = 1;\n\t\t\tif (!_results.data.length || Array.isArray(_results.data[0]))\n\t\t\t{\n\t\t\t\t_results.data = _results.data.map(processRow);\n\t\t\t\tincrementBy = _results.data.length;\n\t\t\t}\n\t\t\telse\n\t\t\t\t_results.data = processRow(_results.data, 0);\n\n\n\t\t\tif (_config.header && _results.meta)\n\t\t\t\t_results.meta.fields = _fields;\n\n\t\t\t_rowCounter += incrementBy;\n\t\t\treturn _results;\n\t\t}\n\n\t\tfunction guessDelimiter(input, newline, skipEmptyLines, comments, delimitersToGuess) {\n\t\t\tvar bestDelim, bestDelta, fieldCountPrevRow, maxFieldCount;\n\n\t\t\tdelimitersToGuess = delimitersToGuess || [',', '\\t', '|', ';', Papa.RECORD_SEP, Papa.UNIT_SEP];\n\n\t\t\tfor (var i = 0; i < delimitersToGuess.length; i++) {\n\t\t\t\tvar delim = delimitersToGuess[i];\n\t\t\t\tvar delta = 0, avgFieldCount = 0, emptyLinesCount = 0;\n\t\t\t\tfieldCountPrevRow = undefined;\n\n\t\t\t\tvar preview = new Parser({\n\t\t\t\t\tcomments: comments,\n\t\t\t\t\tdelimiter: delim,\n\t\t\t\t\tnewline: newline,\n\t\t\t\t\tpreview: 10\n\t\t\t\t}).parse(input);\n\n\t\t\t\tfor (var j = 0; j < preview.data.length; j++) {\n\t\t\t\t\tif (skipEmptyLines && testEmptyLine(preview.data[j])) {\n\t\t\t\t\t\temptyLinesCount++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tvar fieldCount = preview.data[j].length;\n\t\t\t\t\tavgFieldCount += fieldCount;\n\n\t\t\t\t\tif (typeof fieldCountPrevRow === 'undefined') {\n\t\t\t\t\t\tfieldCountPrevRow = fieldCount;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\telse if (fieldCount > 0) {\n\t\t\t\t\t\tdelta += Math.abs(fieldCount - fieldCountPrevRow);\n\t\t\t\t\t\tfieldCountPrevRow = fieldCount;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (preview.data.length > 0)\n\t\t\t\t\tavgFieldCount /= (preview.data.length - emptyLinesCount);\n\n\t\t\t\tif ((typeof bestDelta === 'undefined' || delta <= bestDelta)\n\t\t\t\t\t&& (typeof maxFieldCount === 'undefined' || avgFieldCount > maxFieldCount) && avgFieldCount > 1.99) {\n\t\t\t\t\tbestDelta = delta;\n\t\t\t\t\tbestDelim = delim;\n\t\t\t\t\tmaxFieldCount = avgFieldCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_config.delimiter = bestDelim;\n\n\t\t\treturn {\n\t\t\t\tsuccessful: !!bestDelim,\n\t\t\t\tbestDelimiter: bestDelim\n\t\t\t};\n\t\t}\n\n\t\tfunction guessLineEndings(input, quoteChar)\n\t\t{\n\t\t\tinput = input.substring(0, 1024 * 1024);\t// max length 1 MB\n\t\t\t// Replace all the text inside quotes\n\t\t\tvar re = new RegExp(escapeRegExp(quoteChar) + '([^]*?)' + escapeRegExp(quoteChar), 'gm');\n\t\t\tinput = input.replace(re, '');\n\n\t\t\tvar r = input.split('\\r');\n\n\t\t\tvar n = input.split('\\n');\n\n\t\t\tvar nAppearsFirst = (n.length > 1 && n[0].length < r[0].length);\n\n\t\t\tif (r.length === 1 || nAppearsFirst)\n\t\t\t\treturn '\\n';\n\n\t\t\tvar numWithN = 0;\n\t\t\tfor (var i = 0; i < r.length; i++)\n\t\t\t{\n\t\t\t\tif (r[i][0] === '\\n')\n\t\t\t\t\tnumWithN++;\n\t\t\t}\n\n\t\t\treturn numWithN >= r.length / 2 ? '\\r\\n' : '\\r';\n\t\t}\n\n\t\tfunction addError(type, code, msg, row)\n\t\t{\n\t\t\tvar error = {\n\t\t\t\ttype: type,\n\t\t\t\tcode: code,\n\t\t\t\tmessage: msg\n\t\t\t};\n\t\t\tif(row !== undefined) {\n\t\t\t\terror.row = row;\n\t\t\t}\n\t\t\t_results.errors.push(error);\n\t\t}\n\t}\n\n\t/** https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions */\n\tfunction escapeRegExp(string)\n\t{\n\t\treturn string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n\t}\n\n\t/** The core parser implements speedy and correct CSV parsing */\n\tfunction Parser(config)\n\t{\n\t\t// Unpack the config object\n\t\tconfig = config || {};\n\t\tvar delim = config.delimiter;\n\t\tvar newline = config.newline;\n\t\tvar comments = config.comments;\n\t\tvar step = config.step;\n\t\tvar preview = config.preview;\n\t\tvar fastMode = config.fastMode;\n\t\tvar quoteChar;\n\t\tif (config.quoteChar === undefined || config.quoteChar === null) {\n\t\t\tquoteChar = '\"';\n\t\t} else {\n\t\t\tquoteChar = config.quoteChar;\n\t\t}\n\t\tvar escapeChar = quoteChar;\n\t\tif (config.escapeChar !== undefined) {\n\t\t\tescapeChar = config.escapeChar;\n\t\t}\n\n\t\t// Delimiter must be valid\n\t\tif (typeof delim !== 'string'\n\t\t\t|| Papa.BAD_DELIMITERS.indexOf(delim) > -1)\n\t\t\tdelim = ',';\n\n\t\t// Comment character must be valid\n\t\tif (comments === delim)\n\t\t\tthrow new Error('Comment character same as delimiter');\n\t\telse if (comments === true)\n\t\t\tcomments = '#';\n\t\telse if (typeof comments !== 'string'\n\t\t\t|| Papa.BAD_DELIMITERS.indexOf(comments) > -1)\n\t\t\tcomments = false;\n\n\t\t// Newline must be valid: \\r, \\n, or \\r\\n\n\t\tif (newline !== '\\n' && newline !== '\\r' && newline !== '\\r\\n')\n\t\t\tnewline = '\\n';\n\n\t\t// We're gonna need these at the Parser scope\n\t\tvar cursor = 0;\n\t\tvar aborted = false;\n\n\t\tthis.parse = function(input, baseIndex, ignoreLastRow)\n\t\t{\n\t\t\t// For some reason, in Chrome, this speeds things up (!?)\n\t\t\tif (typeof input !== 'string')\n\t\t\t\tthrow new Error('Input must be a string');\n\n\t\t\t// We don't need to compute some of these every time parse() is called,\n\t\t\t// but having them in a more local scope seems to perform better\n\t\t\tvar inputLen = input.length,\n\t\t\t\tdelimLen = delim.length,\n\t\t\t\tnewlineLen = newline.length,\n\t\t\t\tcommentsLen = comments.length;\n\t\t\tvar stepIsFunction = isFunction(step);\n\n\t\t\t// Establish starting state\n\t\t\tcursor = 0;\n\t\t\tvar data = [], errors = [], row = [], lastCursor = 0;\n\n\t\t\tif (!input)\n\t\t\t\treturn returnable();\n\n\t\t\t// Rename headers if there are duplicates\n\t\t\tif (config.header)\n\t\t\t{\n\t\t\t\tvar firstLine = input.split(newline)[0];\n\t\t\t\tvar headers = firstLine.split(delim);\n\t\t\t\tvar separator = '_';\n\t\t\t\tvar headerMap = [];\n\t\t\t\tvar headerCount = {};\n\t\t\t\tvar duplicateHeaders = false;\n\n\t\t\t\tfor (var j in headers) {\n\t\t\t\t\tvar header = headers[j];\n\t\t\t\t\tif (isFunction(config.transformHeader))\n\t\t\t\t\t\theader = config.transformHeader(header, j);\n\t\t\t\t\tvar headerName = header;\n\n\t\t\t\t\tvar count = headerCount[header] || 0;\n\t\t\t\t\tif (count > 0) {\n\t\t\t\t\t\tduplicateHeaders = true;\n\t\t\t\t\t\theaderName = header + separator + count;\n\t\t\t\t\t}\n\t\t\t\t\theaderCount[header] = count + 1;\n\n\t\t\t\t\theaderMap.push(headerName);\n\t\t\t\t}\n\t\t\t\tif (duplicateHeaders) {\n\t\t\t\t\tvar editedInput = input.split(newline);\n\t\t\t\t\teditedInput[0] = headerMap.join(delim);\n\t\t\t\t\tinput = editedInput.join(newline);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (fastMode || (fastMode !== false && input.indexOf(quoteChar) === -1))\n\t\t\t{\n\t\t\t\tvar rows = input.split(newline);\n\t\t\t\tfor (var i = 0; i < rows.length; i++)\n\t\t\t\t{\n\t\t\t\t\trow = rows[i];\n\t\t\t\t\tcursor += row.length;\n\t\t\t\t\tif (i !== rows.length - 1)\n\t\t\t\t\t\tcursor += newline.length;\n\t\t\t\t\telse if (ignoreLastRow)\n\t\t\t\t\t\treturn returnable();\n\t\t\t\t\tif (comments && row.substring(0, commentsLen) === comments)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\tif (stepIsFunction)\n\t\t\t\t\t{\n\t\t\t\t\t\tdata = [];\n\t\t\t\t\t\tpushRow(row.split(delim));\n\t\t\t\t\t\tdoStep();\n\t\t\t\t\t\tif (aborted)\n\t\t\t\t\t\t\treturn returnable();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tpushRow(row.split(delim));\n\t\t\t\t\tif (preview && i >= preview)\n\t\t\t\t\t{\n\t\t\t\t\t\tdata = data.slice(0, preview);\n\t\t\t\t\t\treturn returnable(true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnable();\n\t\t\t}\n\n\t\t\tvar nextDelim = input.indexOf(delim, cursor);\n\t\t\tvar nextNewline = input.indexOf(newline, cursor);\n\t\t\tvar quoteCharRegex = new RegExp(escapeRegExp(escapeChar) + escapeRegExp(quoteChar), 'g');\n\t\t\tvar quoteSearch = input.indexOf(quoteChar, cursor);\n\n\t\t\t// Parser loop\n\t\t\tfor (;;)\n\t\t\t{\n\t\t\t\t// Field has opening quote\n\t\t\t\tif (input[cursor] === quoteChar)\n\t\t\t\t{\n\t\t\t\t\t// Start our search for the closing quote where the cursor is\n\t\t\t\t\tquoteSearch = cursor;\n\n\t\t\t\t\t// Skip the opening quote\n\t\t\t\t\tcursor++;\n\n\t\t\t\t\tfor (;;)\n\t\t\t\t\t{\n\t\t\t\t\t\t// Find closing quote\n\t\t\t\t\t\tquoteSearch = input.indexOf(quoteChar, quoteSearch + 1);\n\n\t\t\t\t\t\t//No other quotes are found - no other delimiters\n\t\t\t\t\t\tif (quoteSearch === -1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (!ignoreLastRow) {\n\t\t\t\t\t\t\t\t// No closing quote... what a pity\n\t\t\t\t\t\t\t\terrors.push({\n\t\t\t\t\t\t\t\t\ttype: 'Quotes',\n\t\t\t\t\t\t\t\t\tcode: 'MissingQuotes',\n\t\t\t\t\t\t\t\t\tmessage: 'Quoted field unterminated',\n\t\t\t\t\t\t\t\t\trow: data.length,\t// row has yet to be inserted\n\t\t\t\t\t\t\t\t\tindex: cursor\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn finish();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Closing quote at EOF\n\t\t\t\t\t\tif (quoteSearch === inputLen - 1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar value = input.substring(cursor, quoteSearch).replace(quoteCharRegex, quoteChar);\n\t\t\t\t\t\t\treturn finish(value);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If this quote is escaped, it's part of the data; skip it\n\t\t\t\t\t\t// If the quote character is the escape character, then check if the next character is the escape character\n\t\t\t\t\t\tif (quoteChar === escapeChar && input[quoteSearch + 1] === escapeChar)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tquoteSearch++;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If the quote character is not the escape character, then check if the previous character was the escape character\n\t\t\t\t\t\tif (quoteChar !== escapeChar && quoteSearch !== 0 && input[quoteSearch - 1] === escapeChar)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(nextDelim !== -1 && nextDelim < (quoteSearch + 1)) {\n\t\t\t\t\t\t\tnextDelim = input.indexOf(delim, (quoteSearch + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(nextNewline !== -1 && nextNewline < (quoteSearch + 1)) {\n\t\t\t\t\t\t\tnextNewline = input.indexOf(newline, (quoteSearch + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Check up to nextDelim or nextNewline, whichever is closest\n\t\t\t\t\t\tvar checkUpTo = nextNewline === -1 ? nextDelim : Math.min(nextDelim, nextNewline);\n\t\t\t\t\t\tvar spacesBetweenQuoteAndDelimiter = extraSpaces(checkUpTo);\n\n\t\t\t\t\t\t// Closing quote followed by delimiter or 'unnecessary spaces + delimiter'\n\t\t\t\t\t\tif (input.substr(quoteSearch + 1 + spacesBetweenQuoteAndDelimiter, delimLen) === delim)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trow.push(input.substring(cursor, quoteSearch).replace(quoteCharRegex, quoteChar));\n\t\t\t\t\t\t\tcursor = quoteSearch + 1 + spacesBetweenQuoteAndDelimiter + delimLen;\n\n\t\t\t\t\t\t\t// If char after following delimiter is not quoteChar, we find next quote char position\n\t\t\t\t\t\t\tif (input[quoteSearch + 1 + spacesBetweenQuoteAndDelimiter + delimLen] !== quoteChar)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tquoteSearch = input.indexOf(quoteChar, cursor);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tnextDelim = input.indexOf(delim, cursor);\n\t\t\t\t\t\t\tnextNewline = input.indexOf(newline, cursor);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar spacesBetweenQuoteAndNewLine = extraSpaces(nextNewline);\n\n\t\t\t\t\t\t// Closing quote followed by newline or 'unnecessary spaces + newLine'\n\t\t\t\t\t\tif (input.substring(quoteSearch + 1 + spacesBetweenQuoteAndNewLine, quoteSearch + 1 + spacesBetweenQuoteAndNewLine + newlineLen) === newline)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trow.push(input.substring(cursor, quoteSearch).replace(quoteCharRegex, quoteChar));\n\t\t\t\t\t\t\tsaveRow(quoteSearch + 1 + spacesBetweenQuoteAndNewLine + newlineLen);\n\t\t\t\t\t\t\tnextDelim = input.indexOf(delim, cursor);\t// because we may have skipped the nextDelim in the quoted field\n\t\t\t\t\t\t\tquoteSearch = input.indexOf(quoteChar, cursor);\t// we search for first quote in next line\n\n\t\t\t\t\t\t\tif (stepIsFunction)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdoStep();\n\t\t\t\t\t\t\t\tif (aborted)\n\t\t\t\t\t\t\t\t\treturn returnable();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (preview && data.length >= preview)\n\t\t\t\t\t\t\t\treturn returnable(true);\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t// Checks for valid closing quotes are complete (escaped quotes or quote followed by EOF/delimiter/newline) -- assume these quotes are part of an invalid text string\n\t\t\t\t\t\terrors.push({\n\t\t\t\t\t\t\ttype: 'Quotes',\n\t\t\t\t\t\t\tcode: 'InvalidQuotes',\n\t\t\t\t\t\t\tmessage: 'Trailing quote on quoted field is malformed',\n\t\t\t\t\t\t\trow: data.length,\t// row has yet to be inserted\n\t\t\t\t\t\t\tindex: cursor\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tquoteSearch++;\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Comment found at start of new line\n\t\t\t\tif (comments && row.length === 0 && input.substring(cursor, cursor + commentsLen) === comments)\n\t\t\t\t{\n\t\t\t\t\tif (nextNewline === -1)\t// Comment ends at EOF\n\t\t\t\t\t\treturn returnable();\n\t\t\t\t\tcursor = nextNewline + newlineLen;\n\t\t\t\t\tnextNewline = input.indexOf(newline, cursor);\n\t\t\t\t\tnextDelim = input.indexOf(delim, cursor);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Next delimiter comes before next newline, so we've reached end of field\n\t\t\t\tif (nextDelim !== -1 && (nextDelim < nextNewline || nextNewline === -1))\n\t\t\t\t{\n\t\t\t\t\trow.push(input.substring(cursor, nextDelim));\n\t\t\t\t\tcursor = nextDelim + delimLen;\n\t\t\t\t\t// we look for next delimiter char\n\t\t\t\t\tnextDelim = input.indexOf(delim, cursor);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// End of row\n\t\t\t\tif (nextNewline !== -1)\n\t\t\t\t{\n\t\t\t\t\trow.push(input.substring(cursor, nextNewline));\n\t\t\t\t\tsaveRow(nextNewline + newlineLen);\n\n\t\t\t\t\tif (stepIsFunction)\n\t\t\t\t\t{\n\t\t\t\t\t\tdoStep();\n\t\t\t\t\t\tif (aborted)\n\t\t\t\t\t\t\treturn returnable();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (preview && data.length >= preview)\n\t\t\t\t\t\treturn returnable(true);\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\n\t\t\treturn finish();\n\n\n\t\t\tfunction pushRow(row)\n\t\t\t{\n\t\t\t\tdata.push(row);\n\t\t\t\tlastCursor = cursor;\n\t\t\t}\n\n\t\t\t/**\n * checks if there are extra spaces after closing quote and given index without any text\n * if Yes, returns the number of spaces\n */\n\t\t\tfunction extraSpaces(index) {\n\t\t\t\tvar spaceLength = 0;\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tvar textBetweenClosingQuoteAndIndex = input.substring(quoteSearch + 1, index);\n\t\t\t\t\tif (textBetweenClosingQuoteAndIndex && textBetweenClosingQuoteAndIndex.trim() === '') {\n\t\t\t\t\t\tspaceLength = textBetweenClosingQuoteAndIndex.length;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn spaceLength;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Appends the remaining input from cursor to the end into\n\t\t\t * row, saves the row, calls step, and returns the results.\n\t\t\t */\n\t\t\tfunction finish(value)\n\t\t\t{\n\t\t\t\tif (ignoreLastRow)\n\t\t\t\t\treturn returnable();\n\t\t\t\tif (typeof value === 'undefined')\n\t\t\t\t\tvalue = input.substring(cursor);\n\t\t\t\trow.push(value);\n\t\t\t\tcursor = inputLen;\t// important in case parsing is paused\n\t\t\t\tpushRow(row);\n\t\t\t\tif (stepIsFunction)\n\t\t\t\t\tdoStep();\n\t\t\t\treturn returnable();\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Appends the current row to the results. It sets the cursor\n\t\t\t * to newCursor and finds the nextNewline. The caller should\n\t\t\t * take care to execute user's step function and check for\n\t\t\t * preview and end parsing if necessary.\n\t\t\t */\n\t\t\tfunction saveRow(newCursor)\n\t\t\t{\n\t\t\t\tcursor = newCursor;\n\t\t\t\tpushRow(row);\n\t\t\t\trow = [];\n\t\t\t\tnextNewline = input.indexOf(newline, cursor);\n\t\t\t}\n\n\t\t\t/** Returns an object with the results, errors, and meta. */\n\t\t\tfunction returnable(stopped)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tdata: data,\n\t\t\t\t\terrors: errors,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tdelimiter: delim,\n\t\t\t\t\t\tlinebreak: newline,\n\t\t\t\t\t\taborted: aborted,\n\t\t\t\t\t\ttruncated: !!stopped,\n\t\t\t\t\t\tcursor: lastCursor + (baseIndex || 0)\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/** Executes the user's step function and resets data & errors. */\n\t\t\tfunction doStep()\n\t\t\t{\n\t\t\t\tstep(returnable());\n\t\t\t\tdata = [];\n\t\t\t\terrors = [];\n\t\t\t}\n\t\t};\n\n\t\t/** Sets the abort flag */\n\t\tthis.abort = function()\n\t\t{\n\t\t\taborted = true;\n\t\t};\n\n\t\t/** Gets the cursor position */\n\t\tthis.getCharIndex = function()\n\t\t{\n\t\t\treturn cursor;\n\t\t};\n\t}\n\n\n\tfunction newWorker()\n\t{\n\t\tif (!Papa.WORKERS_SUPPORTED)\n\t\t\treturn false;\n\n\t\tvar workerUrl = getWorkerBlob();\n\t\tvar w = new global.Worker(workerUrl);\n\t\tw.onmessage = mainThreadReceivedMessage;\n\t\tw.id = workerIdCounter++;\n\t\tworkers[w.id] = w;\n\t\treturn w;\n\t}\n\n\t/** Callback when main thread receives a message */\n\tfunction mainThreadReceivedMessage(e)\n\t{\n\t\tvar msg = e.data;\n\t\tvar worker = workers[msg.workerId];\n\t\tvar aborted = false;\n\n\t\tif (msg.error)\n\t\t\tworker.userError(msg.error, msg.file);\n\t\telse if (msg.results && msg.results.data)\n\t\t{\n\t\t\tvar abort = function() {\n\t\t\t\taborted = true;\n\t\t\t\tcompleteWorker(msg.workerId, { data: [], errors: [], meta: { aborted: true } });\n\t\t\t};\n\n\t\t\tvar handle = {\n\t\t\t\tabort: abort,\n\t\t\t\tpause: notImplemented,\n\t\t\t\tresume: notImplemented\n\t\t\t};\n\n\t\t\tif (isFunction(worker.userStep))\n\t\t\t{\n\t\t\t\tfor (var i = 0; i < msg.results.data.length; i++)\n\t\t\t\t{\n\t\t\t\t\tworker.userStep({\n\t\t\t\t\t\tdata: msg.results.data[i],\n\t\t\t\t\t\terrors: msg.results.errors,\n\t\t\t\t\t\tmeta: msg.results.meta\n\t\t\t\t\t}, handle);\n\t\t\t\t\tif (aborted)\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdelete msg.results;\t// free memory ASAP\n\t\t\t}\n\t\t\telse if (isFunction(worker.userChunk))\n\t\t\t{\n\t\t\t\tworker.userChunk(msg.results, handle, msg.file);\n\t\t\t\tdelete msg.results;\n\t\t\t}\n\t\t}\n\n\t\tif (msg.finished && !aborted)\n\t\t\tcompleteWorker(msg.workerId, msg.results);\n\t}\n\n\tfunction completeWorker(workerId, results) {\n\t\tvar worker = workers[workerId];\n\t\tif (isFunction(worker.userComplete))\n\t\t\tworker.userComplete(results);\n\t\tworker.terminate();\n\t\tdelete workers[workerId];\n\t}\n\n\tfunction notImplemented() {\n\t\tthrow new Error('Not implemented.');\n\t}\n\n\t/** Callback when worker thread receives a message */\n\tfunction workerThreadReceivedMessage(e)\n\t{\n\t\tvar msg = e.data;\n\n\t\tif (typeof Papa.WORKER_ID === 'undefined' && msg)\n\t\t\tPapa.WORKER_ID = msg.workerId;\n\n\t\tif (typeof msg.input === 'string')\n\t\t{\n\t\t\tglobal.postMessage({\n\t\t\t\tworkerId: Papa.WORKER_ID,\n\t\t\t\tresults: Papa.parse(msg.input, msg.config),\n\t\t\t\tfinished: true\n\t\t\t});\n\t\t}\n\t\telse if ((global.File && msg.input instanceof File) || msg.input instanceof Object)\t// thank you, Safari (see issue #106)\n\t\t{\n\t\t\tvar results = Papa.parse(msg.input, msg.config);\n\t\t\tif (results)\n\t\t\t\tglobal.postMessage({\n\t\t\t\t\tworkerId: Papa.WORKER_ID,\n\t\t\t\t\tresults: results,\n\t\t\t\t\tfinished: true\n\t\t\t\t});\n\t\t}\n\t}\n\n\t/** Makes a deep copy of an array or object (mostly) */\n\tfunction copy(obj)\n\t{\n\t\tif (typeof obj !== 'object' || obj === null)\n\t\t\treturn obj;\n\t\tvar cpy = Array.isArray(obj) ? [] : {};\n\t\tfor (var key in obj)\n\t\t\tcpy[key] = copy(obj[key]);\n\t\treturn cpy;\n\t}\n\n\tfunction bindFunction(f, self)\n\t{\n\t\treturn function() { f.apply(self, arguments); };\n\t}\n\n\tfunction isFunction(func)\n\t{\n\t\treturn typeof func === 'function';\n\t}\n\n\treturn Papa;\n}));\n","import dayjs from \"dayjs\";\nimport { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\nimport * as yup from \"yup\";\n\nimport { INITIAL_VALUES } from \"./constants\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const isPastDate = date =>\n dayjs(date).isBefore(dayjs().subtract(1, \"days\"));\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = file =>\n new Promise(resolve => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const emails = results.data.map(item => item.email.trim());\n resolve(createEmailOptions(emails));\n },\n });\n });\n\nexport const generateInitialValues = defaultValues => ({\n ...INITIAL_VALUES,\n ...defaultValues,\n});\n\nexport const emailFormValidationSchema = disableReplyTo =>\n yup.object().shape({\n emailSubject: yup\n .string()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.subject\")\n ),\n emailBody: yup\n .string()\n .test(\n \"emailBody\",\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.emailBody\"),\n value => !isEditorEmpty(value)\n ),\n sendFromEmail: yup\n .string()\n .trim()\n .email(\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\")\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendFrom\")\n ),\n replyToEmail:\n !disableReplyTo &&\n yup\n .string()\n .trim()\n .email(\n t(\n \"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"\n )\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.replyTo\")\n ),\n notifyEmails: yup\n .array()\n .min(\n 1,\n t(\n \"neetoMolecules.shareViaEmail.validations.atleastOneIsRequired.emailAddress\"\n )\n )\n .test(\n \"are-all-emails-valid\",\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"),\n emails => emails.every(prop(\"valid\"))\n ),\n isSendLaterEnabled: yup.boolean(),\n sendEmailDatetime: yup.date().when(\"isSendLaterEnabled\", {\n is: true,\n then: yup\n .date()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendLater\")\n ),\n }),\n name: yup.string(),\n actionButtonText: yup\n .string()\n .required(\n t(\n \"neetoMolecules.shareViaEmail.validations.requiredField.startButtonText\"\n )\n ),\n });\n","import React, { useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Typography, Label } from \"neetoui\";\nimport { Input, Switch, MultiEmailInput, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ALLOWED_FILE_PICKER_TYPES } from \"./constants\";\nimport EmailBody from \"./EmailBodyEditor\";\nimport FilePicker from \"./FilePicker\";\nimport FormikDatePicker from \"./FormikDatePicker\";\nimport { parseCsvEmails, isPastDate } from \"./utils\";\n\nconst Form = ({ disableReplyTo, showVideoEmbedInEditor, children }) => {\n const { values, setFieldValue, initialValues } = useFormikContext();\n const editorRef = useRef();\n const { t } = useTranslation();\n\n const handleReset = () => {\n editorRef.current.editor.commands.setContent(initialValues.emailBody);\n };\n\n const handleCSVFile = async ([file]) => {\n const values = await parseCsvEmails(file);\n setFieldValue(\"notifyEmails\", values);\n };\n\n return (\n <>\n <div className=\"space-y-4\">\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Typography\n data-cy=\"send-to-input-label\"\n lineHeight=\"normal\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaEmail.sendTo\")}\n </Typography>\n <FilePicker\n types={ALLOWED_FILE_PICKER_TYPES}\n onChange={handleCSVFile}\n />\n </div>\n <MultiEmailInput\n filterInvalidEmails\n required\n label=\"\"\n name=\"notifyEmails\"\n />\n </div>\n <Input\n required\n className=\"col-span-1\"\n label={t(\"neetoMolecules.shareViaEmail.subject\")}\n name=\"emailSubject\"\n />\n <EmailBody\n id=\"emailBody\"\n ref={editorRef}\n showVideoEmbedInEditor={showVideoEmbedInEditor}\n />\n <div ref={editorRef} />\n <div>\n <Label className=\"flex items-center gap-2\">\n <Switch\n data-cy=\"send-later-switch\"\n data-testid=\"send-later-switch\"\n name=\"isSendLaterEnabled\"\n />\n <Typography\n component=\"span\"\n data-cy=\"send-later-label\"\n lineHeight=\"normal\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaEmail.sendLater\")}\n </Typography>\n </Label>\n </div>\n {values.isSendLaterEnabled && (\n <FormikDatePicker\n autoFocus\n showTime\n data-cy=\"email-share-date-input\"\n data-testid=\"formik-date-picker\"\n disabledDate={isPastDate}\n name=\"sendEmailDatetime\"\n picker=\"date\"\n size=\"large\"\n type=\"date\"\n />\n )}\n <Input\n required\n label={t(\"neetoMolecules.shareViaEmail.startButtonText\")}\n name=\"actionButtonText\"\n />\n <div\n className={classnames({ \"grid grid-cols-2 gap-6\": !disableReplyTo })}\n >\n <Input\n required\n className=\"col-auto\"\n label={t(\"neetoMolecules.shareViaEmail.sendFrom\")}\n name=\"sendFromEmail\"\n />\n {!disableReplyTo && (\n <Input\n required\n className=\"col-auto\"\n data-testid=\"replyTo-field\"\n label={t(\"neetoMolecules.shareViaEmail.replyTo\")}\n name=\"replyToEmail\"\n />\n )}\n </div>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 mt-4 border-t py-4\">\n <h3 className=\"mb-4\">\n {t(\"neetoMolecules.shareViaEmail.additionalOptions\")}\n </h3>\n {children}\n </div>\n )}\n <div className=\"mt-6\">\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.reset\"),\n type: \"reset\",\n onClick: handleReset,\n }}\n submitButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.sendEmail\"),\n }}\n />\n </div>\n </>\n );\n};\n\nexport default Form;\n","import React from \"react\";\n\nimport { LeftArrow } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { Form } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmailPreview from \"components/EmailPreview\";\n\nimport EmailForm from \"./Form\";\nimport { emailFormValidationSchema, generateInitialValues } from \"./utils\";\n\nconst ShareViaEmail = ({\n backToUrl,\n handleSubmit,\n children,\n description,\n defaultValues,\n disableReplyTo,\n productName,\n showVideoEmbedInEditor,\n}) => {\n const { t } = useTranslation();\n\n const sendToEmails = notifyEmails => notifyEmails.map(email => email?.value);\n\n return (\n <div className=\"neeto-ui-bg-gray-100 flex w-full flex-1 flex-col p-8\">\n <div className=\"mx-auto flex w-full max-w-7xl flex-col\">\n <Form\n formProps={{ noValidate: true }}\n formikProps={{\n enableReinitialize: true,\n validateOnMount: true,\n initialValues: generateInitialValues(defaultValues),\n validationSchema: emailFormValidationSchema(disableReplyTo),\n onSubmit: handleSubmit,\n }}\n >\n {({ values }) => (\n <div className=\"grid grid-cols-12 gap-8\">\n <div className=\"col-span-5\">\n {backToUrl && (\n <Button\n className=\"mb-4\"\n data-testid=\"back-to-url-button\"\n icon={LeftArrow}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaEmail.backToShare\")}\n size=\"small\"\n style=\"link\"\n to={backToUrl}\n />\n )}\n <div className=\"mb-6\">\n <Typography\n className=\"mb-0.5\"\n data-cy=\"share-via-email-heading\"\n lineHeight=\"normal\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaEmail.title\")}\n </Typography>\n {description && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"share-via-email-sub-heading\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n )}\n </div>\n <EmailForm\n disableReplyTo={disableReplyTo}\n showVideoEmbedInEditor={showVideoEmbedInEditor}\n >\n {children}\n </EmailForm>\n </div>\n <div className=\"col-span-7\">\n <div className=\"sticky top-10 pt-10\">\n <EmailPreview\n actionButtonText={values.actionButtonText}\n body={values.emailBody}\n from={values.sendFromEmail}\n productName={productName}\n subject={values.emailSubject}\n to={sendToEmails(values.notifyEmails)}\n />\n </div>\n </div>\n </div>\n )}\n </Form>\n </div>\n </div>\n );\n};\n\nexport default ShareViaEmail;\n"],"names":["cov_1dl40tmc3s","actualCoverage","s","EmailPreview","_ref","to","from","subject","body","productName","actionButtonText","logo","f","_ref2","useTranslation","t","React","createElement","className","Typography","lineHeight","style","isNotEmpty","b","join","EditorContent","content","Button","label","alt","src","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","require$$0","cov_arxbygreg","INITIAL_VALUES","sendFromEmail","replyToEmail","notifyEmails","emailSubject","emailBody","isSendLaterEnabled","sendEmailDatetime","undefined","category","EDITOR_ADDONS","ALLOWED_FILE_PICKER_TYPES","DIRECT_UPLOAD_URL","arrayWithoutHoles","iterableToArray","nonIterableSpread","cov_1ukti4j6us","EmailBody","ref","id","showVideoEmbedInEditor","FormikEditor","required","name","uploadEndpoint","addons","concat","_toConsumableArray","forwardRef","cov_132s0i4hk","FilePicker","_ref$types","types","onChange","inputRef","useRef","accept","handleInputChange","_ref3","target","files","current","value","handleClick","click","Fragment","icon","Upload","size","tooltipProps","onClick","type","objectWithoutPropertiesLoose","cov_73oanf0pa","FormikDatePicker","props","_objectWithoutProperties","_excluded","useField","_slicedToArray","field","meta","setValue","DatePicker","_extends","date","toPrimitive","toPropertyKey","this","cov_1t4zwuo8il","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","isValidEmail","email","string","isValidSync","isPastDate","dayjs","isBefore","subtract","createEmailOptions","emails","map","valid","parseCsvEmails","file","Promise","resolve","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","data","item","trim","generateInitialValues","defaultValues","emailFormValidationSchema","disableReplyTo","yup","shape","test","isEditorEmpty","array","min","every","prop","when","is","then","cov_2dkkhs5lzc","Form","children","useFormikContext","values","setFieldValue","initialValues","editorRef","handleReset","editor","commands","setContent","handleCSVFile","_ref5","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref4","_ref6","wrap","_callee$","_context","prev","next","sent","stop","_x","weight","MultiEmailInput","filterInvalidEmails","Input","Label","Switch","component","autoFocus","showTime","disabledDate","picker","classnames","ActionBlock","cancelButtonProps","submitButtonProps","cov_1z3j0gxvbf","ShareViaEmail","backToUrl","handleSubmit","description","sendToEmails","formProps","noValidate","formikProps","enableReinitialize","validateOnMount","validationSchema","onSubmit","LeftArrow","iconPosition","EmailForm"],"mappings":"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"}
1
+ {"version":3,"file":"ShareViaEmail.js","sources":["../src/components/EmailPreview.jsx","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/classnames/index.js","../src/components/ShareViaEmail/constants.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../src/components/ShareViaEmail/EmailBodyEditor.jsx","../src/components/ShareViaEmail/FilePicker.jsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../src/components/ShareViaEmail/FormikDatePicker.jsx","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/papaparse/papaparse.js","../src/components/ShareViaEmail/utils.js","../src/components/ShareViaEmail/Form.jsx","../src/components/ShareViaEmail/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { isNotEmpty } from \"neetocommons/pure\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Typography, Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst EmailPreview = ({\n to,\n from,\n subject,\n body,\n productName,\n actionButtonText,\n logo,\n}) => {\n const { t } = useTranslation();\n\n return (\n <div\n className=\"neeto-ui-border-gray-300 neeto-ui-shadow-m neeto-ui-bg-white flex flex-1 flex-col border\"\n data-cy=\"email-preview-card\"\n >\n <div className=\"neeto-ui-border-gray-300 space-y-3 divide-y divide-gray-200 border-b p-6\">\n <div\n className=\"flex gap-2\"\n data-cy=\"email-send-to-preview\"\n data-testid=\"email-to-block\"\n >\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.to\")}:\n </Typography>\n {isNotEmpty(to) ? (\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {to.join(\", \")}\n </Typography>\n ) : (\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full mt-2 h-2 w-40\" />\n )}\n </div>\n {from && (\n <div className=\"flex items-center gap-2 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.from\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-send-from-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {from}\n </Typography>\n </div>\n )}\n <div className=\"flex items-center gap-2 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.emailPreview.subject\")}:\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n data-cy=\"email-subject-preview\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {subject || (\n <span className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-40\" />\n )}\n </Typography>\n </div>\n </div>\n <div\n className=\"neeto-ui-text-gray-800 flex flex-1 flex-col justify-between space-y-6 p-6 pr-10 text-base leading-relaxed\"\n data-cy=\"email-body-preview-container\"\n >\n {body ? (\n <EditorContent content={body} />\n ) : (\n <div className=\"space-y-4\">\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-72\" />\n <div className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2 w-80\" />\n </div>\n )}\n {actionButtonText && (\n <div className=\"mt-6 flex w-full items-center justify-center\">\n <Button className=\"pointer-events-none\" label={actionButtonText} />\n </div>\n )}\n {logo && (\n <img\n alt={t(\"neetoMolecules.emailPreview.logoAltText\")}\n className=\"h-20 w-36 object-cover\"\n data-cy=\"company-logo-preview\"\n src={logo}\n />\n )}\n </div>\n {productName && (\n <div\n className=\"neeto-ui-bg-gray-100 mt-auto p-2\"\n data-testid=\"product-name-block\"\n >\n <Typography\n className=\"neeto-ui-text-gray-600 text-center leading-6\"\n style=\"body3\"\n >\n {t(\"neetoMolecules.emailPreview.poweredBy\")}\n <span className=\"neeto-ui-text-gray-800 font-medium\">\n {productName}\n </span>\n </Typography>\n </div>\n )}\n </div>\n );\n};\n\nexport default EmailPreview;\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export const ONE_MEGABYTE = 1_048_576;\n\nexport const INITIAL_VALUES = {\n sendFromEmail: \"\",\n replyToEmail: \"\",\n notifyEmails: [],\n emailSubject: \"\",\n emailBody: \"\",\n isSendLaterEnabled: false,\n sendEmailDatetime: undefined,\n category: \"email_share\",\n actionButtonText: \"\",\n};\n\nexport const EDITOR_ADDONS = [\n \"emoji\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n\nexport const DIRECT_UPLOAD_URL = \"/api/direct_uploads\";\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import React, { forwardRef } from \"react\";\n\nimport { FormikEditor } from \"neetoeditor\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS, DIRECT_UPLOAD_URL } from \"./constants\";\n\nconst EmailBody = ({ id, showVideoEmbedInEditor }, ref) => {\n const { t } = useTranslation();\n\n return (\n <FormikEditor\n required\n className=\"mb-6\"\n data-cy=\"email-body\"\n id={id}\n label={t(\"neetoMolecules.shareViaEmail.emailBody\")}\n name=\"emailBody\"\n ref={ref}\n uploadEndpoint={DIRECT_UPLOAD_URL}\n addons={\n showVideoEmbedInEditor\n ? [...EDITOR_ADDONS, \"video-embed\"]\n : EDITOR_ADDONS\n }\n />\n );\n};\n\nexport default forwardRef(EmailBody);\n","import React, { useRef } from \"react\";\n\nimport { Upload } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst FilePicker = ({ types = [], onChange }) => {\n const { t } = useTranslation();\n\n const inputRef = useRef();\n\n const accept = types.join(\", \");\n\n const handleInputChange = ({ target }) => {\n if (!target.files) return;\n onChange(target.files);\n\n // This will trigger handleClick when same file is uploaded again.\n inputRef.current.value = \"\";\n handleClick();\n };\n\n const handleClick = () => {\n if (!inputRef.current) return;\n inputRef.current.click();\n };\n\n return (\n <>\n <Button\n icon={Upload}\n label={t(\"neetoMolecules.shareViaEmail.uploadCsv\")}\n size=\"small\"\n style=\"link\"\n tooltipProps={{\n content: t(\"neetoMolecules.shareViaEmail.uploadCsvTooltip\"),\n }}\n onClick={handleClick}\n />\n <input\n accept={accept}\n className=\"hidden\"\n ref={inputRef}\n type=\"file\"\n onChange={handleInputChange}\n />\n </>\n );\n};\n\nexport default FilePicker;\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","import React from \"react\";\n\nimport { useField } from \"formik\";\nimport { DatePicker } from \"neetoui\";\n\nconst FormikDatePicker = ({ name, ...props }) => {\n const [field, meta, { setValue }] = useField(name);\n\n return (\n <DatePicker\n {...field}\n {...meta}\n onChange={date => setValue(date || undefined)}\n {...props}\n data-cy=\"email-share-date-input\"\n />\n );\n};\n\nexport default FormikDatePicker;\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/* @license\nPapa Parse\nv5.4.0\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n\n(function(root, factory)\n{\n\t/* globals define */\n\tif (typeof define === 'function' && define.amd)\n\t{\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t}\n\telse if (typeof module === 'object' && typeof exports !== 'undefined')\n\t{\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t}\n\telse\n\t{\n\t\t// Browser globals (root is window)\n\t\troot.Papa = factory();\n\t}\n\t// in strict mode we cannot access arguments.callee, so we need a named reference to\n\t// stringify the factory method for the blob worker\n\t// eslint-disable-next-line func-name\n}(this, function moduleFactory()\n{\n\t'use strict';\n\n\tvar global = (function() {\n\t\t// alternative method, similar to `Function('return this')()`\n\t\t// but without using `eval` (which is disabled when\n\t\t// using Content Security Policy).\n\n\t\tif (typeof self !== 'undefined') { return self; }\n\t\tif (typeof window !== 'undefined') { return window; }\n\t\tif (typeof global !== 'undefined') { return global; }\n\n\t\t// When running tests none of the above have been defined\n\t\treturn {};\n\t})();\n\n\n\tfunction getWorkerBlob() {\n\t\tvar URL = global.URL || global.webkitURL || null;\n\t\tvar code = moduleFactory.toString();\n\t\treturn Papa.BLOB_URL || (Papa.BLOB_URL = URL.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \", '(', code, ')();'], {type: 'text/javascript'})));\n\t}\n\n\tvar IS_WORKER = !global.document && !!global.postMessage,\n\t\tIS_PAPA_WORKER = global.IS_PAPA_WORKER || false;\n\n\tvar workers = {}, workerIdCounter = 0;\n\n\tvar Papa = {};\n\n\tPapa.parse = CsvToJson;\n\tPapa.unparse = JsonToCsv;\n\n\tPapa.RECORD_SEP = String.fromCharCode(30);\n\tPapa.UNIT_SEP = String.fromCharCode(31);\n\tPapa.BYTE_ORDER_MARK = '\\ufeff';\n\tPapa.BAD_DELIMITERS = ['\\r', '\\n', '\"', Papa.BYTE_ORDER_MARK];\n\tPapa.WORKERS_SUPPORTED = !IS_WORKER && !!global.Worker;\n\tPapa.NODE_STREAM_INPUT = 1;\n\n\t// Configurable chunk sizes for local and remote files, respectively\n\tPapa.LocalChunkSize = 1024 * 1024 * 10;\t// 10 MB\n\tPapa.RemoteChunkSize = 1024 * 1024 * 5;\t// 5 MB\n\tPapa.DefaultDelimiter = ',';\t\t\t// Used if not specified and detection fails\n\n\t// Exposed for testing and development only\n\tPapa.Parser = Parser;\n\tPapa.ParserHandle = ParserHandle;\n\tPapa.NetworkStreamer = NetworkStreamer;\n\tPapa.FileStreamer = FileStreamer;\n\tPapa.StringStreamer = StringStreamer;\n\tPapa.ReadableStreamStreamer = ReadableStreamStreamer;\n\tif (typeof PAPA_BROWSER_CONTEXT === 'undefined') {\n\t\tPapa.DuplexStreamStreamer = DuplexStreamStreamer;\n\t}\n\n\tif (global.jQuery)\n\t{\n\t\tvar $ = global.jQuery;\n\t\t$.fn.parse = function(options)\n\t\t{\n\t\t\tvar config = options.config || {};\n\t\t\tvar queue = [];\n\n\t\t\tthis.each(function(idx)\n\t\t\t{\n\t\t\t\tvar supported = $(this).prop('tagName').toUpperCase() === 'INPUT'\n\t\t\t\t\t\t\t\t&& $(this).attr('type').toLowerCase() === 'file'\n\t\t\t\t\t\t\t\t&& global.FileReader;\n\n\t\t\t\tif (!supported || !this.files || this.files.length === 0)\n\t\t\t\t\treturn true;\t// continue to next input element\n\n\t\t\t\tfor (var i = 0; i < this.files.length; i++)\n\t\t\t\t{\n\t\t\t\t\tqueue.push({\n\t\t\t\t\t\tfile: this.files[i],\n\t\t\t\t\t\tinputElem: this,\n\t\t\t\t\t\tinstanceConfig: $.extend({}, config)\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tparseNextFile();\t// begin parsing\n\t\t\treturn this;\t\t// maintains chainability\n\n\n\t\t\tfunction parseNextFile()\n\t\t\t{\n\t\t\t\tif (queue.length === 0)\n\t\t\t\t{\n\t\t\t\t\tif (isFunction(options.complete))\n\t\t\t\t\t\toptions.complete();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar f = queue[0];\n\n\t\t\t\tif (isFunction(options.before))\n\t\t\t\t{\n\t\t\t\t\tvar returned = options.before(f.file, f.inputElem);\n\n\t\t\t\t\tif (typeof returned === 'object')\n\t\t\t\t\t{\n\t\t\t\t\t\tif (returned.action === 'abort')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terror('AbortError', f.file, f.inputElem, returned.reason);\n\t\t\t\t\t\t\treturn;\t// Aborts all queued files immediately\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (returned.action === 'skip')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfileComplete();\t// parse the next file in the queue, if any\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (typeof returned.config === 'object')\n\t\t\t\t\t\t\tf.instanceConfig = $.extend(f.instanceConfig, returned.config);\n\t\t\t\t\t}\n\t\t\t\t\telse if (returned === 'skip')\n\t\t\t\t\t{\n\t\t\t\t\t\tfileComplete();\t// parse the next file in the queue, if any\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Wrap up the user's complete callback, if any, so that ours also gets executed\n\t\t\t\tvar userCompleteFunc = f.instanceConfig.complete;\n\t\t\t\tf.instanceConfig.complete = function(results)\n\t\t\t\t{\n\t\t\t\t\tif (isFunction(userCompleteFunc))\n\t\t\t\t\t\tuserCompleteFunc(results, f.file, f.inputElem);\n\t\t\t\t\tfileComplete();\n\t\t\t\t};\n\n\t\t\t\tPapa.parse(f.file, f.instanceConfig);\n\t\t\t}\n\n\t\t\tfunction error(name, file, elem, reason)\n\t\t\t{\n\t\t\t\tif (isFunction(options.error))\n\t\t\t\t\toptions.error({name: name}, file, elem, reason);\n\t\t\t}\n\n\t\t\tfunction fileComplete()\n\t\t\t{\n\t\t\t\tqueue.splice(0, 1);\n\t\t\t\tparseNextFile();\n\t\t\t}\n\t\t};\n\t}\n\n\n\tif (IS_PAPA_WORKER)\n\t{\n\t\tglobal.onmessage = workerThreadReceivedMessage;\n\t}\n\n\n\n\n\tfunction CsvToJson(_input, _config)\n\t{\n\t\t_config = _config || {};\n\t\tvar dynamicTyping = _config.dynamicTyping || false;\n\t\tif (isFunction(dynamicTyping)) {\n\t\t\t_config.dynamicTypingFunction = dynamicTyping;\n\t\t\t// Will be filled on first row call\n\t\t\tdynamicTyping = {};\n\t\t}\n\t\t_config.dynamicTyping = dynamicTyping;\n\n\t\t_config.transform = isFunction(_config.transform) ? _config.transform : false;\n\n\t\tif (_config.worker && Papa.WORKERS_SUPPORTED)\n\t\t{\n\t\t\tvar w = newWorker();\n\n\t\t\tw.userStep = _config.step;\n\t\t\tw.userChunk = _config.chunk;\n\t\t\tw.userComplete = _config.complete;\n\t\t\tw.userError = _config.error;\n\n\t\t\t_config.step = isFunction(_config.step);\n\t\t\t_config.chunk = isFunction(_config.chunk);\n\t\t\t_config.complete = isFunction(_config.complete);\n\t\t\t_config.error = isFunction(_config.error);\n\t\t\tdelete _config.worker;\t// prevent infinite loop\n\n\t\t\tw.postMessage({\n\t\t\t\tinput: _input,\n\t\t\t\tconfig: _config,\n\t\t\t\tworkerId: w.id\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tvar streamer = null;\n\t\tif (_input === Papa.NODE_STREAM_INPUT && typeof PAPA_BROWSER_CONTEXT === 'undefined')\n\t\t{\n\t\t\t// create a node Duplex stream for use\n\t\t\t// with .pipe\n\t\t\tstreamer = new DuplexStreamStreamer(_config);\n\t\t\treturn streamer.getStream();\n\t\t}\n\t\telse if (typeof _input === 'string')\n\t\t{\n\t\t\t_input = stripBom(_input);\n\t\t\tif (_config.download)\n\t\t\t\tstreamer = new NetworkStreamer(_config);\n\t\t\telse\n\t\t\t\tstreamer = new StringStreamer(_config);\n\t\t}\n\t\telse if (_input.readable === true && isFunction(_input.read) && isFunction(_input.on))\n\t\t{\n\t\t\tstreamer = new ReadableStreamStreamer(_config);\n\t\t}\n\t\telse if ((global.File && _input instanceof File) || _input instanceof Object)\t// ...Safari. (see issue #106)\n\t\t\tstreamer = new FileStreamer(_config);\n\n\t\treturn streamer.stream(_input);\n\n\t\t// Strip character from UTF-8 BOM encoded files that cause issue parsing the file\n\t\tfunction stripBom(string) {\n\t\t\tif (string.charCodeAt(0) === 0xfeff) {\n\t\t\t\treturn string.slice(1);\n\t\t\t}\n\t\t\treturn string;\n\t\t}\n\t}\n\n\n\n\n\n\n\tfunction JsonToCsv(_input, _config)\n\t{\n\t\t// Default configuration\n\n\t\t/** whether to surround every datum with quotes */\n\t\tvar _quotes = false;\n\n\t\t/** whether to write headers */\n\t\tvar _writeHeader = true;\n\n\t\t/** delimiting character(s) */\n\t\tvar _delimiter = ',';\n\n\t\t/** newline character(s) */\n\t\tvar _newline = '\\r\\n';\n\n\t\t/** quote character */\n\t\tvar _quoteChar = '\"';\n\n\t\t/** escaped quote character, either \"\" or <config.escapeChar>\" */\n\t\tvar _escapedQuote = _quoteChar + _quoteChar;\n\n\t\t/** whether to skip empty lines */\n\t\tvar _skipEmptyLines = false;\n\n\t\t/** the columns (keys) we expect when we unparse objects */\n\t\tvar _columns = null;\n\n\t\t/** whether to prevent outputting cells that can be parsed as formulae by spreadsheet software (Excel and LibreOffice) */\n\t\tvar _escapeFormulae = false;\n\n\t\tunpackConfig();\n\n\t\tvar quoteCharRegex = new RegExp(escapeRegExp(_quoteChar), 'g');\n\n\t\tif (typeof _input === 'string')\n\t\t\t_input = JSON.parse(_input);\n\n\t\tif (Array.isArray(_input))\n\t\t{\n\t\t\tif (!_input.length || Array.isArray(_input[0]))\n\t\t\t\treturn serialize(null, _input, _skipEmptyLines);\n\t\t\telse if (typeof _input[0] === 'object')\n\t\t\t\treturn serialize(_columns || Object.keys(_input[0]), _input, _skipEmptyLines);\n\t\t}\n\t\telse if (typeof _input === 'object')\n\t\t{\n\t\t\tif (typeof _input.data === 'string')\n\t\t\t\t_input.data = JSON.parse(_input.data);\n\n\t\t\tif (Array.isArray(_input.data))\n\t\t\t{\n\t\t\t\tif (!_input.fields)\n\t\t\t\t\t_input.fields = _input.meta && _input.meta.fields || _columns;\n\n\t\t\t\tif (!_input.fields)\n\t\t\t\t\t_input.fields = Array.isArray(_input.data[0])\n\t\t\t\t\t\t? _input.fields\n\t\t\t\t\t\t: typeof _input.data[0] === 'object'\n\t\t\t\t\t\t\t? Object.keys(_input.data[0])\n\t\t\t\t\t\t\t: [];\n\n\t\t\t\tif (!(Array.isArray(_input.data[0])) && typeof _input.data[0] !== 'object')\n\t\t\t\t\t_input.data = [_input.data];\t// handles input like [1,2,3] or ['asdf']\n\t\t\t}\n\n\t\t\treturn serialize(_input.fields || [], _input.data || [], _skipEmptyLines);\n\t\t}\n\n\t\t// Default (any valid paths should return before this)\n\t\tthrow new Error('Unable to serialize unrecognized input');\n\n\n\t\tfunction unpackConfig()\n\t\t{\n\t\t\tif (typeof _config !== 'object')\n\t\t\t\treturn;\n\n\t\t\tif (typeof _config.delimiter === 'string'\n && !Papa.BAD_DELIMITERS.filter(function(value) { return _config.delimiter.indexOf(value) !== -1; }).length)\n\t\t\t{\n\t\t\t\t_delimiter = _config.delimiter;\n\t\t\t}\n\n\t\t\tif (typeof _config.quotes === 'boolean'\n\t\t\t\t|| typeof _config.quotes === 'function'\n\t\t\t\t|| Array.isArray(_config.quotes))\n\t\t\t\t_quotes = _config.quotes;\n\n\t\t\tif (typeof _config.skipEmptyLines === 'boolean'\n\t\t\t\t|| typeof _config.skipEmptyLines === 'string')\n\t\t\t\t_skipEmptyLines = _config.skipEmptyLines;\n\n\t\t\tif (typeof _config.newline === 'string')\n\t\t\t\t_newline = _config.newline;\n\n\t\t\tif (typeof _config.quoteChar === 'string')\n\t\t\t\t_quoteChar = _config.quoteChar;\n\n\t\t\tif (typeof _config.header === 'boolean')\n\t\t\t\t_writeHeader = _config.header;\n\n\t\t\tif (Array.isArray(_config.columns)) {\n\n\t\t\t\tif (_config.columns.length === 0) throw new Error('Option columns is empty');\n\n\t\t\t\t_columns = _config.columns;\n\t\t\t}\n\n\t\t\tif (_config.escapeChar !== undefined) {\n\t\t\t\t_escapedQuote = _config.escapeChar + _quoteChar;\n\t\t\t}\n\n\t\t\tif (typeof _config.escapeFormulae === 'boolean' || _config.escapeFormulae instanceof RegExp) {\n\t\t\t\t_escapeFormulae = _config.escapeFormulae instanceof RegExp ? _config.escapeFormulae : /^[=+\\-@\\t\\r].*$/;\n\t\t\t}\n\t\t}\n\n\t\t/** The double for loop that iterates the data and writes out a CSV string including header row */\n\t\tfunction serialize(fields, data, skipEmptyLines)\n\t\t{\n\t\t\tvar csv = '';\n\n\t\t\tif (typeof fields === 'string')\n\t\t\t\tfields = JSON.parse(fields);\n\t\t\tif (typeof data === 'string')\n\t\t\t\tdata = JSON.parse(data);\n\n\t\t\tvar hasHeader = Array.isArray(fields) && fields.length > 0;\n\t\t\tvar dataKeyedByField = !(Array.isArray(data[0]));\n\n\t\t\t// If there a header row, write it first\n\t\t\tif (hasHeader && _writeHeader)\n\t\t\t{\n\t\t\t\tfor (var i = 0; i < fields.length; i++)\n\t\t\t\t{\n\t\t\t\t\tif (i > 0)\n\t\t\t\t\t\tcsv += _delimiter;\n\t\t\t\t\tcsv += safe(fields[i], i);\n\t\t\t\t}\n\t\t\t\tif (data.length > 0)\n\t\t\t\t\tcsv += _newline;\n\t\t\t}\n\n\t\t\t// Then write out the data\n\t\t\tfor (var row = 0; row < data.length; row++)\n\t\t\t{\n\t\t\t\tvar maxCol = hasHeader ? fields.length : data[row].length;\n\n\t\t\t\tvar emptyLine = false;\n\t\t\t\tvar nullLine = hasHeader ? Object.keys(data[row]).length === 0 : data[row].length === 0;\n\t\t\t\tif (skipEmptyLines && !hasHeader)\n\t\t\t\t{\n\t\t\t\t\temptyLine = skipEmptyLines === 'greedy' ? data[row].join('').trim() === '' : data[row].length === 1 && data[row][0].length === 0;\n\t\t\t\t}\n\t\t\t\tif (skipEmptyLines === 'greedy' && hasHeader) {\n\t\t\t\t\tvar line = [];\n\t\t\t\t\tfor (var c = 0; c < maxCol; c++) {\n\t\t\t\t\t\tvar cx = dataKeyedByField ? fields[c] : c;\n\t\t\t\t\t\tline.push(data[row][cx]);\n\t\t\t\t\t}\n\t\t\t\t\temptyLine = line.join('').trim() === '';\n\t\t\t\t}\n\t\t\t\tif (!emptyLine)\n\t\t\t\t{\n\t\t\t\t\tfor (var col = 0; col < maxCol; col++)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (col > 0 && !nullLine)\n\t\t\t\t\t\t\tcsv += _delimiter;\n\t\t\t\t\t\tvar colIdx = hasHeader && dataKeyedByField ? fields[col] : col;\n\t\t\t\t\t\tcsv += safe(data[row][colIdx], col);\n\t\t\t\t\t}\n\t\t\t\t\tif (row < data.length - 1 && (!skipEmptyLines || (maxCol > 0 && !nullLine)))\n\t\t\t\t\t{\n\t\t\t\t\t\tcsv += _newline;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn csv;\n\t\t}\n\n\t\t/** Encloses a value around quotes if needed (makes a value safe for CSV insertion) */\n\t\tfunction safe(str, col)\n\t\t{\n\t\t\tif (typeof str === 'undefined' || str === null)\n\t\t\t\treturn '';\n\n\t\t\tif (str.constructor === Date)\n\t\t\t\treturn JSON.stringify(str).slice(1, 25);\n\n\t\t\tvar needsQuotes = false;\n\n\t\t\tif (_escapeFormulae && typeof str === \"string\" && _escapeFormulae.test(str)) {\n\t\t\t\tstr = \"'\" + str;\n\t\t\t\tneedsQuotes = true;\n\t\t\t}\n\n\t\t\tvar escapedQuoteStr = str.toString().replace(quoteCharRegex, _escapedQuote);\n\n\t\t\tneedsQuotes = needsQuotes\n\t\t\t\t\t\t\t|| _quotes === true\n\t\t\t\t\t\t\t|| (typeof _quotes === 'function' && _quotes(str, col))\n\t\t\t\t\t\t\t|| (Array.isArray(_quotes) && _quotes[col])\n\t\t\t\t\t\t\t|| hasAny(escapedQuoteStr, Papa.BAD_DELIMITERS)\n\t\t\t\t\t\t\t|| escapedQuoteStr.indexOf(_delimiter) > -1\n\t\t\t\t\t\t\t|| escapedQuoteStr.charAt(0) === ' '\n\t\t\t\t\t\t\t|| escapedQuoteStr.charAt(escapedQuoteStr.length - 1) === ' ';\n\n\t\t\treturn needsQuotes ? _quoteChar + escapedQuoteStr + _quoteChar : escapedQuoteStr;\n\t\t}\n\n\t\tfunction hasAny(str, substrings)\n\t\t{\n\t\t\tfor (var i = 0; i < substrings.length; i++)\n\t\t\t\tif (str.indexOf(substrings[i]) > -1)\n\t\t\t\t\treturn true;\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/** ChunkStreamer is the base prototype for various streamer implementations. */\n\tfunction ChunkStreamer(config)\n\t{\n\t\tthis._handle = null;\n\t\tthis._finished = false;\n\t\tthis._completed = false;\n\t\tthis._halted = false;\n\t\tthis._input = null;\n\t\tthis._baseIndex = 0;\n\t\tthis._partialLine = '';\n\t\tthis._rowCount = 0;\n\t\tthis._start = 0;\n\t\tthis._nextChunk = null;\n\t\tthis.isFirstChunk = true;\n\t\tthis._completeResults = {\n\t\t\tdata: [],\n\t\t\terrors: [],\n\t\t\tmeta: {}\n\t\t};\n\t\treplaceConfig.call(this, config);\n\n\t\tthis.parseChunk = function(chunk, isFakeChunk)\n\t\t{\n\t\t\t// First chunk pre-processing\n\t\t\tif (this.isFirstChunk && isFunction(this._config.beforeFirstChunk))\n\t\t\t{\n\t\t\t\tvar modifiedChunk = this._config.beforeFirstChunk(chunk);\n\t\t\t\tif (modifiedChunk !== undefined)\n\t\t\t\t\tchunk = modifiedChunk;\n\t\t\t}\n\t\t\tthis.isFirstChunk = false;\n\t\t\tthis._halted = false;\n\n\t\t\t// Rejoin the line we likely just split in two by chunking the file\n\t\t\tvar aggregate = this._partialLine + chunk;\n\t\t\tthis._partialLine = '';\n\n\t\t\tvar results = this._handle.parse(aggregate, this._baseIndex, !this._finished);\n\n\t\t\tif (this._handle.paused() || this._handle.aborted()) {\n\t\t\t\tthis._halted = true;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar lastIndex = results.meta.cursor;\n\n\t\t\tif (!this._finished)\n\t\t\t{\n\t\t\t\tthis._partialLine = aggregate.substring(lastIndex - this._baseIndex);\n\t\t\t\tthis._baseIndex = lastIndex;\n\t\t\t}\n\n\t\t\tif (results && results.data)\n\t\t\t\tthis._rowCount += results.data.length;\n\n\t\t\tvar finishedIncludingPreview = this._finished || (this._config.preview && this._rowCount >= this._config.preview);\n\n\t\t\tif (IS_PAPA_WORKER)\n\t\t\t{\n\t\t\t\tglobal.postMessage({\n\t\t\t\t\tresults: results,\n\t\t\t\t\tworkerId: Papa.WORKER_ID,\n\t\t\t\t\tfinished: finishedIncludingPreview\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if (isFunction(this._config.chunk) && !isFakeChunk)\n\t\t\t{\n\t\t\t\tthis._config.chunk(results, this._handle);\n\t\t\t\tif (this._handle.paused() || this._handle.aborted()) {\n\t\t\t\t\tthis._halted = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tresults = undefined;\n\t\t\t\tthis._completeResults = undefined;\n\t\t\t}\n\n\t\t\tif (!this._config.step && !this._config.chunk) {\n\t\t\t\tthis._completeResults.data = this._completeResults.data.concat(results.data);\n\t\t\t\tthis._completeResults.errors = this._completeResults.errors.concat(results.errors);\n\t\t\t\tthis._completeResults.meta = results.meta;\n\t\t\t}\n\n\t\t\tif (!this._completed && finishedIncludingPreview && isFunction(this._config.complete) && (!results || !results.meta.aborted)) {\n\t\t\t\tthis._config.complete(this._completeResults, this._input);\n\t\t\t\tthis._completed = true;\n\t\t\t}\n\n\t\t\tif (!finishedIncludingPreview && (!results || !results.meta.paused))\n\t\t\t\tthis._nextChunk();\n\n\t\t\treturn results;\n\t\t};\n\n\t\tthis._sendError = function(error)\n\t\t{\n\t\t\tif (isFunction(this._config.error))\n\t\t\t\tthis._config.error(error);\n\t\t\telse if (IS_PAPA_WORKER && this._config.error)\n\t\t\t{\n\t\t\t\tglobal.postMessage({\n\t\t\t\t\tworkerId: Papa.WORKER_ID,\n\t\t\t\t\terror: error,\n\t\t\t\t\tfinished: false\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tfunction replaceConfig(config)\n\t\t{\n\t\t\t// Deep-copy the config so we can edit it\n\t\t\tvar configCopy = copy(config);\n\t\t\tconfigCopy.chunkSize = parseInt(configCopy.chunkSize);\t// parseInt VERY important so we don't concatenate strings!\n\t\t\tif (!config.step && !config.chunk)\n\t\t\t\tconfigCopy.chunkSize = null; // disable Range header if not streaming; bad values break IIS - see issue #196\n\t\t\tthis._handle = new ParserHandle(configCopy);\n\t\t\tthis._handle.streamer = this;\n\t\t\tthis._config = configCopy;\t// persist the copy to the caller\n\t\t}\n\t}\n\n\n\tfunction NetworkStreamer(config)\n\t{\n\t\tconfig = config || {};\n\t\tif (!config.chunkSize)\n\t\t\tconfig.chunkSize = Papa.RemoteChunkSize;\n\t\tChunkStreamer.call(this, config);\n\n\t\tvar xhr;\n\n\t\tif (IS_WORKER)\n\t\t{\n\t\t\tthis._nextChunk = function()\n\t\t\t{\n\t\t\t\tthis._readChunk();\n\t\t\t\tthis._chunkLoaded();\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis._nextChunk = function()\n\t\t\t{\n\t\t\t\tthis._readChunk();\n\t\t\t};\n\t\t}\n\n\t\tthis.stream = function(url)\n\t\t{\n\t\t\tthis._input = url;\n\t\t\tthis._nextChunk();\t// Starts streaming\n\t\t};\n\n\t\tthis._readChunk = function()\n\t\t{\n\t\t\tif (this._finished)\n\t\t\t{\n\t\t\t\tthis._chunkLoaded();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\txhr = new XMLHttpRequest();\n\n\t\t\tif (this._config.withCredentials)\n\t\t\t{\n\t\t\t\txhr.withCredentials = this._config.withCredentials;\n\t\t\t}\n\n\t\t\tif (!IS_WORKER)\n\t\t\t{\n\t\t\t\txhr.onload = bindFunction(this._chunkLoaded, this);\n\t\t\t\txhr.onerror = bindFunction(this._chunkError, this);\n\t\t\t}\n\n\t\t\txhr.open(this._config.downloadRequestBody ? 'POST' : 'GET', this._input, !IS_WORKER);\n\t\t\t// Headers can only be set when once the request state is OPENED\n\t\t\tif (this._config.downloadRequestHeaders)\n\t\t\t{\n\t\t\t\tvar headers = this._config.downloadRequestHeaders;\n\n\t\t\t\tfor (var headerName in headers)\n\t\t\t\t{\n\t\t\t\t\txhr.setRequestHeader(headerName, headers[headerName]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this._config.chunkSize)\n\t\t\t{\n\t\t\t\tvar end = this._start + this._config.chunkSize - 1;\t// minus one because byte range is inclusive\n\t\t\t\txhr.setRequestHeader('Range', 'bytes=' + this._start + '-' + end);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\txhr.send(this._config.downloadRequestBody);\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tthis._chunkError(err.message);\n\t\t\t}\n\n\t\t\tif (IS_WORKER && xhr.status === 0)\n\t\t\t\tthis._chunkError();\n\t\t};\n\n\t\tthis._chunkLoaded = function()\n\t\t{\n\t\t\tif (xhr.readyState !== 4)\n\t\t\t\treturn;\n\n\t\t\tif (xhr.status < 200 || xhr.status >= 400)\n\t\t\t{\n\t\t\t\tthis._chunkError();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Use chunckSize as it may be a diference on reponse lentgh due to characters with more than 1 byte\n\t\t\tthis._start += this._config.chunkSize ? this._config.chunkSize : xhr.responseText.length;\n\t\t\tthis._finished = !this._config.chunkSize || this._start >= getFileSize(xhr);\n\t\t\tthis.parseChunk(xhr.responseText);\n\t\t};\n\n\t\tthis._chunkError = function(errorMessage)\n\t\t{\n\t\t\tvar errorText = xhr.statusText || errorMessage;\n\t\t\tthis._sendError(new Error(errorText));\n\t\t};\n\n\t\tfunction getFileSize(xhr)\n\t\t{\n\t\t\tvar contentRange = xhr.getResponseHeader('Content-Range');\n\t\t\tif (contentRange === null) { // no content range, then finish!\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\treturn parseInt(contentRange.substring(contentRange.lastIndexOf('/') + 1));\n\t\t}\n\t}\n\tNetworkStreamer.prototype = Object.create(ChunkStreamer.prototype);\n\tNetworkStreamer.prototype.constructor = NetworkStreamer;\n\n\n\tfunction FileStreamer(config)\n\t{\n\t\tconfig = config || {};\n\t\tif (!config.chunkSize)\n\t\t\tconfig.chunkSize = Papa.LocalChunkSize;\n\t\tChunkStreamer.call(this, config);\n\n\t\tvar reader, slice;\n\n\t\t// FileReader is better than FileReaderSync (even in worker) - see http://stackoverflow.com/q/24708649/1048862\n\t\t// But Firefox is a pill, too - see issue #76: https://github.com/mholt/PapaParse/issues/76\n\t\tvar usingAsyncReader = typeof FileReader !== 'undefined';\t// Safari doesn't consider it a function - see issue #105\n\n\t\tthis.stream = function(file)\n\t\t{\n\t\t\tthis._input = file;\n\t\t\tslice = file.slice || file.webkitSlice || file.mozSlice;\n\n\t\t\tif (usingAsyncReader)\n\t\t\t{\n\t\t\t\treader = new FileReader();\t\t// Preferred method of reading files, even in workers\n\t\t\t\treader.onload = bindFunction(this._chunkLoaded, this);\n\t\t\t\treader.onerror = bindFunction(this._chunkError, this);\n\t\t\t}\n\t\t\telse\n\t\t\t\treader = new FileReaderSync();\t// Hack for running in a web worker in Firefox\n\n\t\t\tthis._nextChunk();\t// Starts streaming\n\t\t};\n\n\t\tthis._nextChunk = function()\n\t\t{\n\t\t\tif (!this._finished && (!this._config.preview || this._rowCount < this._config.preview))\n\t\t\t\tthis._readChunk();\n\t\t};\n\n\t\tthis._readChunk = function()\n\t\t{\n\t\t\tvar input = this._input;\n\t\t\tif (this._config.chunkSize)\n\t\t\t{\n\t\t\t\tvar end = Math.min(this._start + this._config.chunkSize, this._input.size);\n\t\t\t\tinput = slice.call(input, this._start, end);\n\t\t\t}\n\t\t\tvar txt = reader.readAsText(input, this._config.encoding);\n\t\t\tif (!usingAsyncReader)\n\t\t\t\tthis._chunkLoaded({ target: { result: txt } });\t// mimic the async signature\n\t\t};\n\n\t\tthis._chunkLoaded = function(event)\n\t\t{\n\t\t\t// Very important to increment start each time before handling results\n\t\t\tthis._start += this._config.chunkSize;\n\t\t\tthis._finished = !this._config.chunkSize || this._start >= this._input.size;\n\t\t\tthis.parseChunk(event.target.result);\n\t\t};\n\n\t\tthis._chunkError = function()\n\t\t{\n\t\t\tthis._sendError(reader.error);\n\t\t};\n\n\t}\n\tFileStreamer.prototype = Object.create(ChunkStreamer.prototype);\n\tFileStreamer.prototype.constructor = FileStreamer;\n\n\n\tfunction StringStreamer(config)\n\t{\n\t\tconfig = config || {};\n\t\tChunkStreamer.call(this, config);\n\n\t\tvar remaining;\n\t\tthis.stream = function(s)\n\t\t{\n\t\t\tremaining = s;\n\t\t\treturn this._nextChunk();\n\t\t};\n\t\tthis._nextChunk = function()\n\t\t{\n\t\t\tif (this._finished) return;\n\t\t\tvar size = this._config.chunkSize;\n\t\t\tvar chunk;\n\t\t\tif(size) {\n\t\t\t\tchunk = remaining.substring(0, size);\n\t\t\t\tremaining = remaining.substring(size);\n\t\t\t} else {\n\t\t\t\tchunk = remaining;\n\t\t\t\tremaining = '';\n\t\t\t}\n\t\t\tthis._finished = !remaining;\n\t\t\treturn this.parseChunk(chunk);\n\t\t};\n\t}\n\tStringStreamer.prototype = Object.create(StringStreamer.prototype);\n\tStringStreamer.prototype.constructor = StringStreamer;\n\n\n\tfunction ReadableStreamStreamer(config)\n\t{\n\t\tconfig = config || {};\n\n\t\tChunkStreamer.call(this, config);\n\n\t\tvar queue = [];\n\t\tvar parseOnData = true;\n\t\tvar streamHasEnded = false;\n\n\t\tthis.pause = function()\n\t\t{\n\t\t\tChunkStreamer.prototype.pause.apply(this, arguments);\n\t\t\tthis._input.pause();\n\t\t};\n\n\t\tthis.resume = function()\n\t\t{\n\t\t\tChunkStreamer.prototype.resume.apply(this, arguments);\n\t\t\tthis._input.resume();\n\t\t};\n\n\t\tthis.stream = function(stream)\n\t\t{\n\t\t\tthis._input = stream;\n\n\t\t\tthis._input.on('data', this._streamData);\n\t\t\tthis._input.on('end', this._streamEnd);\n\t\t\tthis._input.on('error', this._streamError);\n\t\t};\n\n\t\tthis._checkIsFinished = function()\n\t\t{\n\t\t\tif (streamHasEnded && queue.length === 1) {\n\t\t\t\tthis._finished = true;\n\t\t\t}\n\t\t};\n\n\t\tthis._nextChunk = function()\n\t\t{\n\t\t\tthis._checkIsFinished();\n\t\t\tif (queue.length)\n\t\t\t{\n\t\t\t\tthis.parseChunk(queue.shift());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tparseOnData = true;\n\t\t\t}\n\t\t};\n\n\t\tthis._streamData = bindFunction(function(chunk)\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\tqueue.push(typeof chunk === 'string' ? chunk : chunk.toString(this._config.encoding));\n\n\t\t\t\tif (parseOnData)\n\t\t\t\t{\n\t\t\t\t\tparseOnData = false;\n\t\t\t\t\tthis._checkIsFinished();\n\t\t\t\t\tthis.parseChunk(queue.shift());\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (error)\n\t\t\t{\n\t\t\t\tthis._streamError(error);\n\t\t\t}\n\t\t}, this);\n\n\t\tthis._streamError = bindFunction(function(error)\n\t\t{\n\t\t\tthis._streamCleanUp();\n\t\t\tthis._sendError(error);\n\t\t}, this);\n\n\t\tthis._streamEnd = bindFunction(function()\n\t\t{\n\t\t\tthis._streamCleanUp();\n\t\t\tstreamHasEnded = true;\n\t\t\tthis._streamData('');\n\t\t}, this);\n\n\t\tthis._streamCleanUp = bindFunction(function()\n\t\t{\n\t\t\tthis._input.removeListener('data', this._streamData);\n\t\t\tthis._input.removeListener('end', this._streamEnd);\n\t\t\tthis._input.removeListener('error', this._streamError);\n\t\t}, this);\n\t}\n\tReadableStreamStreamer.prototype = Object.create(ChunkStreamer.prototype);\n\tReadableStreamStreamer.prototype.constructor = ReadableStreamStreamer;\n\n\n\tfunction DuplexStreamStreamer(_config) {\n\t\tvar Duplex = require('stream').Duplex;\n\t\tvar config = copy(_config);\n\t\tvar parseOnWrite = true;\n\t\tvar writeStreamHasFinished = false;\n\t\tvar parseCallbackQueue = [];\n\t\tvar stream = null;\n\n\t\tthis._onCsvData = function(results)\n\t\t{\n\t\t\tvar data = results.data;\n\t\t\tif (!stream.push(data) && !this._handle.paused()) {\n\t\t\t\t// the writeable consumer buffer has filled up\n\t\t\t\t// so we need to pause until more items\n\t\t\t\t// can be processed\n\t\t\t\tthis._handle.pause();\n\t\t\t}\n\t\t};\n\n\t\tthis._onCsvComplete = function()\n\t\t{\n\t\t\t// node will finish the read stream when\n\t\t\t// null is pushed\n\t\t\tstream.push(null);\n\t\t};\n\n\t\tconfig.step = bindFunction(this._onCsvData, this);\n\t\tconfig.complete = bindFunction(this._onCsvComplete, this);\n\t\tChunkStreamer.call(this, config);\n\n\t\tthis._nextChunk = function()\n\t\t{\n\t\t\tif (writeStreamHasFinished && parseCallbackQueue.length === 1) {\n\t\t\t\tthis._finished = true;\n\t\t\t}\n\t\t\tif (parseCallbackQueue.length) {\n\t\t\t\tparseCallbackQueue.shift()();\n\t\t\t} else {\n\t\t\t\tparseOnWrite = true;\n\t\t\t}\n\t\t};\n\n\t\tthis._addToParseQueue = function(chunk, callback)\n\t\t{\n\t\t\t// add to queue so that we can indicate\n\t\t\t// completion via callback\n\t\t\t// node will automatically pause the incoming stream\n\t\t\t// when too many items have been added without their\n\t\t\t// callback being invoked\n\t\t\tparseCallbackQueue.push(bindFunction(function() {\n\t\t\t\tthis.parseChunk(typeof chunk === 'string' ? chunk : chunk.toString(config.encoding));\n\t\t\t\tif (isFunction(callback)) {\n\t\t\t\t\treturn callback();\n\t\t\t\t}\n\t\t\t}, this));\n\t\t\tif (parseOnWrite) {\n\t\t\t\tparseOnWrite = false;\n\t\t\t\tthis._nextChunk();\n\t\t\t}\n\t\t};\n\n\t\tthis._onRead = function()\n\t\t{\n\t\t\tif (this._handle.paused()) {\n\t\t\t\t// the writeable consumer can handle more data\n\t\t\t\t// so resume the chunk parsing\n\t\t\t\tthis._handle.resume();\n\t\t\t}\n\t\t};\n\n\t\tthis._onWrite = function(chunk, encoding, callback)\n\t\t{\n\t\t\tthis._addToParseQueue(chunk, callback);\n\t\t};\n\n\t\tthis._onWriteComplete = function()\n\t\t{\n\t\t\twriteStreamHasFinished = true;\n\t\t\t// have to write empty string\n\t\t\t// so parser knows its done\n\t\t\tthis._addToParseQueue('');\n\t\t};\n\n\t\tthis.getStream = function()\n\t\t{\n\t\t\treturn stream;\n\t\t};\n\t\tstream = new Duplex({\n\t\t\treadableObjectMode: true,\n\t\t\tdecodeStrings: false,\n\t\t\tread: bindFunction(this._onRead, this),\n\t\t\twrite: bindFunction(this._onWrite, this)\n\t\t});\n\t\tstream.once('finish', bindFunction(this._onWriteComplete, this));\n\t}\n\tif (typeof PAPA_BROWSER_CONTEXT === 'undefined') {\n\t\tDuplexStreamStreamer.prototype = Object.create(ChunkStreamer.prototype);\n\t\tDuplexStreamStreamer.prototype.constructor = DuplexStreamStreamer;\n\t}\n\n\n\t// Use one ParserHandle per entire CSV file or string\n\tfunction ParserHandle(_config)\n\t{\n\t\t// One goal is to minimize the use of regular expressions...\n\t\tvar MAX_FLOAT = Math.pow(2, 53);\n\t\tvar MIN_FLOAT = -MAX_FLOAT;\n\t\tvar FLOAT = /^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/;\n\t\tvar ISO_DATE = /^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/;\n\t\tvar self = this;\n\t\tvar _stepCounter = 0;\t// Number of times step was called (number of rows parsed)\n\t\tvar _rowCounter = 0;\t// Number of rows that have been parsed so far\n\t\tvar _input;\t\t\t\t// The input being parsed\n\t\tvar _parser;\t\t\t// The core parser being used\n\t\tvar _paused = false;\t// Whether we are paused or not\n\t\tvar _aborted = false;\t// Whether the parser has aborted or not\n\t\tvar _delimiterError;\t// Temporary state between delimiter detection and processing results\n\t\tvar _fields = [];\t\t// Fields are from the header row of the input, if there is one\n\t\tvar _results = {\t\t// The last results returned from the parser\n\t\t\tdata: [],\n\t\t\terrors: [],\n\t\t\tmeta: {}\n\t\t};\n\n\t\tif (isFunction(_config.step))\n\t\t{\n\t\t\tvar userStep = _config.step;\n\t\t\t_config.step = function(results)\n\t\t\t{\n\t\t\t\t_results = results;\n\n\t\t\t\tif (needsHeaderRow())\n\t\t\t\t\tprocessResults();\n\t\t\t\telse\t// only call user's step function after header row\n\t\t\t\t{\n\t\t\t\t\tprocessResults();\n\n\t\t\t\t\t// It's possbile that this line was empty and there's no row here after all\n\t\t\t\t\tif (_results.data.length === 0)\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t_stepCounter += results.data.length;\n\t\t\t\t\tif (_config.preview && _stepCounter > _config.preview)\n\t\t\t\t\t\t_parser.abort();\n\t\t\t\t\telse {\n\t\t\t\t\t\t_results.data = _results.data[0];\n\t\t\t\t\t\tuserStep(_results, self);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Parses input. Most users won't need, and shouldn't mess with, the baseIndex\n\t\t * and ignoreLastRow parameters. They are used by streamers (wrapper functions)\n\t\t * when an input comes in multiple chunks, like from a file.\n\t\t */\n\t\tthis.parse = function(input, baseIndex, ignoreLastRow)\n\t\t{\n\t\t\tvar quoteChar = _config.quoteChar || '\"';\n\t\t\tif (!_config.newline)\n\t\t\t\t_config.newline = guessLineEndings(input, quoteChar);\n\n\t\t\t_delimiterError = false;\n\t\t\tif (!_config.delimiter)\n\t\t\t{\n\t\t\t\tvar delimGuess = guessDelimiter(input, _config.newline, _config.skipEmptyLines, _config.comments, _config.delimitersToGuess);\n\t\t\t\tif (delimGuess.successful)\n\t\t\t\t\t_config.delimiter = delimGuess.bestDelimiter;\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t_delimiterError = true;\t// add error after parsing (otherwise it would be overwritten)\n\t\t\t\t\t_config.delimiter = Papa.DefaultDelimiter;\n\t\t\t\t}\n\t\t\t\t_results.meta.delimiter = _config.delimiter;\n\t\t\t}\n\t\t\telse if(isFunction(_config.delimiter))\n\t\t\t{\n\t\t\t\t_config.delimiter = _config.delimiter(input);\n\t\t\t\t_results.meta.delimiter = _config.delimiter;\n\t\t\t}\n\n\t\t\tvar parserConfig = copy(_config);\n\t\t\tif (_config.preview && _config.header)\n\t\t\t\tparserConfig.preview++;\t// to compensate for header row\n\n\t\t\t_input = input;\n\t\t\t_parser = new Parser(parserConfig);\n\t\t\t_results = _parser.parse(_input, baseIndex, ignoreLastRow);\n\t\t\tprocessResults();\n\t\t\treturn _paused ? { meta: { paused: true } } : (_results || { meta: { paused: false } });\n\t\t};\n\n\t\tthis.paused = function()\n\t\t{\n\t\t\treturn _paused;\n\t\t};\n\n\t\tthis.pause = function()\n\t\t{\n\t\t\t_paused = true;\n\t\t\t_parser.abort();\n\n\t\t\t// If it is streaming via \"chunking\", the reader will start appending correctly already so no need to substring,\n\t\t\t// otherwise we can get duplicate content within a row\n\t\t\t_input = isFunction(_config.chunk) ? \"\" : _input.substring(_parser.getCharIndex());\n\t\t};\n\n\t\tthis.resume = function()\n\t\t{\n\t\t\tif(self.streamer._halted) {\n\t\t\t\t_paused = false;\n\t\t\t\tself.streamer.parseChunk(_input, true);\n\t\t\t} else {\n\t\t\t\t// Bugfix: #636 In case the processing hasn't halted yet\n\t\t\t\t// wait for it to halt in order to resume\n\t\t\t\tsetTimeout(self.resume, 3);\n\t\t\t}\n\t\t};\n\n\t\tthis.aborted = function()\n\t\t{\n\t\t\treturn _aborted;\n\t\t};\n\n\t\tthis.abort = function()\n\t\t{\n\t\t\t_aborted = true;\n\t\t\t_parser.abort();\n\t\t\t_results.meta.aborted = true;\n\t\t\tif (isFunction(_config.complete))\n\t\t\t\t_config.complete(_results);\n\t\t\t_input = '';\n\t\t};\n\n\t\tfunction testEmptyLine(s) {\n\t\t\treturn _config.skipEmptyLines === 'greedy' ? s.join('').trim() === '' : s.length === 1 && s[0].length === 0;\n\t\t}\n\n\t\tfunction testFloat(s) {\n\t\t\tif (FLOAT.test(s)) {\n\t\t\t\tvar floatValue = parseFloat(s);\n\t\t\t\tif (floatValue > MIN_FLOAT && floatValue < MAX_FLOAT) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction processResults()\n\t\t{\n\t\t\tif (_results && _delimiterError)\n\t\t\t{\n\t\t\t\taddError('Delimiter', 'UndetectableDelimiter', 'Unable to auto-detect delimiting character; defaulted to \\'' + Papa.DefaultDelimiter + '\\'');\n\t\t\t\t_delimiterError = false;\n\t\t\t}\n\n\t\t\tif (_config.skipEmptyLines)\n\t\t\t{\n\t\t\t\t_results.data = _results.data.filter(function(d) {\n\t\t\t\t\treturn !testEmptyLine(d);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (needsHeaderRow())\n\t\t\t\tfillHeaderFields();\n\n\t\t\treturn applyHeaderAndDynamicTypingAndTransformation();\n\t\t}\n\n\t\tfunction needsHeaderRow()\n\t\t{\n\t\t\treturn _config.header && _fields.length === 0;\n\t\t}\n\n\t\tfunction fillHeaderFields()\n\t\t{\n\t\t\tif (!_results)\n\t\t\t\treturn;\n\n\t\t\tfunction addHeader(header, i)\n\t\t\t{\n\t\t\t\tif (isFunction(_config.transformHeader))\n\t\t\t\t\theader = _config.transformHeader(header, i);\n\n\t\t\t\t_fields.push(header);\n\t\t\t}\n\n\t\t\tif (Array.isArray(_results.data[0]))\n\t\t\t{\n\t\t\t\tfor (var i = 0; needsHeaderRow() && i < _results.data.length; i++)\n\t\t\t\t\t_results.data[i].forEach(addHeader);\n\n\t\t\t\t_results.data.splice(0, 1);\n\t\t\t}\n\t\t\t// if _results.data[0] is not an array, we are in a step where _results.data is the row.\n\t\t\telse\n\t\t\t\t_results.data.forEach(addHeader);\n\t\t}\n\n\t\tfunction shouldApplyDynamicTyping(field) {\n\t\t\t// Cache function values to avoid calling it for each row\n\t\t\tif (_config.dynamicTypingFunction && _config.dynamicTyping[field] === undefined) {\n\t\t\t\t_config.dynamicTyping[field] = _config.dynamicTypingFunction(field);\n\t\t\t}\n\t\t\treturn (_config.dynamicTyping[field] || _config.dynamicTyping) === true;\n\t\t}\n\n\t\tfunction parseDynamic(field, value)\n\t\t{\n\t\t\tif (shouldApplyDynamicTyping(field))\n\t\t\t{\n\t\t\t\tif (value === 'true' || value === 'TRUE')\n\t\t\t\t\treturn true;\n\t\t\t\telse if (value === 'false' || value === 'FALSE')\n\t\t\t\t\treturn false;\n\t\t\t\telse if (testFloat(value))\n\t\t\t\t\treturn parseFloat(value);\n\t\t\t\telse if (ISO_DATE.test(value))\n\t\t\t\t\treturn new Date(value);\n\t\t\t\telse\n\t\t\t\t\treturn (value === '' ? null : value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\n\t\tfunction applyHeaderAndDynamicTypingAndTransformation()\n\t\t{\n\t\t\tif (!_results || (!_config.header && !_config.dynamicTyping && !_config.transform))\n\t\t\t\treturn _results;\n\n\t\t\tfunction processRow(rowSource, i)\n\t\t\t{\n\t\t\t\tvar row = _config.header ? {} : [];\n\n\t\t\t\tvar j;\n\t\t\t\tfor (j = 0; j < rowSource.length; j++)\n\t\t\t\t{\n\t\t\t\t\tvar field = j;\n\t\t\t\t\tvar value = rowSource[j];\n\n\t\t\t\t\tif (_config.header)\n\t\t\t\t\t\tfield = j >= _fields.length ? '__parsed_extra' : _fields[j];\n\n\t\t\t\t\tif (_config.transform)\n\t\t\t\t\t\tvalue = _config.transform(value,field);\n\n\t\t\t\t\tvalue = parseDynamic(field, value);\n\n\t\t\t\t\tif (field === '__parsed_extra')\n\t\t\t\t\t{\n\t\t\t\t\t\trow[field] = row[field] || [];\n\t\t\t\t\t\trow[field].push(value);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\trow[field] = value;\n\t\t\t\t}\n\n\n\t\t\t\tif (_config.header)\n\t\t\t\t{\n\t\t\t\t\tif (j > _fields.length)\n\t\t\t\t\t\taddError('FieldMismatch', 'TooManyFields', 'Too many fields: expected ' + _fields.length + ' fields but parsed ' + j, _rowCounter + i);\n\t\t\t\t\telse if (j < _fields.length)\n\t\t\t\t\t\taddError('FieldMismatch', 'TooFewFields', 'Too few fields: expected ' + _fields.length + ' fields but parsed ' + j, _rowCounter + i);\n\t\t\t\t}\n\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\tvar incrementBy = 1;\n\t\t\tif (!_results.data.length || Array.isArray(_results.data[0]))\n\t\t\t{\n\t\t\t\t_results.data = _results.data.map(processRow);\n\t\t\t\tincrementBy = _results.data.length;\n\t\t\t}\n\t\t\telse\n\t\t\t\t_results.data = processRow(_results.data, 0);\n\n\n\t\t\tif (_config.header && _results.meta)\n\t\t\t\t_results.meta.fields = _fields;\n\n\t\t\t_rowCounter += incrementBy;\n\t\t\treturn _results;\n\t\t}\n\n\t\tfunction guessDelimiter(input, newline, skipEmptyLines, comments, delimitersToGuess) {\n\t\t\tvar bestDelim, bestDelta, fieldCountPrevRow, maxFieldCount;\n\n\t\t\tdelimitersToGuess = delimitersToGuess || [',', '\\t', '|', ';', Papa.RECORD_SEP, Papa.UNIT_SEP];\n\n\t\t\tfor (var i = 0; i < delimitersToGuess.length; i++) {\n\t\t\t\tvar delim = delimitersToGuess[i];\n\t\t\t\tvar delta = 0, avgFieldCount = 0, emptyLinesCount = 0;\n\t\t\t\tfieldCountPrevRow = undefined;\n\n\t\t\t\tvar preview = new Parser({\n\t\t\t\t\tcomments: comments,\n\t\t\t\t\tdelimiter: delim,\n\t\t\t\t\tnewline: newline,\n\t\t\t\t\tpreview: 10\n\t\t\t\t}).parse(input);\n\n\t\t\t\tfor (var j = 0; j < preview.data.length; j++) {\n\t\t\t\t\tif (skipEmptyLines && testEmptyLine(preview.data[j])) {\n\t\t\t\t\t\temptyLinesCount++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tvar fieldCount = preview.data[j].length;\n\t\t\t\t\tavgFieldCount += fieldCount;\n\n\t\t\t\t\tif (typeof fieldCountPrevRow === 'undefined') {\n\t\t\t\t\t\tfieldCountPrevRow = fieldCount;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\telse if (fieldCount > 0) {\n\t\t\t\t\t\tdelta += Math.abs(fieldCount - fieldCountPrevRow);\n\t\t\t\t\t\tfieldCountPrevRow = fieldCount;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (preview.data.length > 0)\n\t\t\t\t\tavgFieldCount /= (preview.data.length - emptyLinesCount);\n\n\t\t\t\tif ((typeof bestDelta === 'undefined' || delta <= bestDelta)\n\t\t\t\t\t&& (typeof maxFieldCount === 'undefined' || avgFieldCount > maxFieldCount) && avgFieldCount > 1.99) {\n\t\t\t\t\tbestDelta = delta;\n\t\t\t\t\tbestDelim = delim;\n\t\t\t\t\tmaxFieldCount = avgFieldCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_config.delimiter = bestDelim;\n\n\t\t\treturn {\n\t\t\t\tsuccessful: !!bestDelim,\n\t\t\t\tbestDelimiter: bestDelim\n\t\t\t};\n\t\t}\n\n\t\tfunction guessLineEndings(input, quoteChar)\n\t\t{\n\t\t\tinput = input.substring(0, 1024 * 1024);\t// max length 1 MB\n\t\t\t// Replace all the text inside quotes\n\t\t\tvar re = new RegExp(escapeRegExp(quoteChar) + '([^]*?)' + escapeRegExp(quoteChar), 'gm');\n\t\t\tinput = input.replace(re, '');\n\n\t\t\tvar r = input.split('\\r');\n\n\t\t\tvar n = input.split('\\n');\n\n\t\t\tvar nAppearsFirst = (n.length > 1 && n[0].length < r[0].length);\n\n\t\t\tif (r.length === 1 || nAppearsFirst)\n\t\t\t\treturn '\\n';\n\n\t\t\tvar numWithN = 0;\n\t\t\tfor (var i = 0; i < r.length; i++)\n\t\t\t{\n\t\t\t\tif (r[i][0] === '\\n')\n\t\t\t\t\tnumWithN++;\n\t\t\t}\n\n\t\t\treturn numWithN >= r.length / 2 ? '\\r\\n' : '\\r';\n\t\t}\n\n\t\tfunction addError(type, code, msg, row)\n\t\t{\n\t\t\tvar error = {\n\t\t\t\ttype: type,\n\t\t\t\tcode: code,\n\t\t\t\tmessage: msg\n\t\t\t};\n\t\t\tif(row !== undefined) {\n\t\t\t\terror.row = row;\n\t\t\t}\n\t\t\t_results.errors.push(error);\n\t\t}\n\t}\n\n\t/** https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions */\n\tfunction escapeRegExp(string)\n\t{\n\t\treturn string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n\t}\n\n\t/** The core parser implements speedy and correct CSV parsing */\n\tfunction Parser(config)\n\t{\n\t\t// Unpack the config object\n\t\tconfig = config || {};\n\t\tvar delim = config.delimiter;\n\t\tvar newline = config.newline;\n\t\tvar comments = config.comments;\n\t\tvar step = config.step;\n\t\tvar preview = config.preview;\n\t\tvar fastMode = config.fastMode;\n\t\tvar quoteChar;\n\t\tif (config.quoteChar === undefined || config.quoteChar === null) {\n\t\t\tquoteChar = '\"';\n\t\t} else {\n\t\t\tquoteChar = config.quoteChar;\n\t\t}\n\t\tvar escapeChar = quoteChar;\n\t\tif (config.escapeChar !== undefined) {\n\t\t\tescapeChar = config.escapeChar;\n\t\t}\n\n\t\t// Delimiter must be valid\n\t\tif (typeof delim !== 'string'\n\t\t\t|| Papa.BAD_DELIMITERS.indexOf(delim) > -1)\n\t\t\tdelim = ',';\n\n\t\t// Comment character must be valid\n\t\tif (comments === delim)\n\t\t\tthrow new Error('Comment character same as delimiter');\n\t\telse if (comments === true)\n\t\t\tcomments = '#';\n\t\telse if (typeof comments !== 'string'\n\t\t\t|| Papa.BAD_DELIMITERS.indexOf(comments) > -1)\n\t\t\tcomments = false;\n\n\t\t// Newline must be valid: \\r, \\n, or \\r\\n\n\t\tif (newline !== '\\n' && newline !== '\\r' && newline !== '\\r\\n')\n\t\t\tnewline = '\\n';\n\n\t\t// We're gonna need these at the Parser scope\n\t\tvar cursor = 0;\n\t\tvar aborted = false;\n\n\t\tthis.parse = function(input, baseIndex, ignoreLastRow)\n\t\t{\n\t\t\t// For some reason, in Chrome, this speeds things up (!?)\n\t\t\tif (typeof input !== 'string')\n\t\t\t\tthrow new Error('Input must be a string');\n\n\t\t\t// We don't need to compute some of these every time parse() is called,\n\t\t\t// but having them in a more local scope seems to perform better\n\t\t\tvar inputLen = input.length,\n\t\t\t\tdelimLen = delim.length,\n\t\t\t\tnewlineLen = newline.length,\n\t\t\t\tcommentsLen = comments.length;\n\t\t\tvar stepIsFunction = isFunction(step);\n\n\t\t\t// Establish starting state\n\t\t\tcursor = 0;\n\t\t\tvar data = [], errors = [], row = [], lastCursor = 0;\n\n\t\t\tif (!input)\n\t\t\t\treturn returnable();\n\n\t\t\t// Rename headers if there are duplicates\n\t\t\tif (config.header)\n\t\t\t{\n\t\t\t\tvar firstLine = input.split(newline)[0];\n\t\t\t\tvar headers = firstLine.split(delim);\n\t\t\t\tvar separator = '_';\n\t\t\t\tvar headerMap = [];\n\t\t\t\tvar headerCount = {};\n\t\t\t\tvar duplicateHeaders = false;\n\n\t\t\t\tfor (var j in headers) {\n\t\t\t\t\tvar header = headers[j];\n\t\t\t\t\tif (isFunction(config.transformHeader))\n\t\t\t\t\t\theader = config.transformHeader(header, j);\n\t\t\t\t\tvar headerName = header;\n\n\t\t\t\t\tvar count = headerCount[header] || 0;\n\t\t\t\t\tif (count > 0) {\n\t\t\t\t\t\tduplicateHeaders = true;\n\t\t\t\t\t\theaderName = header + separator + count;\n\t\t\t\t\t}\n\t\t\t\t\theaderCount[header] = count + 1;\n\n\t\t\t\t\theaderMap.push(headerName);\n\t\t\t\t}\n\t\t\t\tif (duplicateHeaders) {\n\t\t\t\t\tvar editedInput = input.split(newline);\n\t\t\t\t\teditedInput[0] = headerMap.join(delim);\n\t\t\t\t\tinput = editedInput.join(newline);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (fastMode || (fastMode !== false && input.indexOf(quoteChar) === -1))\n\t\t\t{\n\t\t\t\tvar rows = input.split(newline);\n\t\t\t\tfor (var i = 0; i < rows.length; i++)\n\t\t\t\t{\n\t\t\t\t\trow = rows[i];\n\t\t\t\t\tcursor += row.length;\n\t\t\t\t\tif (i !== rows.length - 1)\n\t\t\t\t\t\tcursor += newline.length;\n\t\t\t\t\telse if (ignoreLastRow)\n\t\t\t\t\t\treturn returnable();\n\t\t\t\t\tif (comments && row.substring(0, commentsLen) === comments)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\tif (stepIsFunction)\n\t\t\t\t\t{\n\t\t\t\t\t\tdata = [];\n\t\t\t\t\t\tpushRow(row.split(delim));\n\t\t\t\t\t\tdoStep();\n\t\t\t\t\t\tif (aborted)\n\t\t\t\t\t\t\treturn returnable();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tpushRow(row.split(delim));\n\t\t\t\t\tif (preview && i >= preview)\n\t\t\t\t\t{\n\t\t\t\t\t\tdata = data.slice(0, preview);\n\t\t\t\t\t\treturn returnable(true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnable();\n\t\t\t}\n\n\t\t\tvar nextDelim = input.indexOf(delim, cursor);\n\t\t\tvar nextNewline = input.indexOf(newline, cursor);\n\t\t\tvar quoteCharRegex = new RegExp(escapeRegExp(escapeChar) + escapeRegExp(quoteChar), 'g');\n\t\t\tvar quoteSearch = input.indexOf(quoteChar, cursor);\n\n\t\t\t// Parser loop\n\t\t\tfor (;;)\n\t\t\t{\n\t\t\t\t// Field has opening quote\n\t\t\t\tif (input[cursor] === quoteChar)\n\t\t\t\t{\n\t\t\t\t\t// Start our search for the closing quote where the cursor is\n\t\t\t\t\tquoteSearch = cursor;\n\n\t\t\t\t\t// Skip the opening quote\n\t\t\t\t\tcursor++;\n\n\t\t\t\t\tfor (;;)\n\t\t\t\t\t{\n\t\t\t\t\t\t// Find closing quote\n\t\t\t\t\t\tquoteSearch = input.indexOf(quoteChar, quoteSearch + 1);\n\n\t\t\t\t\t\t//No other quotes are found - no other delimiters\n\t\t\t\t\t\tif (quoteSearch === -1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (!ignoreLastRow) {\n\t\t\t\t\t\t\t\t// No closing quote... what a pity\n\t\t\t\t\t\t\t\terrors.push({\n\t\t\t\t\t\t\t\t\ttype: 'Quotes',\n\t\t\t\t\t\t\t\t\tcode: 'MissingQuotes',\n\t\t\t\t\t\t\t\t\tmessage: 'Quoted field unterminated',\n\t\t\t\t\t\t\t\t\trow: data.length,\t// row has yet to be inserted\n\t\t\t\t\t\t\t\t\tindex: cursor\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn finish();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Closing quote at EOF\n\t\t\t\t\t\tif (quoteSearch === inputLen - 1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar value = input.substring(cursor, quoteSearch).replace(quoteCharRegex, quoteChar);\n\t\t\t\t\t\t\treturn finish(value);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If this quote is escaped, it's part of the data; skip it\n\t\t\t\t\t\t// If the quote character is the escape character, then check if the next character is the escape character\n\t\t\t\t\t\tif (quoteChar === escapeChar && input[quoteSearch + 1] === escapeChar)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tquoteSearch++;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If the quote character is not the escape character, then check if the previous character was the escape character\n\t\t\t\t\t\tif (quoteChar !== escapeChar && quoteSearch !== 0 && input[quoteSearch - 1] === escapeChar)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(nextDelim !== -1 && nextDelim < (quoteSearch + 1)) {\n\t\t\t\t\t\t\tnextDelim = input.indexOf(delim, (quoteSearch + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(nextNewline !== -1 && nextNewline < (quoteSearch + 1)) {\n\t\t\t\t\t\t\tnextNewline = input.indexOf(newline, (quoteSearch + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Check up to nextDelim or nextNewline, whichever is closest\n\t\t\t\t\t\tvar checkUpTo = nextNewline === -1 ? nextDelim : Math.min(nextDelim, nextNewline);\n\t\t\t\t\t\tvar spacesBetweenQuoteAndDelimiter = extraSpaces(checkUpTo);\n\n\t\t\t\t\t\t// Closing quote followed by delimiter or 'unnecessary spaces + delimiter'\n\t\t\t\t\t\tif (input.substr(quoteSearch + 1 + spacesBetweenQuoteAndDelimiter, delimLen) === delim)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trow.push(input.substring(cursor, quoteSearch).replace(quoteCharRegex, quoteChar));\n\t\t\t\t\t\t\tcursor = quoteSearch + 1 + spacesBetweenQuoteAndDelimiter + delimLen;\n\n\t\t\t\t\t\t\t// If char after following delimiter is not quoteChar, we find next quote char position\n\t\t\t\t\t\t\tif (input[quoteSearch + 1 + spacesBetweenQuoteAndDelimiter + delimLen] !== quoteChar)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tquoteSearch = input.indexOf(quoteChar, cursor);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tnextDelim = input.indexOf(delim, cursor);\n\t\t\t\t\t\t\tnextNewline = input.indexOf(newline, cursor);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar spacesBetweenQuoteAndNewLine = extraSpaces(nextNewline);\n\n\t\t\t\t\t\t// Closing quote followed by newline or 'unnecessary spaces + newLine'\n\t\t\t\t\t\tif (input.substring(quoteSearch + 1 + spacesBetweenQuoteAndNewLine, quoteSearch + 1 + spacesBetweenQuoteAndNewLine + newlineLen) === newline)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trow.push(input.substring(cursor, quoteSearch).replace(quoteCharRegex, quoteChar));\n\t\t\t\t\t\t\tsaveRow(quoteSearch + 1 + spacesBetweenQuoteAndNewLine + newlineLen);\n\t\t\t\t\t\t\tnextDelim = input.indexOf(delim, cursor);\t// because we may have skipped the nextDelim in the quoted field\n\t\t\t\t\t\t\tquoteSearch = input.indexOf(quoteChar, cursor);\t// we search for first quote in next line\n\n\t\t\t\t\t\t\tif (stepIsFunction)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdoStep();\n\t\t\t\t\t\t\t\tif (aborted)\n\t\t\t\t\t\t\t\t\treturn returnable();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (preview && data.length >= preview)\n\t\t\t\t\t\t\t\treturn returnable(true);\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t// Checks for valid closing quotes are complete (escaped quotes or quote followed by EOF/delimiter/newline) -- assume these quotes are part of an invalid text string\n\t\t\t\t\t\terrors.push({\n\t\t\t\t\t\t\ttype: 'Quotes',\n\t\t\t\t\t\t\tcode: 'InvalidQuotes',\n\t\t\t\t\t\t\tmessage: 'Trailing quote on quoted field is malformed',\n\t\t\t\t\t\t\trow: data.length,\t// row has yet to be inserted\n\t\t\t\t\t\t\tindex: cursor\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tquoteSearch++;\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Comment found at start of new line\n\t\t\t\tif (comments && row.length === 0 && input.substring(cursor, cursor + commentsLen) === comments)\n\t\t\t\t{\n\t\t\t\t\tif (nextNewline === -1)\t// Comment ends at EOF\n\t\t\t\t\t\treturn returnable();\n\t\t\t\t\tcursor = nextNewline + newlineLen;\n\t\t\t\t\tnextNewline = input.indexOf(newline, cursor);\n\t\t\t\t\tnextDelim = input.indexOf(delim, cursor);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Next delimiter comes before next newline, so we've reached end of field\n\t\t\t\tif (nextDelim !== -1 && (nextDelim < nextNewline || nextNewline === -1))\n\t\t\t\t{\n\t\t\t\t\trow.push(input.substring(cursor, nextDelim));\n\t\t\t\t\tcursor = nextDelim + delimLen;\n\t\t\t\t\t// we look for next delimiter char\n\t\t\t\t\tnextDelim = input.indexOf(delim, cursor);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// End of row\n\t\t\t\tif (nextNewline !== -1)\n\t\t\t\t{\n\t\t\t\t\trow.push(input.substring(cursor, nextNewline));\n\t\t\t\t\tsaveRow(nextNewline + newlineLen);\n\n\t\t\t\t\tif (stepIsFunction)\n\t\t\t\t\t{\n\t\t\t\t\t\tdoStep();\n\t\t\t\t\t\tif (aborted)\n\t\t\t\t\t\t\treturn returnable();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (preview && data.length >= preview)\n\t\t\t\t\t\treturn returnable(true);\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\n\t\t\treturn finish();\n\n\n\t\t\tfunction pushRow(row)\n\t\t\t{\n\t\t\t\tdata.push(row);\n\t\t\t\tlastCursor = cursor;\n\t\t\t}\n\n\t\t\t/**\n * checks if there are extra spaces after closing quote and given index without any text\n * if Yes, returns the number of spaces\n */\n\t\t\tfunction extraSpaces(index) {\n\t\t\t\tvar spaceLength = 0;\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tvar textBetweenClosingQuoteAndIndex = input.substring(quoteSearch + 1, index);\n\t\t\t\t\tif (textBetweenClosingQuoteAndIndex && textBetweenClosingQuoteAndIndex.trim() === '') {\n\t\t\t\t\t\tspaceLength = textBetweenClosingQuoteAndIndex.length;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn spaceLength;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Appends the remaining input from cursor to the end into\n\t\t\t * row, saves the row, calls step, and returns the results.\n\t\t\t */\n\t\t\tfunction finish(value)\n\t\t\t{\n\t\t\t\tif (ignoreLastRow)\n\t\t\t\t\treturn returnable();\n\t\t\t\tif (typeof value === 'undefined')\n\t\t\t\t\tvalue = input.substring(cursor);\n\t\t\t\trow.push(value);\n\t\t\t\tcursor = inputLen;\t// important in case parsing is paused\n\t\t\t\tpushRow(row);\n\t\t\t\tif (stepIsFunction)\n\t\t\t\t\tdoStep();\n\t\t\t\treturn returnable();\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Appends the current row to the results. It sets the cursor\n\t\t\t * to newCursor and finds the nextNewline. The caller should\n\t\t\t * take care to execute user's step function and check for\n\t\t\t * preview and end parsing if necessary.\n\t\t\t */\n\t\t\tfunction saveRow(newCursor)\n\t\t\t{\n\t\t\t\tcursor = newCursor;\n\t\t\t\tpushRow(row);\n\t\t\t\trow = [];\n\t\t\t\tnextNewline = input.indexOf(newline, cursor);\n\t\t\t}\n\n\t\t\t/** Returns an object with the results, errors, and meta. */\n\t\t\tfunction returnable(stopped)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tdata: data,\n\t\t\t\t\terrors: errors,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tdelimiter: delim,\n\t\t\t\t\t\tlinebreak: newline,\n\t\t\t\t\t\taborted: aborted,\n\t\t\t\t\t\ttruncated: !!stopped,\n\t\t\t\t\t\tcursor: lastCursor + (baseIndex || 0)\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t/** Executes the user's step function and resets data & errors. */\n\t\t\tfunction doStep()\n\t\t\t{\n\t\t\t\tstep(returnable());\n\t\t\t\tdata = [];\n\t\t\t\terrors = [];\n\t\t\t}\n\t\t};\n\n\t\t/** Sets the abort flag */\n\t\tthis.abort = function()\n\t\t{\n\t\t\taborted = true;\n\t\t};\n\n\t\t/** Gets the cursor position */\n\t\tthis.getCharIndex = function()\n\t\t{\n\t\t\treturn cursor;\n\t\t};\n\t}\n\n\n\tfunction newWorker()\n\t{\n\t\tif (!Papa.WORKERS_SUPPORTED)\n\t\t\treturn false;\n\n\t\tvar workerUrl = getWorkerBlob();\n\t\tvar w = new global.Worker(workerUrl);\n\t\tw.onmessage = mainThreadReceivedMessage;\n\t\tw.id = workerIdCounter++;\n\t\tworkers[w.id] = w;\n\t\treturn w;\n\t}\n\n\t/** Callback when main thread receives a message */\n\tfunction mainThreadReceivedMessage(e)\n\t{\n\t\tvar msg = e.data;\n\t\tvar worker = workers[msg.workerId];\n\t\tvar aborted = false;\n\n\t\tif (msg.error)\n\t\t\tworker.userError(msg.error, msg.file);\n\t\telse if (msg.results && msg.results.data)\n\t\t{\n\t\t\tvar abort = function() {\n\t\t\t\taborted = true;\n\t\t\t\tcompleteWorker(msg.workerId, { data: [], errors: [], meta: { aborted: true } });\n\t\t\t};\n\n\t\t\tvar handle = {\n\t\t\t\tabort: abort,\n\t\t\t\tpause: notImplemented,\n\t\t\t\tresume: notImplemented\n\t\t\t};\n\n\t\t\tif (isFunction(worker.userStep))\n\t\t\t{\n\t\t\t\tfor (var i = 0; i < msg.results.data.length; i++)\n\t\t\t\t{\n\t\t\t\t\tworker.userStep({\n\t\t\t\t\t\tdata: msg.results.data[i],\n\t\t\t\t\t\terrors: msg.results.errors,\n\t\t\t\t\t\tmeta: msg.results.meta\n\t\t\t\t\t}, handle);\n\t\t\t\t\tif (aborted)\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdelete msg.results;\t// free memory ASAP\n\t\t\t}\n\t\t\telse if (isFunction(worker.userChunk))\n\t\t\t{\n\t\t\t\tworker.userChunk(msg.results, handle, msg.file);\n\t\t\t\tdelete msg.results;\n\t\t\t}\n\t\t}\n\n\t\tif (msg.finished && !aborted)\n\t\t\tcompleteWorker(msg.workerId, msg.results);\n\t}\n\n\tfunction completeWorker(workerId, results) {\n\t\tvar worker = workers[workerId];\n\t\tif (isFunction(worker.userComplete))\n\t\t\tworker.userComplete(results);\n\t\tworker.terminate();\n\t\tdelete workers[workerId];\n\t}\n\n\tfunction notImplemented() {\n\t\tthrow new Error('Not implemented.');\n\t}\n\n\t/** Callback when worker thread receives a message */\n\tfunction workerThreadReceivedMessage(e)\n\t{\n\t\tvar msg = e.data;\n\n\t\tif (typeof Papa.WORKER_ID === 'undefined' && msg)\n\t\t\tPapa.WORKER_ID = msg.workerId;\n\n\t\tif (typeof msg.input === 'string')\n\t\t{\n\t\t\tglobal.postMessage({\n\t\t\t\tworkerId: Papa.WORKER_ID,\n\t\t\t\tresults: Papa.parse(msg.input, msg.config),\n\t\t\t\tfinished: true\n\t\t\t});\n\t\t}\n\t\telse if ((global.File && msg.input instanceof File) || msg.input instanceof Object)\t// thank you, Safari (see issue #106)\n\t\t{\n\t\t\tvar results = Papa.parse(msg.input, msg.config);\n\t\t\tif (results)\n\t\t\t\tglobal.postMessage({\n\t\t\t\t\tworkerId: Papa.WORKER_ID,\n\t\t\t\t\tresults: results,\n\t\t\t\t\tfinished: true\n\t\t\t\t});\n\t\t}\n\t}\n\n\t/** Makes a deep copy of an array or object (mostly) */\n\tfunction copy(obj)\n\t{\n\t\tif (typeof obj !== 'object' || obj === null)\n\t\t\treturn obj;\n\t\tvar cpy = Array.isArray(obj) ? [] : {};\n\t\tfor (var key in obj)\n\t\t\tcpy[key] = copy(obj[key]);\n\t\treturn cpy;\n\t}\n\n\tfunction bindFunction(f, self)\n\t{\n\t\treturn function() { f.apply(self, arguments); };\n\t}\n\n\tfunction isFunction(func)\n\t{\n\t\treturn typeof func === 'function';\n\t}\n\n\treturn Papa;\n}));\n","import dayjs from \"dayjs\";\nimport { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\nimport * as yup from \"yup\";\n\nimport { INITIAL_VALUES } from \"./constants\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const isPastDate = date =>\n dayjs(date).isBefore(dayjs().subtract(1, \"days\"));\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = file =>\n new Promise(resolve => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const emails = results.data.map(item => item.email.trim());\n resolve(createEmailOptions(emails));\n },\n });\n });\n\nexport const generateInitialValues = defaultValues => ({\n ...INITIAL_VALUES,\n ...defaultValues,\n});\n\nexport const emailFormValidationSchema = disableReplyTo =>\n yup.object().shape({\n emailSubject: yup\n .string()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.subject\")\n ),\n emailBody: yup\n .string()\n .test(\n \"emailBody\",\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.emailBody\"),\n value => !isEditorEmpty(value)\n ),\n sendFromEmail: yup\n .string()\n .trim()\n .email(\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\")\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendFrom\")\n ),\n replyToEmail:\n !disableReplyTo &&\n yup\n .string()\n .trim()\n .email(\n t(\n \"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"\n )\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.replyTo\")\n ),\n notifyEmails: yup\n .array()\n .min(\n 1,\n t(\n \"neetoMolecules.shareViaEmail.validations.atleastOneIsRequired.emailAddress\"\n )\n )\n .test(\n \"are-all-emails-valid\",\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"),\n emails => emails.every(prop(\"valid\"))\n ),\n isSendLaterEnabled: yup.boolean(),\n sendEmailDatetime: yup.date().when(\"isSendLaterEnabled\", {\n is: true,\n then: yup\n .date()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendLater\")\n ),\n }),\n name: yup.string(),\n actionButtonText: yup\n .string()\n .required(\n t(\n \"neetoMolecules.shareViaEmail.validations.requiredField.startButtonText\"\n )\n ),\n });\n","import React, { useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Typography, Label } from \"neetoui\";\nimport { Input, Switch, MultiEmailInput, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ALLOWED_FILE_PICKER_TYPES } from \"./constants\";\nimport EmailBody from \"./EmailBodyEditor\";\nimport FilePicker from \"./FilePicker\";\nimport FormikDatePicker from \"./FormikDatePicker\";\nimport { parseCsvEmails, isPastDate } from \"./utils\";\n\nconst Form = ({ disableReplyTo, showVideoEmbedInEditor, children }) => {\n const { values, setFieldValue, initialValues } = useFormikContext();\n const editorRef = useRef();\n const { t } = useTranslation();\n\n const handleReset = () => {\n editorRef.current.editor.commands.setContent(initialValues.emailBody);\n };\n\n const handleCSVFile = async ([file]) => {\n const values = await parseCsvEmails(file);\n setFieldValue(\"notifyEmails\", values);\n };\n\n return (\n <>\n <div className=\"space-y-4\">\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Typography\n data-cy=\"send-to-input-label\"\n lineHeight=\"normal\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaEmail.sendTo\")}\n </Typography>\n <FilePicker\n types={ALLOWED_FILE_PICKER_TYPES}\n onChange={handleCSVFile}\n />\n </div>\n <MultiEmailInput\n filterInvalidEmails\n required\n label=\"\"\n name=\"notifyEmails\"\n />\n </div>\n <Input\n required\n className=\"col-span-1\"\n label={t(\"neetoMolecules.shareViaEmail.subject\")}\n name=\"emailSubject\"\n />\n <EmailBody\n id=\"emailBody\"\n ref={editorRef}\n showVideoEmbedInEditor={showVideoEmbedInEditor}\n />\n <div ref={editorRef} />\n <div>\n <Label className=\"flex items-center gap-2\">\n <Switch\n data-cy=\"send-later-switch\"\n data-testid=\"send-later-switch\"\n name=\"isSendLaterEnabled\"\n />\n <Typography\n component=\"span\"\n data-cy=\"send-later-label\"\n lineHeight=\"normal\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaEmail.sendLater\")}\n </Typography>\n </Label>\n </div>\n {values.isSendLaterEnabled && (\n <FormikDatePicker\n autoFocus\n showTime\n data-cy=\"email-share-date-input\"\n data-testid=\"formik-date-picker\"\n disabledDate={isPastDate}\n name=\"sendEmailDatetime\"\n picker=\"date\"\n size=\"large\"\n type=\"date\"\n />\n )}\n <Input\n required\n label={t(\"neetoMolecules.shareViaEmail.startButtonText\")}\n name=\"actionButtonText\"\n />\n <div\n className={classnames({ \"grid grid-cols-2 gap-6\": !disableReplyTo })}\n >\n <Input\n required\n className=\"col-auto\"\n label={t(\"neetoMolecules.shareViaEmail.sendFrom\")}\n name=\"sendFromEmail\"\n />\n {!disableReplyTo && (\n <Input\n required\n className=\"col-auto\"\n data-testid=\"replyTo-field\"\n label={t(\"neetoMolecules.shareViaEmail.replyTo\")}\n name=\"replyToEmail\"\n />\n )}\n </div>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 mt-4 border-t py-4\">\n <h3 className=\"mb-4\">\n {t(\"neetoMolecules.shareViaEmail.additionalOptions\")}\n </h3>\n {children}\n </div>\n )}\n <div className=\"mt-6\">\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.reset\"),\n type: \"reset\",\n onClick: handleReset,\n }}\n submitButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.sendEmail\"),\n }}\n />\n </div>\n </>\n );\n};\n\nexport default Form;\n","import React from \"react\";\n\nimport { LeftArrow } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { Form } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmailPreview from \"components/EmailPreview\";\n\nimport EmailForm from \"./Form\";\nimport { emailFormValidationSchema, generateInitialValues } from \"./utils\";\n\nconst ShareViaEmail = ({\n backToUrl,\n handleSubmit,\n children,\n description,\n defaultValues,\n disableReplyTo,\n productName,\n showVideoEmbedInEditor,\n}) => {\n const { t } = useTranslation();\n\n const sendToEmails = notifyEmails => notifyEmails.map(email => email?.value);\n\n return (\n <div className=\"neeto-ui-bg-gray-100 flex w-full flex-1 flex-col p-8\">\n <div className=\"mx-auto flex w-full max-w-7xl flex-col\">\n <Form\n formProps={{ noValidate: true }}\n formikProps={{\n enableReinitialize: true,\n validateOnMount: true,\n initialValues: generateInitialValues(defaultValues),\n validationSchema: emailFormValidationSchema(disableReplyTo),\n onSubmit: handleSubmit,\n }}\n >\n {({ values }) => (\n <div className=\"grid grid-cols-12 gap-8\">\n <div className=\"col-span-5\">\n {backToUrl && (\n <Button\n className=\"mb-4\"\n data-testid=\"back-to-url-button\"\n icon={LeftArrow}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaEmail.backToShare\")}\n size=\"small\"\n style=\"link\"\n to={backToUrl}\n />\n )}\n <div className=\"mb-6\">\n <Typography\n className=\"mb-0.5\"\n data-cy=\"share-via-email-heading\"\n lineHeight=\"normal\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaEmail.title\")}\n </Typography>\n {description && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"share-via-email-sub-heading\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n )}\n </div>\n <EmailForm\n disableReplyTo={disableReplyTo}\n showVideoEmbedInEditor={showVideoEmbedInEditor}\n >\n {children}\n </EmailForm>\n </div>\n <div className=\"col-span-7\">\n <div className=\"sticky top-10 pt-10\">\n <EmailPreview\n actionButtonText={values.actionButtonText}\n body={values.emailBody}\n from={values.sendFromEmail}\n productName={productName}\n subject={values.emailSubject}\n to={sendToEmails(values.notifyEmails)}\n />\n </div>\n </div>\n </div>\n )}\n </Form>\n </div>\n </div>\n );\n};\n\nexport default ShareViaEmail;\n"],"names":["EmailPreview","_ref","to","from","subject","body","productName","actionButtonText","logo","_useTranslation","useTranslation","t","React","createElement","className","Typography","lineHeight","style","isNotEmpty","join","EditorContent","content","Button","label","alt","src","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","require$$0","INITIAL_VALUES","sendFromEmail","replyToEmail","notifyEmails","emailSubject","emailBody","isSendLaterEnabled","sendEmailDatetime","undefined","category","EDITOR_ADDONS","ALLOWED_FILE_PICKER_TYPES","DIRECT_UPLOAD_URL","arrayWithoutHoles","iterableToArray","nonIterableSpread","EmailBody","ref","id","showVideoEmbedInEditor","FormikEditor","required","name","uploadEndpoint","addons","concat","_toConsumableArray","forwardRef","FilePicker","_ref$types","types","onChange","inputRef","useRef","accept","handleInputChange","_ref2","target","files","current","value","handleClick","click","Fragment","icon","Upload","size","tooltipProps","onClick","type","objectWithoutPropertiesLoose","FormikDatePicker","props","_objectWithoutProperties","_excluded","_useField","useField","_useField2","_slicedToArray","field","meta","setValue","DatePicker","_extends","date","toPrimitive","toPropertyKey","this","isValidEmail","email","string","isValidSync","isPastDate","dayjs","isBefore","subtract","createEmailOptions","emails","arguments","length","map","valid","parseCsvEmails","file","Promise","resolve","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","data","item","trim","generateInitialValues","defaultValues","_objectSpread","emailFormValidationSchema","disableReplyTo","yup","object","shape","test","isEditorEmpty","array","min","every","prop","when","is","then","Form","children","_useFormikContext","useFormikContext","values","setFieldValue","initialValues","editorRef","handleReset","editor","commands","setContent","handleCSVFile","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref4","wrap","_callee$","_context","prev","next","sent","stop","_x","apply","weight","MultiEmailInput","filterInvalidEmails","Input","Label","Switch","component","autoFocus","showTime","disabledDate","picker","classnames","ActionBlock","cancelButtonProps","submitButtonProps","ShareViaEmail","backToUrl","handleSubmit","description","sendToEmails","formProps","noValidate","formikProps","enableReinitialize","validateOnMount","validationSchema","onSubmit","LeftArrow","iconPosition","EmailForm"],"mappings":"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"}