@bigbinary/neeto-molecules 1.1.10 → 1.1.12

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 (477) hide show
  1. package/dist/AutoSaveInput/autosaveinput.scss +15 -0
  2. package/dist/AutoSaveInput/constants.js +13 -0
  3. package/dist/AutoSaveInput/index.js +124 -0
  4. package/dist/AutoSaveInput/utils.js +10 -0
  5. package/dist/Breadcrumbs/breadcrumbs.scss +33 -0
  6. package/dist/Breadcrumbs/index.js +31 -0
  7. package/dist/BrowserSupport/Callout.js +15 -0
  8. package/dist/BrowserSupport/ContactUs.js +21 -0
  9. package/dist/BrowserSupport/DownloadLink.js +17 -0
  10. package/dist/BrowserSupport/PartialSupportedBrowserVersion.js +17 -0
  11. package/dist/BrowserSupport/UnknownBrowser.js +13 -0
  12. package/dist/BrowserSupport/UnsupportedBrowser.js +24 -0
  13. package/dist/BrowserSupport/UnsupportedBrowserMessage.js +22 -0
  14. package/dist/BrowserSupport/UnsupportedBrowserVersion.js +27 -0
  15. package/dist/BrowserSupport/UnsupportedVersionMessage.js +30 -0
  16. package/dist/BrowserSupport/browsersupport.scss +71 -0
  17. package/dist/BrowserSupport/constants.js +63 -0
  18. package/dist/BrowserSupport/index.js +58 -0
  19. package/dist/BrowserSupport/utils.js +32 -0
  20. package/dist/CalendarView/CustomDatePicker.js +87 -0
  21. package/dist/CalendarView/Header.js +53 -0
  22. package/dist/CalendarView/constants.js +19 -0
  23. package/dist/CalendarView/index.js +83 -0
  24. package/dist/CalendarView/utils.js +50 -0
  25. package/dist/Codeblock/index.js +30 -0
  26. package/dist/{Columns.js → Columns/index.js} +13 -130
  27. package/dist/Columns/utils.js +20 -0
  28. package/dist/ConfirmationModal/constants.js +3 -0
  29. package/dist/{ConfirmationModal.js → ConfirmationModal/index.js} +7 -23
  30. package/dist/ConfirmationModal/utils.js +10 -0
  31. package/dist/Container/container.scss +21 -0
  32. package/dist/Container/index.js +23 -0
  33. package/dist/CopyToClipboardButton/constants.js +13 -0
  34. package/dist/CopyToClipboardButton/copyToClipboard.scss +22 -0
  35. package/dist/CopyToClipboardButton/index.js +59 -0
  36. package/dist/CustomDomain/index.js +98 -0
  37. package/dist/CustomDomainDashboard/DeleteAlert.js +28 -0
  38. package/dist/CustomDomainDashboard/Header.js +32 -0
  39. package/dist/CustomDomainDashboard/Manage/Record.js +42 -0
  40. package/dist/CustomDomainDashboard/Manage/StatusInfo.js +21 -0
  41. package/dist/CustomDomainDashboard/Manage/TagBlock.js +36 -0
  42. package/dist/CustomDomainDashboard/Manage/constants.js +4 -0
  43. package/dist/CustomDomainDashboard/Manage/index.js +124 -0
  44. package/dist/CustomDomainDashboard/Manage/utils.js +8 -0
  45. package/dist/CustomDomainDashboard/api.js +35 -0
  46. package/dist/CustomDomainDashboard/constants.js +2 -0
  47. package/dist/CustomDomainDashboard/index.js +118 -0
  48. package/dist/CustomDomainDashboard/useCustomDomainApi.js +71 -0
  49. package/dist/CustomDomainDashboard/utils.js +84 -0
  50. package/dist/{DateFormat.js → DateFormat/index.js} +8 -25
  51. package/dist/DateRangeFilter/index.js +60 -0
  52. package/dist/DateRangeFilter/utils.js +113 -0
  53. package/dist/DynamicVariables/dynamic-variables.scss +34 -0
  54. package/dist/DynamicVariables/index.js +59 -0
  55. package/dist/DynamicVariables/utils.js +37 -0
  56. package/dist/EmailForm/EmailForm.js +97 -0
  57. package/dist/EmailForm/EmailFormProvider.js +45 -0
  58. package/dist/EmailForm/EmailPreview.js +129 -0
  59. package/dist/EmailForm/ReplyToField.js +55 -0
  60. package/dist/EmailForm/SendToField.js +27 -0
  61. package/dist/EmailForm/SubjectField.js +64 -0
  62. package/dist/EmailForm/constants.js +33 -0
  63. package/dist/EmailForm/contexts/EmailForm.js +7 -0
  64. package/dist/EmailForm/index.js +4 -0
  65. package/dist/EmailForm/utils.js +10 -0
  66. package/dist/EmailPreview/index.js +2 -0
  67. package/dist/{ErrorPage.js → ErrorPage/constants.js} +36 -175
  68. package/dist/ErrorPage/index.js +78 -0
  69. package/dist/Header/Breadcrumbs.js +31 -0
  70. package/dist/Header/Dropdown.js +12 -0
  71. package/dist/Header/constants.js +6 -0
  72. package/dist/Header/header.scss +121 -0
  73. package/dist/Header/index.js +61 -0
  74. package/dist/IconPicker/Icon.js +34 -0
  75. package/dist/IconPicker/NoResults.js +12 -0
  76. package/dist/IconPicker/constants.js +8 -0
  77. package/dist/IconPicker/icon-picker.scss +1 -0
  78. package/dist/IconPicker/index.js +164 -0
  79. package/dist/ImageWithFallback/ImagePlaceholder.js +16 -0
  80. package/dist/ImageWithFallback/index.js +31 -0
  81. package/dist/IntegrationCard/Dropdown.js +45 -0
  82. package/dist/IntegrationCard/Status.js +25 -0
  83. package/dist/IntegrationCard/index.js +128 -0
  84. package/dist/IntegrationDisconnectAlert/index.js +36 -0
  85. package/dist/{IntegrationWalkthroughModal.js → IntegrationWalkthroughModal/index.js} +6 -8
  86. package/dist/IpRestriction/AllowedIpRanges.js +75 -0
  87. package/dist/IpRestriction/CurrentIp.js +26 -0
  88. package/dist/IpRestriction/FormRow.js +84 -0
  89. package/dist/IpRestriction/Row.js +91 -0
  90. package/dist/IpRestriction/apis/allowed_ip_ranges.js +28 -0
  91. package/dist/IpRestriction/apis/current_ip.js +11 -0
  92. package/dist/IpRestriction/apis/ip_restriction.js +16 -0
  93. package/dist/IpRestriction/constants.js +20 -0
  94. package/dist/IpRestriction/hooks/reactQuery/useAllowedIpRanges.js +34 -0
  95. package/dist/IpRestriction/hooks/reactQuery/useCurrentIp.js +10 -0
  96. package/dist/IpRestriction/hooks/reactQuery/useIpRestrictions.js +18 -0
  97. package/dist/IpRestriction/index.js +102 -0
  98. package/dist/IpRestriction/utils.js +85 -0
  99. package/dist/KeyboardShortcuts/Pane/HotKey.js +44 -0
  100. package/dist/KeyboardShortcuts/Pane/HotKeyList.js +42 -0
  101. package/dist/KeyboardShortcuts/Pane/constants.js +25 -0
  102. package/dist/KeyboardShortcuts/Pane/index.js +61 -0
  103. package/dist/KeyboardShortcuts/Pane/keyboard-shortcuts.scss +5 -0
  104. package/dist/KeyboardShortcuts/Pane/utils.js +66 -0
  105. package/dist/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState.js +31 -0
  106. package/dist/KeyboardShortcuts/index.js +9 -0
  107. package/dist/LoginPage/Form.js +57 -0
  108. package/dist/LoginPage/constants.js +12 -0
  109. package/dist/LoginPage/index.js +103 -0
  110. package/dist/MenuBar/AddNew.js +25 -0
  111. package/dist/MenuBar/Block.js +60 -0
  112. package/dist/MenuBar/Item.js +32 -0
  113. package/dist/MenuBar/Search.js +39 -0
  114. package/dist/MenuBar/SubTitle.js +23 -0
  115. package/dist/MenuBar/index.js +46 -0
  116. package/dist/MenuBar/menubar.scss +154 -0
  117. package/dist/Metadata/Block.js +30 -0
  118. package/dist/Metadata/DetailsBlock.js +86 -0
  119. package/dist/Metadata/constants.js +9 -0
  120. package/dist/Metadata/index.js +29 -0
  121. package/dist/Metadata/metadata.scss +15 -0
  122. package/dist/MoreDropdown/constants.js +25 -0
  123. package/dist/{MoreDropdown.js → MoreDropdown/index.js} +9 -102
  124. package/dist/NavigationHeader/LeftBlock.js +32 -0
  125. package/dist/NavigationHeader/Navigation.js +24 -0
  126. package/dist/NavigationHeader/RightBlock.js +68 -0
  127. package/dist/NavigationHeader/constants.js +11 -0
  128. package/dist/NavigationHeader/index.js +19 -0
  129. package/dist/NavigationHeader/navigation-header.scss +3 -0
  130. package/dist/NeetoWidget/CodeBlock.js +57 -0
  131. package/dist/NeetoWidget/CodeSnippet.js +119 -0
  132. package/dist/NeetoWidget/EmbedCode.js +281 -0
  133. package/dist/NeetoWidget/Main.js +19 -0
  134. package/dist/NeetoWidget/SelectionSwitches/TooltipSwitch.js +25 -0
  135. package/dist/NeetoWidget/SelectionSwitches/index.js +44 -0
  136. package/dist/NeetoWidget/SyntaxHighlighter.js +17 -0
  137. package/dist/NeetoWidget/api.js +20 -0
  138. package/dist/NeetoWidget/constants.js +62 -0
  139. package/dist/NeetoWidget/hooks/useForceUpdate.js +14 -0
  140. package/dist/NeetoWidget/index.js +7 -0
  141. package/dist/NeetoWidget/mutations.js +9 -0
  142. package/dist/NeetoWidget/queries.js +32 -0
  143. package/dist/NeetoWidget/utils.js +83 -0
  144. package/dist/PageLoader/index.js +81 -0
  145. package/dist/PageLoader/page-loader.scss +95 -0
  146. package/dist/PhoneNumber/CountryPicker/SingleValue.js +21 -0
  147. package/dist/PhoneNumber/CountryPicker/constants.js +26 -0
  148. package/dist/PhoneNumber/CountryPicker/index.js +59 -0
  149. package/dist/PhoneNumber/FormikPhoneNumberInput.js +21 -0
  150. package/dist/PhoneNumber/PhoneNumber.js +30 -0
  151. package/dist/PhoneNumber/PhoneNumberInput.js +79 -0
  152. package/dist/PhoneNumber/index.js +5 -0
  153. package/dist/PhoneNumber/utils.js +55 -0
  154. package/dist/PublishBlock/AlertBlock.js +14 -0
  155. package/dist/PublishBlock/index.js +100 -0
  156. package/dist/PublishBlock/publish-block.scss +25 -0
  157. package/dist/Rename/DummySpan.js +21 -0
  158. package/dist/Rename/constants.js +1 -0
  159. package/dist/Rename/index.js +191 -0
  160. package/dist/Rename/rename.scss +69 -0
  161. package/dist/Rename/utils.js +10 -0
  162. package/dist/ResponsiveDevicePicker/constants.js +19 -0
  163. package/dist/ResponsiveDevicePicker/index.js +36 -0
  164. package/dist/Schedule/DisplayAvailability.js +58 -0
  165. package/dist/Schedule/Fields.js +43 -0
  166. package/dist/Schedule/Form/ScheduleRow.js +125 -0
  167. package/dist/Schedule/Form/constants.js +20 -0
  168. package/dist/Schedule/Form/index.js +144 -0
  169. package/dist/Schedule/Form/utils.js +63 -0
  170. package/dist/Schedule/Header.js +76 -0
  171. package/dist/Schedule/ScheduleContext.js +8 -0
  172. package/dist/Schedule/constants.js +8 -0
  173. package/dist/Schedule/dayjsExtended/constants.js +1 -0
  174. package/dist/Schedule/dayjsExtended/index.js +14 -0
  175. package/dist/Schedule/dayjsExtended/range.js +73 -0
  176. package/dist/Schedule/index.js +80 -0
  177. package/dist/Schedule/utils.js +152 -0
  178. package/dist/Scrollable/constants.js +8 -0
  179. package/dist/Scrollable/index.js +26 -0
  180. package/dist/Scrollable/scrollable.scss +32 -0
  181. package/dist/Search/index.js +52 -0
  182. package/dist/Security/AllowedKeywords/Add.js +38 -0
  183. package/dist/Security/AllowedKeywords/index.js +38 -0
  184. package/dist/Security/PasswordBlock.js +31 -0
  185. package/dist/Security/RadioBlock.js +38 -0
  186. package/dist/Security/api.js +12 -0
  187. package/dist/Security/constants.js +58 -0
  188. package/dist/Security/index.js +68 -0
  189. package/dist/Security/useSecurityApi.js +22 -0
  190. package/dist/Security/utils.js +31 -0
  191. package/dist/SendToFields/FilePicker.js +34 -0
  192. package/dist/SendToFields/constants.js +6 -0
  193. package/dist/SendToFields/index.js +102 -0
  194. package/dist/SendToFields/utils.js +54 -0
  195. package/dist/Settings/Category.js +30 -0
  196. package/dist/Settings/Item.js +38 -0
  197. package/dist/Settings/index.js +37 -0
  198. package/dist/Settings/utils.js +4 -0
  199. package/dist/ShareViaEmail/EmailBodyEditor.js +22 -0
  200. package/dist/ShareViaEmail/FilePicker.js +43 -0
  201. package/dist/ShareViaEmail/Form.js +101 -0
  202. package/dist/ShareViaEmail/FormikDatePicker.js +24 -0
  203. package/dist/ShareViaEmail/constants.js +14 -0
  204. package/dist/ShareViaEmail/index.js +89 -0
  205. package/dist/ShareViaEmail/utils.js +72 -0
  206. package/dist/ShareViaLink/EditURL.js +74 -0
  207. package/dist/ShareViaLink/Link.js +105 -0
  208. package/dist/ShareViaLink/QRCode.js +41 -0
  209. package/dist/ShareViaLink/RegenerateURL.js +47 -0
  210. package/dist/ShareViaLink/SocialMedia.js +52 -0
  211. package/dist/ShareViaLink/constants.js +25 -0
  212. package/dist/ShareViaLink/edit-url.scss +8 -0
  213. package/dist/ShareViaLink/index.js +46 -0
  214. package/dist/ShareViaLink/utils.js +47 -0
  215. package/dist/Sidebar/AppSwitcher/AppLink.js +45 -0
  216. package/dist/Sidebar/AppSwitcher/Backdrop.js +13 -0
  217. package/dist/Sidebar/AppSwitcher/Body.js +65 -0
  218. package/dist/Sidebar/AppSwitcher/Portal.js +27 -0
  219. package/dist/Sidebar/AppSwitcher/appswitcher.scss +164 -0
  220. package/dist/Sidebar/AppSwitcher/index.js +47 -0
  221. package/dist/Sidebar/AppSwitcher/utils.js +25 -0
  222. package/dist/Sidebar/Chevron.js +14 -0
  223. package/dist/Sidebar/FeaturedTooltip.js +19 -0
  224. package/dist/Sidebar/Footer/AppSwitcherButton.js +48 -0
  225. package/dist/Sidebar/Footer/ProfileButton.js +30 -0
  226. package/dist/Sidebar/Footer/index.js +56 -0
  227. package/dist/Sidebar/Footer/utils.js +39 -0
  228. package/dist/Sidebar/Header.js +33 -0
  229. package/dist/Sidebar/HelpSection/HelpSectionMenu.js +52 -0
  230. package/dist/Sidebar/HelpSection/index.js +32 -0
  231. package/dist/Sidebar/Links.js +112 -0
  232. package/dist/Sidebar/NavIconWrapper.js +20 -0
  233. package/dist/Sidebar/ProfileSection/LinkSection.js +36 -0
  234. package/dist/Sidebar/ProfileSection/ProfileMenu.js +48 -0
  235. package/dist/Sidebar/ProfileSection/index.js +42 -0
  236. package/dist/Sidebar/constants.js +40 -0
  237. package/dist/Sidebar/index.js +94 -0
  238. package/dist/Sidebar/sidebar.scss +379 -0
  239. package/dist/Sidebar/utils.js +18 -0
  240. package/dist/SubHeader/RightBlock/Columns.js +35 -0
  241. package/dist/SubHeader/RightBlock/Download.js +28 -0
  242. package/dist/SubHeader/RightBlock/Filter.js +31 -0
  243. package/dist/SubHeader/RightBlock/index.js +21 -0
  244. package/dist/SubHeader/RightBlock/utils.js +13 -0
  245. package/dist/SubHeader/index.js +28 -0
  246. package/dist/SubHeader/subheader.scss +78 -0
  247. package/dist/TableWrapper/index.js +18 -0
  248. package/dist/ThemeSidebar/Customize/Logo.js +39 -0
  249. package/dist/ThemeSidebar/Customize/Properties.js +170 -0
  250. package/dist/ThemeSidebar/Customize/index.js +66 -0
  251. package/dist/ThemeSidebar/Themes/ThemeCard.js +135 -0
  252. package/dist/ThemeSidebar/Themes/index.js +110 -0
  253. package/dist/ThemeSidebar/TitleBar.js +62 -0
  254. package/dist/ThemeSidebar/constants.js +127 -0
  255. package/dist/ThemeSidebar/fields/AlignmentBlock.js +50 -0
  256. package/dist/ThemeSidebar/fields/Card.js +19 -0
  257. package/dist/ThemeSidebar/fields/ColorBlock.js +19 -0
  258. package/dist/ThemeSidebar/fields/FontPickerBlock.js +35 -0
  259. package/dist/ThemeSidebar/fields/ImageBlock/ImageUploader.js +67 -0
  260. package/dist/ThemeSidebar/fields/ImageBlock/ProgressBar.js +22 -0
  261. package/dist/ThemeSidebar/fields/ImageBlock/index.js +55 -0
  262. package/dist/ThemeSidebar/fields/SelectBlock.js +24 -0
  263. package/dist/ThemeSidebar/fields/SliderBlock.js +30 -0
  264. package/dist/ThemeSidebar/fields/SwitchBlock.js +17 -0
  265. package/dist/ThemeSidebar/fields/TextBlock.js +13 -0
  266. package/dist/ThemeSidebar/fields/slider.scss +199 -0
  267. package/dist/ThemeSidebar/hooks/useDirectUploadDropzone.js +149 -0
  268. package/dist/ThemeSidebar/index.js +118 -0
  269. package/dist/ThemeSidebar/themeSidebar.scss +45 -0
  270. package/dist/ThemeSidebar/utils.js +169 -0
  271. package/dist/TimeFormat/index.js +3 -0
  272. package/dist/TimezoneMismatchModal/apis/time_zone.js +9 -0
  273. package/dist/TimezoneMismatchModal/index.js +83 -0
  274. package/dist/TimezoneMismatchModal/useTimeZoneApi.js +10 -0
  275. package/dist/TimezoneMismatchModal/utils.js +12 -0
  276. package/dist/ToggleFeatureCard/ToolTipSwitch.js +31 -0
  277. package/dist/ToggleFeatureCard/constants.js +5 -0
  278. package/dist/ToggleFeatureCard/hooks/useScrollIntoView.js +11 -0
  279. package/dist/ToggleFeatureCard/index.js +148 -0
  280. package/dist/ToggleFeatureCard/toggleFeatureCard.scss +4 -0
  281. package/package.json +28 -34
  282. package/src/translations/en.json +5 -1
  283. package/types/Search.d.ts +19 -0
  284. package/dist/AutoSaveInput.cjs.js +0 -724
  285. package/dist/AutoSaveInput.cjs.js.map +0 -1
  286. package/dist/AutoSaveInput.js +0 -718
  287. package/dist/AutoSaveInput.js.map +0 -1
  288. package/dist/Breadcrumbs.cjs.js +0 -44
  289. package/dist/Breadcrumbs.cjs.js.map +0 -1
  290. package/dist/Breadcrumbs.js +0 -38
  291. package/dist/Breadcrumbs.js.map +0 -1
  292. package/dist/BrowserSupport.cjs.js +0 -1731
  293. package/dist/BrowserSupport.cjs.js.map +0 -1
  294. package/dist/BrowserSupport.js +0 -1725
  295. package/dist/BrowserSupport.js.map +0 -1
  296. package/dist/CalendarView.cjs.js +0 -610
  297. package/dist/CalendarView.cjs.js.map +0 -1
  298. package/dist/CalendarView.js +0 -598
  299. package/dist/CalendarView.js.map +0 -1
  300. package/dist/Codeblock.cjs.js +0 -302
  301. package/dist/Codeblock.cjs.js.map +0 -1
  302. package/dist/Codeblock.js +0 -296
  303. package/dist/Codeblock.js.map +0 -1
  304. package/dist/Columns.cjs.js +0 -248
  305. package/dist/Columns.cjs.js.map +0 -1
  306. package/dist/Columns.js.map +0 -1
  307. package/dist/ConfirmationModal.cjs.js +0 -87
  308. package/dist/ConfirmationModal.cjs.js.map +0 -1
  309. package/dist/ConfirmationModal.js.map +0 -1
  310. package/dist/Container.cjs.js +0 -1277
  311. package/dist/Container.cjs.js.map +0 -1
  312. package/dist/Container.js +0 -1271
  313. package/dist/Container.js.map +0 -1
  314. package/dist/CopyToClipboardButton.cjs.js +0 -275
  315. package/dist/CopyToClipboardButton.cjs.js.map +0 -1
  316. package/dist/CopyToClipboardButton.js +0 -269
  317. package/dist/CopyToClipboardButton.js.map +0 -1
  318. package/dist/CustomDomain.cjs.js +0 -774
  319. package/dist/CustomDomain.cjs.js.map +0 -1
  320. package/dist/CustomDomain.js +0 -747
  321. package/dist/CustomDomain.js.map +0 -1
  322. package/dist/CustomDomainDashboard.cjs.js +0 -2370
  323. package/dist/CustomDomainDashboard.cjs.js.map +0 -1
  324. package/dist/CustomDomainDashboard.js +0 -2342
  325. package/dist/CustomDomainDashboard.js.map +0 -1
  326. package/dist/DateFormat.cjs.js +0 -51
  327. package/dist/DateFormat.cjs.js.map +0 -1
  328. package/dist/DateFormat.js.map +0 -1
  329. package/dist/DateRangeFilter.cjs.js +0 -236
  330. package/dist/DateRangeFilter.cjs.js.map +0 -1
  331. package/dist/DateRangeFilter.js +0 -229
  332. package/dist/DateRangeFilter.js.map +0 -1
  333. package/dist/DynamicVariables.cjs.js +0 -189
  334. package/dist/DynamicVariables.cjs.js.map +0 -1
  335. package/dist/DynamicVariables.js +0 -183
  336. package/dist/DynamicVariables.js.map +0 -1
  337. package/dist/EmailForm.cjs.js +0 -4295
  338. package/dist/EmailForm.cjs.js.map +0 -1
  339. package/dist/EmailForm.js +0 -4265
  340. package/dist/EmailForm.js.map +0 -1
  341. package/dist/EmailPreview.cjs.js +0 -1419
  342. package/dist/EmailPreview.cjs.js.map +0 -1
  343. package/dist/EmailPreview.js +0 -1413
  344. package/dist/EmailPreview.js.map +0 -1
  345. package/dist/ErrorPage.cjs.js +0 -226
  346. package/dist/ErrorPage.cjs.js.map +0 -1
  347. package/dist/ErrorPage.js.map +0 -1
  348. package/dist/Header.cjs.js +0 -188
  349. package/dist/Header.cjs.js.map +0 -1
  350. package/dist/Header.js +0 -182
  351. package/dist/Header.js.map +0 -1
  352. package/dist/IconPicker.cjs.js +0 -1308
  353. package/dist/IconPicker.cjs.js.map +0 -1
  354. package/dist/IconPicker.js +0 -1302
  355. package/dist/IconPicker.js.map +0 -1
  356. package/dist/ImageWithFallback.cjs.js +0 -247
  357. package/dist/ImageWithFallback.cjs.js.map +0 -1
  358. package/dist/ImageWithFallback.js +0 -241
  359. package/dist/ImageWithFallback.js.map +0 -1
  360. package/dist/IntegrationCard.cjs.js +0 -409
  361. package/dist/IntegrationCard.cjs.js.map +0 -1
  362. package/dist/IntegrationCard.js +0 -403
  363. package/dist/IntegrationCard.js.map +0 -1
  364. package/dist/IntegrationDisconnectAlert.cjs.js +0 -89
  365. package/dist/IntegrationDisconnectAlert.cjs.js.map +0 -1
  366. package/dist/IntegrationDisconnectAlert.js +0 -80
  367. package/dist/IntegrationDisconnectAlert.js.map +0 -1
  368. package/dist/IntegrationWalkthroughModal.cjs.js +0 -50
  369. package/dist/IntegrationWalkthroughModal.cjs.js.map +0 -1
  370. package/dist/IntegrationWalkthroughModal.js.map +0 -1
  371. package/dist/IpRestriction.cjs.js +0 -3931
  372. package/dist/IpRestriction.cjs.js.map +0 -1
  373. package/dist/IpRestriction.js +0 -3905
  374. package/dist/IpRestriction.js.map +0 -1
  375. package/dist/KeyboardShortcuts.cjs.js +0 -2263
  376. package/dist/KeyboardShortcuts.cjs.js.map +0 -1
  377. package/dist/KeyboardShortcuts.js +0 -2256
  378. package/dist/KeyboardShortcuts.js.map +0 -1
  379. package/dist/LoginPage.cjs.js +0 -618
  380. package/dist/LoginPage.cjs.js.map +0 -1
  381. package/dist/LoginPage.js +0 -593
  382. package/dist/LoginPage.js.map +0 -1
  383. package/dist/MenuBar.cjs.js +0 -34273
  384. package/dist/MenuBar.cjs.js.map +0 -1
  385. package/dist/MenuBar.js +0 -34267
  386. package/dist/MenuBar.js.map +0 -1
  387. package/dist/Metadata.cjs.js +0 -272
  388. package/dist/Metadata.cjs.js.map +0 -1
  389. package/dist/Metadata.js +0 -266
  390. package/dist/Metadata.js.map +0 -1
  391. package/dist/MoreDropdown.cjs.js +0 -168
  392. package/dist/MoreDropdown.cjs.js.map +0 -1
  393. package/dist/MoreDropdown.js.map +0 -1
  394. package/dist/NavigationHeader.cjs.js +0 -756
  395. package/dist/NavigationHeader.cjs.js.map +0 -1
  396. package/dist/NavigationHeader.js +0 -750
  397. package/dist/NavigationHeader.js.map +0 -1
  398. package/dist/NeetoWidget.cjs.js +0 -3375
  399. package/dist/NeetoWidget.cjs.js.map +0 -1
  400. package/dist/NeetoWidget.js +0 -3348
  401. package/dist/NeetoWidget.js.map +0 -1
  402. package/dist/PageLoader.cjs.js +0 -158
  403. package/dist/PageLoader.cjs.js.map +0 -1
  404. package/dist/PageLoader.js +0 -134
  405. package/dist/PageLoader.js.map +0 -1
  406. package/dist/PhoneNumber.cjs.js +0 -7021
  407. package/dist/PhoneNumber.cjs.js.map +0 -1
  408. package/dist/PhoneNumber.js +0 -6989
  409. package/dist/PhoneNumber.js.map +0 -1
  410. package/dist/PublishBlock.cjs.js +0 -224
  411. package/dist/PublishBlock.cjs.js.map +0 -1
  412. package/dist/PublishBlock.js +0 -218
  413. package/dist/PublishBlock.js.map +0 -1
  414. package/dist/Rename.cjs.js +0 -516
  415. package/dist/Rename.cjs.js.map +0 -1
  416. package/dist/Rename.js +0 -510
  417. package/dist/Rename.js.map +0 -1
  418. package/dist/ResponsiveDevicePicker.cjs.js +0 -260
  419. package/dist/ResponsiveDevicePicker.cjs.js.map +0 -1
  420. package/dist/ResponsiveDevicePicker.js +0 -254
  421. package/dist/ResponsiveDevicePicker.js.map +0 -1
  422. package/dist/Schedule.cjs.js +0 -1077
  423. package/dist/Schedule.cjs.js.map +0 -1
  424. package/dist/Schedule.js +0 -1046
  425. package/dist/Schedule.js.map +0 -1
  426. package/dist/Scrollable.cjs.js +0 -188
  427. package/dist/Scrollable.cjs.js.map +0 -1
  428. package/dist/Scrollable.js +0 -182
  429. package/dist/Scrollable.js.map +0 -1
  430. package/dist/Security.cjs.js +0 -1921
  431. package/dist/Security.cjs.js.map +0 -1
  432. package/dist/Security.js +0 -1895
  433. package/dist/Security.js.map +0 -1
  434. package/dist/SendToFields.cjs.js +0 -2524
  435. package/dist/SendToFields.cjs.js.map +0 -1
  436. package/dist/SendToFields.js +0 -2517
  437. package/dist/SendToFields.js.map +0 -1
  438. package/dist/Settings.cjs.js +0 -501
  439. package/dist/Settings.cjs.js.map +0 -1
  440. package/dist/Settings.js +0 -495
  441. package/dist/Settings.js.map +0 -1
  442. package/dist/ShareViaEmail.cjs.js +0 -4272
  443. package/dist/ShareViaEmail.cjs.js.map +0 -1
  444. package/dist/ShareViaEmail.js +0 -4246
  445. package/dist/ShareViaEmail.js.map +0 -1
  446. package/dist/ShareViaLink.cjs.js +0 -1512
  447. package/dist/ShareViaLink.cjs.js.map +0 -1
  448. package/dist/ShareViaLink.js +0 -1486
  449. package/dist/ShareViaLink.js.map +0 -1
  450. package/dist/Sidebar.cjs.js +0 -34985
  451. package/dist/Sidebar.cjs.js.map +0 -1
  452. package/dist/Sidebar.js +0 -34959
  453. package/dist/Sidebar.js.map +0 -1
  454. package/dist/SubHeader.cjs.js +0 -283
  455. package/dist/SubHeader.cjs.js.map +0 -1
  456. package/dist/SubHeader.js +0 -276
  457. package/dist/SubHeader.js.map +0 -1
  458. package/dist/TableWrapper.cjs.js +0 -87
  459. package/dist/TableWrapper.cjs.js.map +0 -1
  460. package/dist/TableWrapper.js +0 -81
  461. package/dist/TableWrapper.js.map +0 -1
  462. package/dist/ThemeSidebar.cjs.js +0 -13705
  463. package/dist/ThemeSidebar.cjs.js.map +0 -1
  464. package/dist/ThemeSidebar.js +0 -13680
  465. package/dist/ThemeSidebar.js.map +0 -1
  466. package/dist/TimeFormat.cjs.js +0 -53
  467. package/dist/TimeFormat.cjs.js.map +0 -1
  468. package/dist/TimeFormat.js +0 -47
  469. package/dist/TimeFormat.js.map +0 -1
  470. package/dist/TimezoneMismatchModal.cjs.js +0 -176
  471. package/dist/TimezoneMismatchModal.cjs.js.map +0 -1
  472. package/dist/TimezoneMismatchModal.js +0 -168
  473. package/dist/TimezoneMismatchModal.js.map +0 -1
  474. package/dist/ToggleFeatureCard.cjs.js +0 -389
  475. package/dist/ToggleFeatureCard.cjs.js.map +0 -1
  476. package/dist/ToggleFeatureCard.js +0 -383
  477. package/dist/ToggleFeatureCard.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"SendToFields.cjs.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.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","../src/components/SendToFields/constants.js","../src/components/SendToFields/FilePicker.jsx","../node_modules/papaparse/papaparse.js","../src/components/SendToFields/utils.js","../src/components/SendToFields/index.jsx"],"sourcesContent":["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 _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 _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}","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 _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}","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","export const SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","import React, { useRef } from \"react\";\n\nconst FilePicker = ({ types = [], onChange, children }) => {\n const inputRef = useRef();\n\n const accept = types.reduce((acc, ext) => `${acc}, ${ext}`, \"\");\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 <div onClick={handleClick}>{children}</div>\n <input\n {...{ accept }}\n className=\"hidden\"\n ref={inputRef}\n type=\"file\"\n onChange={handleInputChange}\n />\n </>\n );\n};\n\nexport default FilePicker;\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 { t } from \"i18next\";\nimport { Toastr } from \"neetoui\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = async (file, onSuccess) => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (isEmailFieldPresent) {\n const emails = results.data\n .filter(prop(\"email\"))\n .map(item => item.email.trim());\n onSuccess(createEmailOptions(emails));\n } else {\n Toastr.error(t(\"neetoMolecules.sendToFields.errors.invalidCsv\"));\n }\n },\n });\n};\n","import React, { useRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Upload } from \"neetoicons\";\nimport { Button, Toastr } from \"neetoui\";\nimport { MultiEmailInput } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SIZES, ALLOWED_FILE_PICKER_TYPES } from \"./constants\";\nimport FilePicker from \"./FilePicker\";\nimport { parseCsvEmails } from \"./utils\";\n\nconst SendToFields = ({\n emailInputProps,\n ccInputProps,\n bccInputProps,\n showUploadCsvButton = false,\n showCcBccButton = false,\n}) => {\n const sendToFieldRef = useRef();\n const {\n values: {\n showCopyEmails,\n [emailInputProps.name || \"sendTo\"]: existingSendToEmails,\n },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const handleCSVFile = async files => {\n try {\n const onSuccess = values =>\n setFieldValue(emailInputProps.name || \"sendTo\", [\n ...existingSendToEmails,\n ...values,\n ]);\n\n await parseCsvEmails(files[0], onSuccess);\n sendToFieldRef.current?.focus();\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handelCcBccButtonClick = e => {\n e.stopPropagation();\n setFieldValue(\"showCopyEmails\", !showCopyEmails);\n };\n\n return (\n <div className=\"relative w-full flex-col gap-2\">\n {showUploadCsvButton && (\n <div className=\"absolute top-0 right-1\">\n <FilePicker\n types={ALLOWED_FILE_PICKER_TYPES}\n onChange={handleCSVFile}\n >\n <Button\n data-cy=\"upload-csv-button\"\n icon={Upload}\n label={t(\"neetoMolecules.emailForm.uploadCSV\")}\n size=\"small\"\n style=\"link\"\n tooltipProps={{\n content: t(\"neetoMolecules.sendToFields.uploadCsvTooltip\"),\n position: \"right\",\n }}\n />\n </FilePicker>\n </div>\n )}\n <MultiEmailInput\n data-testid=\"emails\"\n name=\"sendTo\"\n ref={sendToFieldRef}\n {...emailInputProps}\n suffix={\n showCcBccButton && (\n <Button\n data-cy=\"cc-bcc-button\"\n data-testid=\"cc-bcc-button\"\n label={t(\"neetoMolecules.emailForm.labels.ccBcc\")}\n size=\"small\"\n style=\"link\"\n onClick={handelCcBccButtonClick}\n />\n )\n }\n />\n {showCopyEmails && (\n <div className=\"mt-5 flex w-full flex-col gap-6\">\n <MultiEmailInput name=\"sendToBcc\" {...ccInputProps} />\n <MultiEmailInput name=\"sendToCc\" {...bccInputProps} />\n </div>\n )}\n </div>\n );\n};\n\nconst inputPropTypes = PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataCy: PropTypes.string,\n placeholder: PropTypes.string,\n dataCy: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n});\n\nSendToFields.propTypes = {\n /**\n * Input props for sendTo input field.\n */\n emailInputProps: inputPropTypes,\n /**\n * Input props for CC input field.\n */\n ccInputProps: inputPropTypes,\n /**\n * Input props for BCC input field.\n */\n bccInputProps: inputPropTypes,\n /**\n * Flag to determine whether the 'FilePicker' button is displayed.\n */\n showUploadCsvButton: PropTypes.bool,\n /**\n * Flag to determine whether the 'Cc/Bcc' button is displayed.\n */\n showCcBccButton: PropTypes.bool,\n};\n\nexport default SendToFields;\n"],"names":["arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_typeof","require$$0","ALLOWED_FILE_PICKER_TYPES","FilePicker","_ref","_ref$types","types","onChange","children","inputRef","useRef","accept","reduce","acc","ext","concat","handleInputChange","_ref2","target","files","current","value","handleClick","click","React","createElement","Fragment","onClick","className","ref","type","this","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","length","undefined","map","label","valid","parseCsvEmails","_asyncToGenerator","_regeneratorRuntime","mark","_callee","file","onSuccess","wrap","_callee$","_context","prev","next","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","_results$meta$fields","isEmailFieldPresent","meta","fields","includes","data","filter","prop","item","trim","Toastr","error","t","stop","_x","_x2","apply","SendToFields","emailInputProps","ccInputProps","bccInputProps","_ref$showUploadCsvBut","showUploadCsvButton","_ref$showCcBccButton","showCcBccButton","sendToFieldRef","_useFormikContext","useFormikContext","_useFormikContext$val","values","showCopyEmails","existingSendToEmails","name","setFieldValue","_useTranslation","useTranslation","handleCSVFile","_sendToFieldRef$curre","_toConsumableArray","focus","t0","handelCcBccButtonClick","e","stopPropagation","Button","icon","Upload","size","style","tooltipProps","content","position","MultiEmailInput","_extends","suffix"],"mappings":"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"}