@bigbinary/neeto-molecules 5.1.18 → 5.1.19

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 (102) hide show
  1. package/dist/EmailForm.js +2 -0
  2. package/dist/EmailForm.js.map +1 -1
  3. package/dist/EmailPreview.js +1 -20
  4. package/dist/EmailPreview.js.map +1 -1
  5. package/dist/GoogleFontPicker.js +1 -449
  6. package/dist/GoogleFontPicker.js.map +1 -1
  7. package/dist/IconPicker.js +6 -914
  8. package/dist/IconPicker.js.map +1 -1
  9. package/dist/SendToFields.js +3 -1943
  10. package/dist/SendToFields.js.map +1 -1
  11. package/dist/ShareViaEmail.js +2 -0
  12. package/dist/ShareViaEmail.js.map +1 -1
  13. package/dist/avatar-placeholder-DEjUhVlU.js +23 -0
  14. package/dist/avatar-placeholder-DEjUhVlU.js.map +1 -0
  15. package/dist/cjs/EmailForm.js +2 -0
  16. package/dist/cjs/EmailForm.js.map +1 -1
  17. package/dist/cjs/EmailPreview.js +2 -39
  18. package/dist/cjs/EmailPreview.js.map +1 -1
  19. package/dist/cjs/GoogleFontPicker.js +9 -457
  20. package/dist/cjs/GoogleFontPicker.js.map +1 -1
  21. package/dist/cjs/IconPicker.js +6 -914
  22. package/dist/cjs/IconPicker.js.map +1 -1
  23. package/dist/cjs/SendToFields.js +4 -1944
  24. package/dist/cjs/SendToFields.js.map +1 -1
  25. package/dist/cjs/ShareViaEmail.js +2 -0
  26. package/dist/cjs/ShareViaEmail.js.map +1 -1
  27. package/dist/cjs/avatar-placeholder-CSJpe1V0.js +44 -0
  28. package/dist/cjs/avatar-placeholder-CSJpe1V0.js.map +1 -0
  29. package/dist/cjs/download-B53zeKGa.js +21 -0
  30. package/dist/cjs/download-B53zeKGa.js.map +1 -0
  31. package/dist/cjs/index.es-Bcx0v5Pd.js +454 -0
  32. package/dist/cjs/index.es-Bcx0v5Pd.js.map +1 -0
  33. package/dist/cjs/index.esm-Bb1Vtlp2.js +919 -0
  34. package/dist/cjs/index.esm-Bb1Vtlp2.js.map +1 -0
  35. package/dist/cjs/papaparse-B5u_uWB3.js +1948 -0
  36. package/dist/cjs/papaparse-B5u_uWB3.js.map +1 -0
  37. package/dist/cjs/upload-C5ZnN-d5.js +21 -0
  38. package/dist/cjs/upload-C5ZnN-d5.js.map +1 -0
  39. package/dist/cjs/v2/CalendarView.js +1 -0
  40. package/dist/cjs/v2/CalendarView.js.map +1 -1
  41. package/dist/cjs/v2/DeleteArchiveModal.js +91 -0
  42. package/dist/cjs/v2/DeleteArchiveModal.js.map +1 -0
  43. package/dist/cjs/v2/DownloadMobileAppCallout.js +43 -0
  44. package/dist/cjs/v2/DownloadMobileAppCallout.js.map +1 -0
  45. package/dist/cjs/v2/EmailForm.js +622 -0
  46. package/dist/cjs/v2/EmailForm.js.map +1 -0
  47. package/dist/cjs/v2/EmailPreview.js +138 -0
  48. package/dist/cjs/v2/EmailPreview.js.map +1 -0
  49. package/dist/cjs/v2/EmojiReactions.js +82 -0
  50. package/dist/cjs/v2/EmojiReactions.js.map +1 -0
  51. package/dist/cjs/v2/FileUpload.js +5 -19
  52. package/dist/cjs/v2/FileUpload.js.map +1 -1
  53. package/dist/cjs/v2/GoogleFontPicker.js +130 -0
  54. package/dist/cjs/v2/GoogleFontPicker.js.map +1 -0
  55. package/dist/cjs/v2/IconPicker.js +274 -0
  56. package/dist/cjs/v2/IconPicker.js.map +1 -0
  57. package/dist/cjs/v2/SendToFields.js +313 -0
  58. package/dist/cjs/v2/SendToFields.js.map +1 -0
  59. package/dist/cjs/v2/SubHeader.js +4 -18
  60. package/dist/cjs/v2/SubHeader.js.map +1 -1
  61. package/dist/download-CZ7Q6k7-.js +19 -0
  62. package/dist/download-CZ7Q6k7-.js.map +1 -0
  63. package/dist/index.es-BQ-dr8y1.js +451 -0
  64. package/dist/index.es-BQ-dr8y1.js.map +1 -0
  65. package/dist/index.esm-DLni3-hz.js +917 -0
  66. package/dist/index.esm-DLni3-hz.js.map +1 -0
  67. package/dist/papaparse-p7fkGgWo.js +1946 -0
  68. package/dist/papaparse-p7fkGgWo.js.map +1 -0
  69. package/dist/upload-BNvlRoRJ.js +19 -0
  70. package/dist/upload-BNvlRoRJ.js.map +1 -0
  71. package/dist/v2/CalendarView.js +1 -0
  72. package/dist/v2/CalendarView.js.map +1 -1
  73. package/dist/v2/DeleteArchiveModal.js +89 -0
  74. package/dist/v2/DeleteArchiveModal.js.map +1 -0
  75. package/dist/v2/DownloadMobileAppCallout.js +41 -0
  76. package/dist/v2/DownloadMobileAppCallout.js.map +1 -0
  77. package/dist/v2/EmailForm.js +596 -0
  78. package/dist/v2/EmailForm.js.map +1 -0
  79. package/dist/v2/EmailPreview.js +136 -0
  80. package/dist/v2/EmailPreview.js.map +1 -0
  81. package/dist/v2/EmojiReactions.js +80 -0
  82. package/dist/v2/EmojiReactions.js.map +1 -0
  83. package/dist/v2/FileUpload.js +4 -18
  84. package/dist/v2/FileUpload.js.map +1 -1
  85. package/dist/v2/GoogleFontPicker.js +128 -0
  86. package/dist/v2/GoogleFontPicker.js.map +1 -0
  87. package/dist/v2/IconPicker.js +272 -0
  88. package/dist/v2/IconPicker.js.map +1 -0
  89. package/dist/v2/SendToFields.js +311 -0
  90. package/dist/v2/SendToFields.js.map +1 -0
  91. package/dist/v2/SubHeader.js +3 -17
  92. package/dist/v2/SubHeader.js.map +1 -1
  93. package/package.json +5 -5
  94. package/types/v2/DeleteArchiveModal.d.ts +16 -0
  95. package/types/v2/DownloadMobileAppCallout.d.ts +7 -0
  96. package/types/v2/EmailForm.d.ts +88 -0
  97. package/types/v2/EmailFormProvider.d.ts +29 -0
  98. package/types/v2/EmailPreview.d.ts +16 -0
  99. package/types/v2/EmojiReactions.d.ts +22 -0
  100. package/types/v2/GoogleFontPicker.d.ts +19 -0
  101. package/types/v2/IconPicker.d.ts +11 -0
  102. package/types/v2/SendToFields.d.ts +25 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"papaparse-p7fkGgWo.js","sources":["../node_modules/papaparse/papaparse.js"],"sourcesContent":["/* @license\nPapa Parse\nv5.5.3\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 (_config.escapeFormulae instanceof RegExp) {\n\t\t\t\t_escapeFormulae = _config.escapeFormulae;\n\t\t\t} else if (typeof _config.escapeFormulae === 'boolean' && _config.escapeFormulae) {\n\t\t\t\t_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\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\tconst skipFirstNLines = parseInt(this._config.skipFirstNLines) || 0;\n\t\t\tif (this.isFirstChunk && skipFirstNLines > 0) {\n\t\t\t\tlet _newline = this._config.newline;\n\t\t\t\tif (!_newline) {\n\t\t\t\t\tconst quoteChar = this._config.quoteChar || '\"';\n\t\t\t\t\t_newline = this._handle.guessLineEndings(chunk, quoteChar);\n\t\t\t\t}\n\t\t\t\tconst splitChunk = chunk.split(_newline);\n\t\t\t\tchunk = [...splitChunk.slice(skipFirstNLines)].join(_newline);\n\t\t\t}\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\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 = this.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\tthis.guessLineEndings = function(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 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 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\tvar renamedHeaders = null;\n\t\tvar headerParsed = false;\n\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\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\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\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\tif (config.header && !baseIndex && data.length && !headerParsed)\n\t\t\t\t{\n\t\t\t\t\tconst result = data[0];\n\t\t\t\t\tconst headerCount = Object.create(null); // To track the count of each base header\n\t\t\t\t\tconst usedHeaders = new Set(result); // To track used headers and avoid duplicates\n\t\t\t\t\tlet duplicateHeaders = false;\n\n\t\t\t\t\tfor (let i = 0; i < result.length; i++) {\n\t\t\t\t\t\tlet header = result[i];\n\t\t\t\t\t\tif (isFunction(config.transformHeader))\n\t\t\t\t\t\t\theader = config.transformHeader(header, i);\n\n\t\t\t\t\t\tif (!headerCount[header]) {\n\t\t\t\t\t\t\theaderCount[header] = 1;\n\t\t\t\t\t\t\tresult[i] = header;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlet newHeader;\n\t\t\t\t\t\t\tlet suffixCount = headerCount[header];\n\n\t\t\t\t\t\t\t// Find a unique new header\n\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\tnewHeader = `${header}_${suffixCount}`;\n\t\t\t\t\t\t\t\tsuffixCount++;\n\t\t\t\t\t\t\t} while (usedHeaders.has(newHeader));\n\n\t\t\t\t\t\t\tusedHeaders.add(newHeader); // Mark this new Header as used\n\t\t\t\t\t\t\tresult[i] = newHeader;\n\t\t\t\t\t\t\theaderCount[header]++;\n\t\t\t\t\t\t\tduplicateHeaders = true;\n\t\t\t\t\t\t\tif (renamedHeaders === null) {\n\t\t\t\t\t\t\t\trenamedHeaders = {};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trenamedHeaders[newHeader] = header;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tusedHeaders.add(header); // Ensure the original header is marked as used\n\t\t\t\t\t}\n\t\t\t\t\tif (duplicateHeaders) {\n\t\t\t\t\t\tconsole.warn('Duplicate headers found and renamed.');\n\t\t\t\t\t}\n\t\t\t\t\theaderParsed = true;\n\t\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\trenamedHeaders: renamedHeaders\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\tfunction isFunction(func)\n\t{\n\t\treturn typeof func === 'function';\n\t}\n\n\treturn Papa;\n}));\n"],"names":["this"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,19 @@
1
+ import { c as createLucideIcon } from './createLucideIcon-mNMhCCpf.js';
2
+
3
+ /**
4
+ * @license lucide-react v1.7.0 - ISC
5
+ *
6
+ * This source code is licensed under the ISC license.
7
+ * See the LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+
11
+ const __iconNode = [
12
+ ["path", { d: "M12 3v12", key: "1x0j5s" }],
13
+ ["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
14
+ ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
15
+ ];
16
+ const Upload = createLucideIcon("upload", __iconNode);
17
+
18
+ export { Upload as U };
19
+ //# sourceMappingURL=upload-BNvlRoRJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-BNvlRoRJ.js","sources":["../node_modules/lucide-react/dist/esm/icons/upload.js"],"sourcesContent":["/**\n * @license lucide-react v1.7.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3v12\", key: \"1x0j5s\" }],\n [\"path\", { d: \"m17 8-5-5-5 5\", key: \"7q97r8\" }],\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }]\n];\nconst Upload = createLucideIcon(\"upload\", __iconNode);\n\nexport { __iconNode, Upload as default };\n//# sourceMappingURL=upload.js.map\n"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC5C,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACjD,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,2CAA2C,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC5E,CAAC;AACI,MAAC,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU;;;;","x_google_ignoreList":[0]}
@@ -32,6 +32,7 @@ import '@tanstack/react-query';
32
32
  import '@bigbinary/neeto-commons-frontend/v2/react-utils/useMutationWithInvalidation';
33
33
  import 'axios';
34
34
  import '../search-DCgpNjip.js';
35
+ import '../download-CZ7Q6k7-.js';
35
36
  import '@bigbinary/neeto-commons-frontend/v2/react-utils';
36
37
  import '@bigbinary/neeto-filters-frontend/v2/Filters';
37
38
 
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarView.js","sources":["../../src/v2/components/CalendarView/constants.js","../../src/v2/components/CalendarView/utils.js","../../src/v2/components/CalendarView/CustomDatePicker.jsx","../../src/v2/components/CalendarView/Header.jsx","../../src/v2/components/CalendarView/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nconst WEEKLY_VIEW = t(\"neetoMolecules.calendarView.weekly\");\nconst MONTHLY_VIEW = t(\"neetoMolecules.calendarView.monthly\");\nconst DAILY_VIEW = t(\"neetoMolecules.calendarView.daily\");\n\nexport const VIEW_OPTIONS = {\n [DAILY_VIEW]: {\n label: DAILY_VIEW,\n fullCalendarView: \"timeGridDay\",\n picker: \"day\",\n },\n [WEEKLY_VIEW]: {\n label: WEEKLY_VIEW,\n fullCalendarView: \"timeGridWeek\",\n picker: \"week\",\n },\n [MONTHLY_VIEW]: {\n label: MONTHLY_VIEW,\n fullCalendarView: \"dayGridMonth\",\n picker: \"month\",\n },\n};\n\nexport const LOCALE_CONFIG = {\n ja: {\n dayCellContent: arg => arg.date.getDate(),\n dayHeaderFormat: { weekday: \"long\" },\n },\n};\n","import { dayjs } from \"neetocommons/v2/utils\";\n\nconst getWeekString = ({\n date,\n isStartOfWeek = true,\n showMonth = false,\n showYear = false,\n}) =>\n `${showMonth || isStartOfWeek ? date.format(\"MMM\") : \"\"} ${date.date()} ${\n showYear || !isStartOfWeek ? date.format(\"YYYY\") : \"\"\n }`;\n\nexport const getStartOfWeek = date => dayjs(date).startOf(\"week\");\n\nexport const getEndOfWeek = date => dayjs(date).endOf(\"week\");\n\nexport const getFormattedMonthStr = date => date.format(\"MMM YYYY\");\n\nexport const getFormattedWeekRangeStr = date => {\n const startOfWeek = getStartOfWeek(date);\n const endOfWeek = getEndOfWeek(date);\n\n const shouldShowMonthsSeparately = startOfWeek.month() !== endOfWeek.month();\n const shouldShowYearsSeparately = startOfWeek.year() !== endOfWeek.year();\n\n const startOfWeekStr = getWeekString({\n date: startOfWeek,\n showMonth: shouldShowMonthsSeparately,\n showYear: shouldShowYearsSeparately,\n });\n\n const endOfWeekStr = getWeekString({\n date: endOfWeek,\n isStartOfWeek: false,\n showMonth: shouldShowMonthsSeparately,\n showYear: shouldShowYearsSeparately,\n });\n\n return `${startOfWeekStr} - ${endOfWeekStr}`;\n};\n\nexport const getFormattedDayStr = date => date.format(\"DD MMM YYYY\");\n\nexport const getFormattedRangeStr = (date, picker) => {\n const formatFunctions = {\n month: getFormattedMonthStr,\n week: getFormattedWeekRangeStr,\n day: getFormattedDayStr,\n };\n const selectedFormatter = formatFunctions[picker];\n\n return selectedFormatter(date);\n};\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs\n .filter(Boolean)\n .forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { useState } from \"react\";\n\nimport { Button, DatePicker } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { ChevronDown, ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { dayjs } from \"neetocommons/v2/utils\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getFormattedRangeStr } from \"./utils\";\n\nconst CustomDatePicker = ({\n selectedDate,\n setSelectedDate,\n picker,\n validDates,\n onTodayClick,\n todayButtonLabel,\n todayButtonClassName,\n datePickerButtonClassName,\n showDatePickerIcon = true,\n}) => {\n const { t } = useTranslation();\n const [isOpen, setIsOpen] = useState(false);\n\n const selectedRangeStr = getFormattedRangeStr(selectedDate, picker);\n\n const { start, end } = validDates;\n\n const isDateLessThanStart =\n start && selectedDate.isSameOrBefore(dayjs(start), picker);\n\n const isDateGreaterThanEnd =\n end && selectedDate.isSameOrAfter(dayjs(end), picker);\n\n const onPrevious = () =>\n setSelectedDate(prevDate => prevDate.subtract(1, picker));\n\n const onNext = () => setSelectedDate(prevDate => prevDate.add(1, picker));\n\n const onToday = () => {\n setSelectedDate(dayjs());\n onTodayClick?.();\n };\n\n const getDisabledDates = date => {\n if (!date) return false;\n\n return (start && date <= start) || (end && date >= end);\n };\n\n return (\n <div className=\"nm-calendar-view__date-picker flex items-center justify-start gap-x-4\">\n <Button\n aria-label={t(\"neetoMolecules.calendarView.aria.goToToday\")}\n className={todayButtonClassName}\n data-testid=\"neeto-molecules-calendar-view-today-button\"\n variant=\"secondary\"\n onClick={onToday}\n >\n {todayButtonLabel ?? t(\"neetoMolecules.calendarView.today\")}\n </Button>\n <div\n aria-label={t(\"neetoMolecules.calendarView.aria.dateNavigation\")}\n className=\"flex items-center\"\n role=\"group\"\n >\n <Button\n className=\"me-1\"\n data-testid=\"neeto-molecules-calendar-view-previous-button\"\n disabled={isDateLessThanStart}\n icon={() => <ChevronLeft className=\"rtl:scale-x-[-1]\" size={20} />}\n variant=\"ghost\"\n aria-label={t(\"neetoMolecules.calendarView.aria.previousPeriod\", {\n period: picker,\n })}\n onClick={onPrevious}\n />\n <DatePicker\n {...{ picker }}\n align=\"start\"\n disabledDate={getDisabledDates}\n open={isOpen}\n side=\"bottom\"\n value={selectedDate}\n weekStartsOn={1}\n trigger={\n <Button\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n data-testid=\"neeto-molecules-calendar-view-date-picker-button\"\n icon={showDatePickerIcon ? ChevronDown : undefined}\n iconPosition=\"right\"\n variant=\"ghost\"\n aria-label={t(\"neetoMolecules.calendarView.aria.selectDate\", {\n currentDate: selectedRangeStr,\n })}\n className={classnames(\n \"justify-center\",\n datePickerButtonClassName ?? \"min-w-52\"\n )}\n >\n <span\n className=\"text-foreground text-base font-medium\"\n data-testid=\"neeto-molecules-calendar-view-date-picker-button-label\"\n >\n {selectedRangeStr}\n </span>\n </Button>\n }\n onChange={setSelectedDate}\n onOpenChange={setIsOpen}\n />\n <Button\n className=\"ms-1\"\n data-testid=\"neeto-molecules-calendar-view-next-button\"\n disabled={isDateGreaterThanEnd}\n icon={() => <ChevronRight className=\"rtl:scale-x-[-1]\" size={20} />}\n variant=\"ghost\"\n aria-label={t(\"neetoMolecules.calendarView.aria.nextPeriod\", {\n period: picker,\n })}\n onClick={onNext}\n />\n </div>\n </div>\n );\n};\n\nexport default CustomDatePicker;\n","import { useEffect } from \"react\";\n\nimport { DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { capitalize } from \"neetocist\";\nimport { prop, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CustomDatePicker from \"./CustomDatePicker\";\n\nconst Header = ({\n calendarRef,\n selectedView,\n setSelectedView,\n setSelectedDate,\n selectedDate,\n calendarViewOptions,\n validDates,\n onTodayClick,\n todayButtonLabel,\n todayButtonClassName,\n datePickerButtonClassName,\n showDatePickerIcon,\n}) => {\n const { t } = useTranslation();\n\n const handleViewSelection = option => {\n setSelectedView(option);\n calendarRef.current.calendar.changeView(option.fullCalendarView);\n };\n\n const navigateToSelectedDate = () =>\n calendarRef?.current?.calendar?.gotoDate(selectedDate.format(\"YYYY-MM-DD\"));\n\n useEffect(() => {\n setTimeout(navigateToSelectedDate);\n }, [selectedDate]);\n\n return (\n <div\n aria-label={t(\"neetoMolecules.calendarView.aria.calendarControls\")}\n className=\"nm-calendar-view__controls flex items-center gap-x-4\"\n role=\"group\"\n >\n <CustomDatePicker\n {...{\n datePickerButtonClassName,\n onTodayClick,\n selectedDate,\n setSelectedDate,\n showDatePickerIcon,\n todayButtonClassName,\n todayButtonLabel,\n validDates,\n }}\n getPopupContainer={prop(\"parentNode\")}\n picker={selectedView.picker}\n />\n {Object.keys(calendarViewOptions).length > 1 && (\n <DropdownMenu\n label={capitalize(selectedView.label)}\n buttonProps={{\n \"data-testid\": \"calendar-view-dropdown\",\n \"aria-label\": t(\"neetoMolecules.calendarView.aria.viewSelector\", {\n view: capitalize(selectedView.label),\n }),\n variant: \"secondary\",\n }}\n >\n {values(calendarViewOptions).map((option, idx) => (\n <DropdownMenu.MenuItem\n isActive={selectedView === option}\n key={idx}\n onClick={() => handleViewSelection(option)}\n >\n {capitalize(option.label)}\n </DropdownMenu.MenuItem>\n ))}\n </DropdownMenu>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import { forwardRef, useRef, useState, useEffect } from \"react\";\n\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\nimport interactionPlugin from \"@fullcalendar/interaction\";\nimport FullCalendar from \"@fullcalendar/react\";\nimport timeGridPlugin from \"@fullcalendar/timegrid\";\nimport i18next from \"i18next\";\nimport { noop } from \"neetocist\";\nimport { dayjs } from \"neetocommons/v2/utils\";\nimport PropTypes from \"prop-types\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport \"./calendar-view.css\";\nimport { LOCALE_CONFIG, VIEW_OPTIONS } from \"./constants\";\nimport Header from \"./Header\";\nimport { mergeRefs } from \"./utils\";\n\nimport SubHeader from \"../SubHeader\";\n\nconst direction = i18next.dir() || \"ltr\";\n\nconst CalendarView = forwardRef(\n (\n {\n viewOptions = VIEW_OPTIONS,\n events = [],\n handleDateClick = noop,\n handleEventClick = noop,\n eventClassNames = \"\",\n dayCellClassNames = \"\",\n validDates = { start: null, end: null },\n onDateChange = noop,\n dayMaxEvents,\n eventMaxStack,\n hideHeader = false,\n locale,\n onTodayClick,\n todayButtonLabel,\n todayButtonClassName,\n datePickerButtonClassName,\n showDatePickerIcon = true,\n ...otherProps\n },\n ref\n ) => {\n const calendarViewOptions = viewOptions || VIEW_OPTIONS;\n\n const defaultView =\n Object.values(calendarViewOptions).find(prop(\"default\")) ||\n calendarViewOptions[Object.keys(calendarViewOptions)[0]];\n\n const [selectedView, setSelectedView] = useState(defaultView);\n\n const [selectedDate, setSelectedDate] = useState(dayjs());\n\n const { t } = useTranslation();\n\n const localeSpecificProps = LOCALE_CONFIG[locale] || {};\n\n const handleDateChange = date => {\n setSelectedDate(prevDate => {\n const newDate = typeof date === \"function\" ? date(prevDate) : date;\n onDateChange(newDate);\n\n return newDate;\n });\n };\n const calendarWrapperRef = useRef(null);\n const calendarRef = useRef();\n\n useEffect(() => {\n const calendarApi = calendarRef.current?.getApi?.();\n const wrapperElement = calendarWrapperRef.current;\n\n if (!calendarApi || !wrapperElement) return undefined;\n\n const handleResize = () => {\n calendarApi.updateSize();\n };\n\n const observer = new ResizeObserver(handleResize);\n\n observer.observe(wrapperElement);\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n return (\n <div\n className=\"nm-calendar-view flex flex-col\"\n data-testid=\"calendar-view\"\n ref={calendarWrapperRef}\n >\n {!hideHeader && (\n <SubHeader\n leftActionBlock={\n <h2 className=\"text-foreground text-xl font-semibold\">\n {selectedDate.format(\"MMMM, YYYY\")}\n </h2>\n }\n rightActionBlock={\n <Header\n {...{\n calendarRef,\n calendarViewOptions,\n datePickerButtonClassName,\n onTodayClick,\n selectedDate,\n selectedView,\n setSelectedDate,\n setSelectedView,\n showDatePickerIcon,\n todayButtonClassName,\n todayButtonLabel,\n validDates,\n }}\n setSelectedDate={handleDateChange}\n />\n }\n />\n )}\n <FullCalendar\n expandRows\n allDayText={t(\"neetoMolecules.calendarView.allDay\")}\n dateClick={handleDateClick}\n dayHeaderClassNames=\"p-2\"\n displayEventTime={false}\n eventClick={handleEventClick}\n firstDay={1}\n headerToolbar={false}\n height=\"auto\"\n initialView={selectedView.fullCalendarView}\n plugins={[dayGridPlugin, timeGridPlugin, interactionPlugin]}\n ref={mergeRefs(ref, calendarRef)}\n {...{\n dayCellClassNames,\n dayMaxEvents,\n direction,\n eventClassNames,\n eventMaxStack,\n events,\n locale,\n ...localeSpecificProps,\n ...otherProps,\n }}\n />\n </div>\n );\n }\n);\n\nCalendarView.displayName = \"CalendarView\";\n\nCalendarView.propTypes = {\n viewOptions: PropTypes.object,\n events: PropTypes.array,\n handleDateClick: PropTypes.func,\n handleEventClick: PropTypes.func,\n eventClassNames: PropTypes.string,\n dayCellClassNames: PropTypes.string,\n dayMaxEvents: PropTypes.number,\n eventMaxStack: PropTypes.number,\n onDateChange: PropTypes.func,\n validDates: PropTypes.shape({\n start: PropTypes.instanceOf(Date),\n end: PropTypes.instanceOf(Date),\n }),\n hideHeader: PropTypes.bool,\n locale: PropTypes.string,\n onTodayClick: PropTypes.func,\n todayButtonLabel: PropTypes.string,\n todayButtonClassName: PropTypes.string,\n datePickerButtonClassName: PropTypes.string,\n showDatePickerIcon: PropTypes.bool,\n};\n\nexport default CalendarView;\n"],"names":["WEEKLY_VIEW","t","MONTHLY_VIEW","DAILY_VIEW","VIEW_OPTIONS","_defineProperty","label","fullCalendarView","picker","LOCALE_CONFIG","ja","dayCellContent","arg","date","getDate","dayHeaderFormat","weekday","getWeekString","_ref","_ref$isStartOfWeek","isStartOfWeek","_ref$showMonth","showMonth","_ref$showYear","showYear","concat","format","getStartOfWeek","dayjs","startOf","getEndOfWeek","endOf","getFormattedMonthStr","getFormattedWeekRangeStr","startOfWeek","endOfWeek","shouldShowMonthsSeparately","month","shouldShowYearsSeparately","year","startOfWeekStr","endOfWeekStr","getFormattedDayStr","getFormattedRangeStr","formatFunctions","week","day","selectedFormatter","mergeRefs","_len","arguments","length","refs","Array","_key","node","filter","Boolean","forEach","ref","current","CustomDatePicker","selectedDate","setSelectedDate","validDates","onTodayClick","todayButtonLabel","todayButtonClassName","datePickerButtonClassName","_ref$showDatePickerIc","showDatePickerIcon","_useTranslation","useTranslation","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","selectedRangeStr","start","end","isDateLessThanStart","isSameOrBefore","isDateGreaterThanEnd","isSameOrAfter","onPrevious","prevDate","subtract","onNext","add","onToday","getDisabledDates","_jsxs","className","children","_jsx","Button","variant","onClick","role","disabled","icon","ChevronLeft","size","period","DatePicker","align","disabledDate","open","side","value","weekStartsOn","trigger","ChevronDown","undefined","iconPosition","currentDate","classnames","onChange","onOpenChange","ChevronRight","Header","calendarRef","selectedView","setSelectedView","calendarViewOptions","handleViewSelection","option","calendar","changeView","navigateToSelectedDate","_calendarRef$current","gotoDate","useEffect","setTimeout","getPopupContainer","prop","Object","keys","DropdownMenu","capitalize","buttonProps","view","values","map","idx","MenuItem","isActive","direction","i18next","dir","CalendarView","forwardRef","_ref$viewOptions","viewOptions","_ref$events","events","_ref$handleDateClick","handleDateClick","noop","_ref$handleEventClick","handleEventClick","_ref$eventClassNames","eventClassNames","_ref$dayCellClassName","dayCellClassNames","_ref$validDates","_ref$onDateChange","onDateChange","dayMaxEvents","eventMaxStack","_ref$hideHeader","hideHeader","locale","otherProps","_objectWithoutProperties","_excluded","defaultView","find","_useState3","_useState4","localeSpecificProps","handleDateChange","newDate","calendarWrapperRef","useRef","_calendarRef$current$","calendarApi","getApi","call","wrapperElement","handleResize","updateSize","observer","ResizeObserver","observe","disconnect","SubHeader","leftActionBlock","rightActionBlock","FullCalendar","_objectSpread","expandRows","allDayText","dateClick","dayHeaderClassNames","displayEventTime","eventClick","firstDay","headerToolbar","height","initialView","plugins","dayGridPlugin","timeGridPlugin","interactionPlugin","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarView.js","sources":["../../src/v2/components/CalendarView/constants.js","../../src/v2/components/CalendarView/utils.js","../../src/v2/components/CalendarView/CustomDatePicker.jsx","../../src/v2/components/CalendarView/Header.jsx","../../src/v2/components/CalendarView/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nconst WEEKLY_VIEW = t(\"neetoMolecules.calendarView.weekly\");\nconst MONTHLY_VIEW = t(\"neetoMolecules.calendarView.monthly\");\nconst DAILY_VIEW = t(\"neetoMolecules.calendarView.daily\");\n\nexport const VIEW_OPTIONS = {\n [DAILY_VIEW]: {\n label: DAILY_VIEW,\n fullCalendarView: \"timeGridDay\",\n picker: \"day\",\n },\n [WEEKLY_VIEW]: {\n label: WEEKLY_VIEW,\n fullCalendarView: \"timeGridWeek\",\n picker: \"week\",\n },\n [MONTHLY_VIEW]: {\n label: MONTHLY_VIEW,\n fullCalendarView: \"dayGridMonth\",\n picker: \"month\",\n },\n};\n\nexport const LOCALE_CONFIG = {\n ja: {\n dayCellContent: arg => arg.date.getDate(),\n dayHeaderFormat: { weekday: \"long\" },\n },\n};\n","import { dayjs } from \"neetocommons/v2/utils\";\n\nconst getWeekString = ({\n date,\n isStartOfWeek = true,\n showMonth = false,\n showYear = false,\n}) =>\n `${showMonth || isStartOfWeek ? date.format(\"MMM\") : \"\"} ${date.date()} ${\n showYear || !isStartOfWeek ? date.format(\"YYYY\") : \"\"\n }`;\n\nexport const getStartOfWeek = date => dayjs(date).startOf(\"week\");\n\nexport const getEndOfWeek = date => dayjs(date).endOf(\"week\");\n\nexport const getFormattedMonthStr = date => date.format(\"MMM YYYY\");\n\nexport const getFormattedWeekRangeStr = date => {\n const startOfWeek = getStartOfWeek(date);\n const endOfWeek = getEndOfWeek(date);\n\n const shouldShowMonthsSeparately = startOfWeek.month() !== endOfWeek.month();\n const shouldShowYearsSeparately = startOfWeek.year() !== endOfWeek.year();\n\n const startOfWeekStr = getWeekString({\n date: startOfWeek,\n showMonth: shouldShowMonthsSeparately,\n showYear: shouldShowYearsSeparately,\n });\n\n const endOfWeekStr = getWeekString({\n date: endOfWeek,\n isStartOfWeek: false,\n showMonth: shouldShowMonthsSeparately,\n showYear: shouldShowYearsSeparately,\n });\n\n return `${startOfWeekStr} - ${endOfWeekStr}`;\n};\n\nexport const getFormattedDayStr = date => date.format(\"DD MMM YYYY\");\n\nexport const getFormattedRangeStr = (date, picker) => {\n const formatFunctions = {\n month: getFormattedMonthStr,\n week: getFormattedWeekRangeStr,\n day: getFormattedDayStr,\n };\n const selectedFormatter = formatFunctions[picker];\n\n return selectedFormatter(date);\n};\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs\n .filter(Boolean)\n .forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { useState } from \"react\";\n\nimport { Button, DatePicker } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { ChevronDown, ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { dayjs } from \"neetocommons/v2/utils\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getFormattedRangeStr } from \"./utils\";\n\nconst CustomDatePicker = ({\n selectedDate,\n setSelectedDate,\n picker,\n validDates,\n onTodayClick,\n todayButtonLabel,\n todayButtonClassName,\n datePickerButtonClassName,\n showDatePickerIcon = true,\n}) => {\n const { t } = useTranslation();\n const [isOpen, setIsOpen] = useState(false);\n\n const selectedRangeStr = getFormattedRangeStr(selectedDate, picker);\n\n const { start, end } = validDates;\n\n const isDateLessThanStart =\n start && selectedDate.isSameOrBefore(dayjs(start), picker);\n\n const isDateGreaterThanEnd =\n end && selectedDate.isSameOrAfter(dayjs(end), picker);\n\n const onPrevious = () =>\n setSelectedDate(prevDate => prevDate.subtract(1, picker));\n\n const onNext = () => setSelectedDate(prevDate => prevDate.add(1, picker));\n\n const onToday = () => {\n setSelectedDate(dayjs());\n onTodayClick?.();\n };\n\n const getDisabledDates = date => {\n if (!date) return false;\n\n return (start && date <= start) || (end && date >= end);\n };\n\n return (\n <div className=\"nm-calendar-view__date-picker flex items-center justify-start gap-x-4\">\n <Button\n aria-label={t(\"neetoMolecules.calendarView.aria.goToToday\")}\n className={todayButtonClassName}\n data-testid=\"neeto-molecules-calendar-view-today-button\"\n variant=\"secondary\"\n onClick={onToday}\n >\n {todayButtonLabel ?? t(\"neetoMolecules.calendarView.today\")}\n </Button>\n <div\n aria-label={t(\"neetoMolecules.calendarView.aria.dateNavigation\")}\n className=\"flex items-center\"\n role=\"group\"\n >\n <Button\n className=\"me-1\"\n data-testid=\"neeto-molecules-calendar-view-previous-button\"\n disabled={isDateLessThanStart}\n icon={() => <ChevronLeft className=\"rtl:scale-x-[-1]\" size={20} />}\n variant=\"ghost\"\n aria-label={t(\"neetoMolecules.calendarView.aria.previousPeriod\", {\n period: picker,\n })}\n onClick={onPrevious}\n />\n <DatePicker\n {...{ picker }}\n align=\"start\"\n disabledDate={getDisabledDates}\n open={isOpen}\n side=\"bottom\"\n value={selectedDate}\n weekStartsOn={1}\n trigger={\n <Button\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n data-testid=\"neeto-molecules-calendar-view-date-picker-button\"\n icon={showDatePickerIcon ? ChevronDown : undefined}\n iconPosition=\"right\"\n variant=\"ghost\"\n aria-label={t(\"neetoMolecules.calendarView.aria.selectDate\", {\n currentDate: selectedRangeStr,\n })}\n className={classnames(\n \"justify-center\",\n datePickerButtonClassName ?? \"min-w-52\"\n )}\n >\n <span\n className=\"text-foreground text-base font-medium\"\n data-testid=\"neeto-molecules-calendar-view-date-picker-button-label\"\n >\n {selectedRangeStr}\n </span>\n </Button>\n }\n onChange={setSelectedDate}\n onOpenChange={setIsOpen}\n />\n <Button\n className=\"ms-1\"\n data-testid=\"neeto-molecules-calendar-view-next-button\"\n disabled={isDateGreaterThanEnd}\n icon={() => <ChevronRight className=\"rtl:scale-x-[-1]\" size={20} />}\n variant=\"ghost\"\n aria-label={t(\"neetoMolecules.calendarView.aria.nextPeriod\", {\n period: picker,\n })}\n onClick={onNext}\n />\n </div>\n </div>\n );\n};\n\nexport default CustomDatePicker;\n","import { useEffect } from \"react\";\n\nimport { DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { capitalize } from \"neetocist\";\nimport { prop, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CustomDatePicker from \"./CustomDatePicker\";\n\nconst Header = ({\n calendarRef,\n selectedView,\n setSelectedView,\n setSelectedDate,\n selectedDate,\n calendarViewOptions,\n validDates,\n onTodayClick,\n todayButtonLabel,\n todayButtonClassName,\n datePickerButtonClassName,\n showDatePickerIcon,\n}) => {\n const { t } = useTranslation();\n\n const handleViewSelection = option => {\n setSelectedView(option);\n calendarRef.current.calendar.changeView(option.fullCalendarView);\n };\n\n const navigateToSelectedDate = () =>\n calendarRef?.current?.calendar?.gotoDate(selectedDate.format(\"YYYY-MM-DD\"));\n\n useEffect(() => {\n setTimeout(navigateToSelectedDate);\n }, [selectedDate]);\n\n return (\n <div\n aria-label={t(\"neetoMolecules.calendarView.aria.calendarControls\")}\n className=\"nm-calendar-view__controls flex items-center gap-x-4\"\n role=\"group\"\n >\n <CustomDatePicker\n {...{\n datePickerButtonClassName,\n onTodayClick,\n selectedDate,\n setSelectedDate,\n showDatePickerIcon,\n todayButtonClassName,\n todayButtonLabel,\n validDates,\n }}\n getPopupContainer={prop(\"parentNode\")}\n picker={selectedView.picker}\n />\n {Object.keys(calendarViewOptions).length > 1 && (\n <DropdownMenu\n label={capitalize(selectedView.label)}\n buttonProps={{\n \"data-testid\": \"calendar-view-dropdown\",\n \"aria-label\": t(\"neetoMolecules.calendarView.aria.viewSelector\", {\n view: capitalize(selectedView.label),\n }),\n variant: \"secondary\",\n }}\n >\n {values(calendarViewOptions).map((option, idx) => (\n <DropdownMenu.MenuItem\n isActive={selectedView === option}\n key={idx}\n onClick={() => handleViewSelection(option)}\n >\n {capitalize(option.label)}\n </DropdownMenu.MenuItem>\n ))}\n </DropdownMenu>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import { forwardRef, useRef, useState, useEffect } from \"react\";\n\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\nimport interactionPlugin from \"@fullcalendar/interaction\";\nimport FullCalendar from \"@fullcalendar/react\";\nimport timeGridPlugin from \"@fullcalendar/timegrid\";\nimport i18next from \"i18next\";\nimport { noop } from \"neetocist\";\nimport { dayjs } from \"neetocommons/v2/utils\";\nimport PropTypes from \"prop-types\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport \"./calendar-view.css\";\nimport { LOCALE_CONFIG, VIEW_OPTIONS } from \"./constants\";\nimport Header from \"./Header\";\nimport { mergeRefs } from \"./utils\";\n\nimport SubHeader from \"../SubHeader\";\n\nconst direction = i18next.dir() || \"ltr\";\n\nconst CalendarView = forwardRef(\n (\n {\n viewOptions = VIEW_OPTIONS,\n events = [],\n handleDateClick = noop,\n handleEventClick = noop,\n eventClassNames = \"\",\n dayCellClassNames = \"\",\n validDates = { start: null, end: null },\n onDateChange = noop,\n dayMaxEvents,\n eventMaxStack,\n hideHeader = false,\n locale,\n onTodayClick,\n todayButtonLabel,\n todayButtonClassName,\n datePickerButtonClassName,\n showDatePickerIcon = true,\n ...otherProps\n },\n ref\n ) => {\n const calendarViewOptions = viewOptions || VIEW_OPTIONS;\n\n const defaultView =\n Object.values(calendarViewOptions).find(prop(\"default\")) ||\n calendarViewOptions[Object.keys(calendarViewOptions)[0]];\n\n const [selectedView, setSelectedView] = useState(defaultView);\n\n const [selectedDate, setSelectedDate] = useState(dayjs());\n\n const { t } = useTranslation();\n\n const localeSpecificProps = LOCALE_CONFIG[locale] || {};\n\n const handleDateChange = date => {\n setSelectedDate(prevDate => {\n const newDate = typeof date === \"function\" ? date(prevDate) : date;\n onDateChange(newDate);\n\n return newDate;\n });\n };\n const calendarWrapperRef = useRef(null);\n const calendarRef = useRef();\n\n useEffect(() => {\n const calendarApi = calendarRef.current?.getApi?.();\n const wrapperElement = calendarWrapperRef.current;\n\n if (!calendarApi || !wrapperElement) return undefined;\n\n const handleResize = () => {\n calendarApi.updateSize();\n };\n\n const observer = new ResizeObserver(handleResize);\n\n observer.observe(wrapperElement);\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n return (\n <div\n className=\"nm-calendar-view flex flex-col\"\n data-testid=\"calendar-view\"\n ref={calendarWrapperRef}\n >\n {!hideHeader && (\n <SubHeader\n leftActionBlock={\n <h2 className=\"text-foreground text-xl font-semibold\">\n {selectedDate.format(\"MMMM, YYYY\")}\n </h2>\n }\n rightActionBlock={\n <Header\n {...{\n calendarRef,\n calendarViewOptions,\n datePickerButtonClassName,\n onTodayClick,\n selectedDate,\n selectedView,\n setSelectedDate,\n setSelectedView,\n showDatePickerIcon,\n todayButtonClassName,\n todayButtonLabel,\n validDates,\n }}\n setSelectedDate={handleDateChange}\n />\n }\n />\n )}\n <FullCalendar\n expandRows\n allDayText={t(\"neetoMolecules.calendarView.allDay\")}\n dateClick={handleDateClick}\n dayHeaderClassNames=\"p-2\"\n displayEventTime={false}\n eventClick={handleEventClick}\n firstDay={1}\n headerToolbar={false}\n height=\"auto\"\n initialView={selectedView.fullCalendarView}\n plugins={[dayGridPlugin, timeGridPlugin, interactionPlugin]}\n ref={mergeRefs(ref, calendarRef)}\n {...{\n dayCellClassNames,\n dayMaxEvents,\n direction,\n eventClassNames,\n eventMaxStack,\n events,\n locale,\n ...localeSpecificProps,\n ...otherProps,\n }}\n />\n </div>\n );\n }\n);\n\nCalendarView.displayName = \"CalendarView\";\n\nCalendarView.propTypes = {\n viewOptions: PropTypes.object,\n events: PropTypes.array,\n handleDateClick: PropTypes.func,\n handleEventClick: PropTypes.func,\n eventClassNames: PropTypes.string,\n dayCellClassNames: PropTypes.string,\n dayMaxEvents: PropTypes.number,\n eventMaxStack: PropTypes.number,\n onDateChange: PropTypes.func,\n validDates: PropTypes.shape({\n start: PropTypes.instanceOf(Date),\n end: PropTypes.instanceOf(Date),\n }),\n hideHeader: PropTypes.bool,\n locale: PropTypes.string,\n onTodayClick: PropTypes.func,\n todayButtonLabel: PropTypes.string,\n todayButtonClassName: PropTypes.string,\n datePickerButtonClassName: PropTypes.string,\n showDatePickerIcon: PropTypes.bool,\n};\n\nexport default CalendarView;\n"],"names":["WEEKLY_VIEW","t","MONTHLY_VIEW","DAILY_VIEW","VIEW_OPTIONS","_defineProperty","label","fullCalendarView","picker","LOCALE_CONFIG","ja","dayCellContent","arg","date","getDate","dayHeaderFormat","weekday","getWeekString","_ref","_ref$isStartOfWeek","isStartOfWeek","_ref$showMonth","showMonth","_ref$showYear","showYear","concat","format","getStartOfWeek","dayjs","startOf","getEndOfWeek","endOf","getFormattedMonthStr","getFormattedWeekRangeStr","startOfWeek","endOfWeek","shouldShowMonthsSeparately","month","shouldShowYearsSeparately","year","startOfWeekStr","endOfWeekStr","getFormattedDayStr","getFormattedRangeStr","formatFunctions","week","day","selectedFormatter","mergeRefs","_len","arguments","length","refs","Array","_key","node","filter","Boolean","forEach","ref","current","CustomDatePicker","selectedDate","setSelectedDate","validDates","onTodayClick","todayButtonLabel","todayButtonClassName","datePickerButtonClassName","_ref$showDatePickerIc","showDatePickerIcon","_useTranslation","useTranslation","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","selectedRangeStr","start","end","isDateLessThanStart","isSameOrBefore","isDateGreaterThanEnd","isSameOrAfter","onPrevious","prevDate","subtract","onNext","add","onToday","getDisabledDates","_jsxs","className","children","_jsx","Button","variant","onClick","role","disabled","icon","ChevronLeft","size","period","DatePicker","align","disabledDate","open","side","value","weekStartsOn","trigger","ChevronDown","undefined","iconPosition","currentDate","classnames","onChange","onOpenChange","ChevronRight","Header","calendarRef","selectedView","setSelectedView","calendarViewOptions","handleViewSelection","option","calendar","changeView","navigateToSelectedDate","_calendarRef$current","gotoDate","useEffect","setTimeout","getPopupContainer","prop","Object","keys","DropdownMenu","capitalize","buttonProps","view","values","map","idx","MenuItem","isActive","direction","i18next","dir","CalendarView","forwardRef","_ref$viewOptions","viewOptions","_ref$events","events","_ref$handleDateClick","handleDateClick","noop","_ref$handleEventClick","handleEventClick","_ref$eventClassNames","eventClassNames","_ref$dayCellClassName","dayCellClassNames","_ref$validDates","_ref$onDateChange","onDateChange","dayMaxEvents","eventMaxStack","_ref$hideHeader","hideHeader","locale","otherProps","_objectWithoutProperties","_excluded","defaultView","find","_useState3","_useState4","localeSpecificProps","handleDateChange","newDate","calendarWrapperRef","useRef","_calendarRef$current$","calendarApi","getApi","call","wrapperElement","handleResize","updateSize","observer","ResizeObserver","observe","disconnect","SubHeader","leftActionBlock","rightActionBlock","FullCalendar","_objectSpread","expandRows","allDayText","dateClick","dayHeaderClassNames","displayEventTime","eventClick","firstDay","headerToolbar","height","initialView","plugins","dayGridPlugin","timeGridPlugin","interactionPlugin","displayName"],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useState, useEffect } from 'react';
3
+ import { Dialog, Typography, Checkbox, Button } from '@bigbinary/neeto-atoms';
4
+ import { noop } from '@bigbinary/neeto-cist';
5
+ import { not } from 'ramda';
6
+ import { useTranslation } from 'react-i18next';
7
+ import { jsxs, jsx } from 'react/jsx-runtime';
8
+
9
+ var DeleteArchiveModal = function DeleteArchiveModal(_ref) {
10
+ var _ref$checkboxLabel = _ref.checkboxLabel,
11
+ checkboxLabel = _ref$checkboxLabel === void 0 ? "" : _ref$checkboxLabel,
12
+ _ref$className = _ref.className,
13
+ className = _ref$className === void 0 ? "" : _ref$className,
14
+ _ref$description = _ref.description,
15
+ description = _ref$description === void 0 ? "" : _ref$description,
16
+ _ref$isArchiving = _ref.isArchiving,
17
+ isArchiving = _ref$isArchiving === void 0 ? false : _ref$isArchiving,
18
+ _ref$isDeleting = _ref.isDeleting,
19
+ isDeleting = _ref$isDeleting === void 0 ? false : _ref$isDeleting,
20
+ _ref$isOpen = _ref.isOpen,
21
+ isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
22
+ _ref$onArchive = _ref.onArchive,
23
+ onArchive = _ref$onArchive === void 0 ? noop : _ref$onArchive,
24
+ _ref$onClose = _ref.onClose,
25
+ onClose = _ref$onClose === void 0 ? noop : _ref$onClose,
26
+ _ref$onDelete = _ref.onDelete,
27
+ onDelete = _ref$onDelete === void 0 ? noop : _ref$onDelete,
28
+ _ref$title = _ref.title,
29
+ title = _ref$title === void 0 ? "" : _ref$title;
30
+ var _useTranslation = useTranslation(),
31
+ t = _useTranslation.t;
32
+ var _useState = useState(false),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ isChecked = _useState2[0],
35
+ setIsChecked = _useState2[1];
36
+ var handleClose = function handleClose() {
37
+ setIsChecked(false);
38
+ onClose();
39
+ };
40
+ useEffect(function () {
41
+ if (not(isOpen)) setIsChecked(false);
42
+ }, [isOpen]);
43
+ return /*#__PURE__*/jsxs(Dialog, {
44
+ className: className,
45
+ isOpen: isOpen,
46
+ "aria-describedby": undefined,
47
+ "data-testid": "alert-box",
48
+ onClose: handleClose,
49
+ children: [/*#__PURE__*/jsx(Dialog.Header, {
50
+ children: /*#__PURE__*/jsx(Dialog.Title, {
51
+ "data-testid": "delete-archive-alert-title",
52
+ children: title
53
+ })
54
+ }), /*#__PURE__*/jsxs(Dialog.Body, {
55
+ children: [/*#__PURE__*/jsx(Typography, {
56
+ className: "leading-normal",
57
+ "data-testid": "delete-archive-alert-message",
58
+ variant: "body2",
59
+ children: description
60
+ }), /*#__PURE__*/jsx(Checkbox, {
61
+ checked: isChecked,
62
+ className: "mt-4",
63
+ "data-testid": "delete-archive-alert-archive-checkbox",
64
+ label: checkboxLabel,
65
+ onCheckedChange: setIsChecked
66
+ })]
67
+ }), /*#__PURE__*/jsxs(Dialog.Footer, {
68
+ className: "flex items-center justify-end gap-2",
69
+ children: [/*#__PURE__*/jsx(Button, {
70
+ "data-testid": "delete-archive-alert-archive-button",
71
+ disabled: not(isOpen),
72
+ label: t("neetoMolecules.common.actions.archive"),
73
+ loading: isArchiving,
74
+ variant: "secondary",
75
+ onClick: onArchive
76
+ }), /*#__PURE__*/jsx(Button, {
77
+ "data-testid": "delete-archive-alert-delete-button",
78
+ disabled: not(isChecked),
79
+ label: t("neetoMolecules.common.actions.delete"),
80
+ loading: isDeleting,
81
+ variant: "destructive",
82
+ onClick: onDelete
83
+ })]
84
+ })]
85
+ });
86
+ };
87
+
88
+ export { DeleteArchiveModal as default };
89
+ //# sourceMappingURL=DeleteArchiveModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteArchiveModal.js","sources":["../../src/v2/components/DeleteArchiveModal/index.jsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport { Button, Checkbox, Dialog, Typography } from \"@bigbinary/neeto-atoms\";\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst DeleteArchiveModal = ({\n checkboxLabel = \"\",\n className = \"\",\n description = \"\",\n isArchiving = false,\n isDeleting = false,\n isOpen = false,\n onArchive = noop,\n onClose = noop,\n onDelete = noop,\n title = \"\",\n}) => {\n const { t } = useTranslation();\n\n const [isChecked, setIsChecked] = useState(false);\n\n const handleClose = () => {\n setIsChecked(false);\n onClose();\n };\n\n useEffect(() => {\n if (not(isOpen)) setIsChecked(false);\n }, [isOpen]);\n\n return (\n <Dialog\n {...{ className, isOpen }}\n aria-describedby={undefined}\n data-testid=\"alert-box\"\n onClose={handleClose}\n >\n <Dialog.Header>\n <Dialog.Title data-testid=\"delete-archive-alert-title\">\n {title}\n </Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <Typography\n className=\"leading-normal\"\n data-testid=\"delete-archive-alert-message\"\n variant=\"body2\"\n >\n {description}\n </Typography>\n <Checkbox\n checked={isChecked}\n className=\"mt-4\"\n data-testid=\"delete-archive-alert-archive-checkbox\"\n label={checkboxLabel}\n onCheckedChange={setIsChecked}\n />\n </Dialog.Body>\n <Dialog.Footer className=\"flex items-center justify-end gap-2\">\n <Button\n data-testid=\"delete-archive-alert-archive-button\"\n disabled={not(isOpen)}\n label={t(\"neetoMolecules.common.actions.archive\")}\n loading={isArchiving}\n variant=\"secondary\"\n onClick={onArchive}\n />\n <Button\n data-testid=\"delete-archive-alert-delete-button\"\n disabled={not(isChecked)}\n label={t(\"neetoMolecules.common.actions.delete\")}\n loading={isDeleting}\n variant=\"destructive\"\n onClick={onDelete}\n />\n </Dialog.Footer>\n </Dialog>\n );\n};\n\nDeleteArchiveModal.propTypes = {\n /**\n * To specify whether the modal should be opened or closed.\n */\n isOpen: PropTypes.bool,\n /**\n * To be passed to loading prop of the archive button\n */\n isArchiving: PropTypes.bool,\n /**\n * To be passed to loading prop of the delete button\n */\n isDeleting: PropTypes.bool,\n /**\n * Additional classes to be added to the modal\n */\n className: PropTypes.string,\n /**\n * Function to be called when the modal is closed\n */\n onClose: PropTypes.func,\n /**\n * Function to be called when the archive button is clicked\n */\n onArchive: PropTypes.func,\n /**\n * Function to be called when the delete button is clicked\n * */\n onDelete: PropTypes.func,\n /**\n * Title of the modal\n */\n title: PropTypes.string,\n /**\n * Description of the modal\n */\n description: PropTypes.string,\n /**\n * Label for the checkbox\n */\n checkboxLabel: PropTypes.string,\n};\n\nexport default DeleteArchiveModal;\n"],"names":["DeleteArchiveModal","_ref","_ref$checkboxLabel","checkboxLabel","_ref$className","className","_ref$description","description","_ref$isArchiving","isArchiving","_ref$isDeleting","isDeleting","_ref$isOpen","isOpen","_ref$onArchive","onArchive","noop","_ref$onClose","onClose","_ref$onDelete","onDelete","_ref$title","title","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","handleClose","useEffect","not","_jsxs","Dialog","undefined","children","_jsx","Header","Title","Body","Typography","variant","Checkbox","checked","label","onCheckedChange","Footer","Button","disabled","loading","onClick"],"mappings":"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"}