{"version":3,"file":"control.min.js","sources":["../../../apps/frappe/frappe/public/js/frappe/ui/capture.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/base_control.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/base_input.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/data.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/int.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/float.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/currency.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/date.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/time.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/datetime.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/date_range.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/select.js","../../../apps/frappe/node_modules/awesomplete/awesomplete.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/link.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/dynamic_link.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/text.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/code.js","../../../apps/frappe/node_modules/quill/dist/quill.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/text_editor.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/quill-mention/constants/keys.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/quill-mention/blots/mention.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/quill-mention/quill.mention.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/comment.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/check.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/image.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/attach.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/attach_image.js","../../../apps/frappe/frappe/public/js/frappe/form/grid_row_form.js","../../../apps/frappe/frappe/public/js/frappe/form/grid_row.js","../../../apps/frappe/frappe/public/js/frappe/form/grid.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/table.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/color.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/signature.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/password.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/read_only.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/button.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/html.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/markdown_editor.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/html_editor.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/heading.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/autocomplete.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/Barcode.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/CODE39/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/CODE128/auto.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128_AUTO.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128A.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128B.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128C.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/CODE128/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN13.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN8.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN5.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN2.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPC.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPCE.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/ITF/constants.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/ITF/ITF.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/ITF/ITF14.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/ITF/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/MSI/MSI.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/MSI/checksums.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/MSI/MSI10.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/MSI/MSI11.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/MSI/MSI1010.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/MSI/MSI1110.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/MSI/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/codabar/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/barcodes/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/help/merge.js","../../../apps/frappe/node_modules/jsbarcode/bin/help/linearizeEncodings.js","../../../apps/frappe/node_modules/jsbarcode/bin/help/fixOptions.js","../../../apps/frappe/node_modules/jsbarcode/bin/help/optionsFromStrings.js","../../../apps/frappe/node_modules/jsbarcode/bin/options/defaults.js","../../../apps/frappe/node_modules/jsbarcode/bin/help/getOptionsFromElement.js","../../../apps/frappe/node_modules/jsbarcode/bin/renderers/shared.js","../../../apps/frappe/node_modules/jsbarcode/bin/renderers/canvas.js","../../../apps/frappe/node_modules/jsbarcode/bin/renderers/svg.js","../../../apps/frappe/node_modules/jsbarcode/bin/renderers/object.js","../../../apps/frappe/node_modules/jsbarcode/bin/renderers/index.js","../../../apps/frappe/node_modules/jsbarcode/bin/exceptions/exceptions.js","../../../apps/frappe/node_modules/jsbarcode/bin/help/getRenderProperties.js","../../../apps/frappe/node_modules/jsbarcode/bin/exceptions/ErrorHandler.js","../../../apps/frappe/node_modules/jsbarcode/bin/JsBarcode.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/barcode.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/geolocation.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/multiselect.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/multicheck.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/table_multiselect.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/multiselect_pills.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/multiselect_list.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/rating.js","../../../apps/frappe/frappe/public/js/frappe/form/controls/control.js"],"sourcesContent":["// frappe.ui.Capture\n// Author - Achilles Rasquinha \n\n/**\n * @description Converts a canvas, image or a video to a data URL string.\n * \n * @param \t{HTMLElement} element - canvas, img or video.\n * @returns {string} \t\t\t - The data URL string.\n * \n * @example\n * frappe._.get_data_uri(video)\n * // returns \"data:image/pngbase64,...\"\n */\nfrappe._.get_data_uri = element =>\n{\n\tconst $element = $(element)\n\tconst width = $element.width()\n\tconst height = $element.height()\n\n\tconst $canvas = $('')\n\t$canvas[0].width = width\n\t$canvas[0].height = height\n\n\tconst context = $canvas[0].getContext('2d')\n\tcontext.drawImage($element[0], 0, 0, width, height)\n\t\n\tconst data_uri = $canvas[0].toDataURL('image/png')\n\n\treturn data_uri\n}\n\n/**\n * @description Frappe's Capture object.\n * \n * @example\n * const capture = frappe.ui.Capture()\n * capture.show()\n * \n * capture.click((data_uri) => {\n * \t// do stuff\n * })\n * \n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Taking_still_photos\n */\nfrappe.ui.Capture = class\n{\n\tconstructor (options = { })\n\t{\n\t\tthis.options = frappe.ui.Capture.OPTIONS\n\t\tthis.set_options(options)\n\t}\n\t\n\tset_options (options)\n\t{\n\t\tthis.options = { ...frappe.ui.Capture.OPTIONS, ...options }\n\t\t\n\t\treturn this\n\t}\n\t\n\trender ( )\n\t{\n\t\treturn navigator.mediaDevices.getUserMedia({ video: true }).then(stream =>\n\t\t{\n\t\t\tthis.dialog \t = new frappe.ui.Dialog({\n\t\t\t\t title: this.options.title,\n\t\t\t\tanimate: this.options.animate,\n\t\t\t\t action:\n\t\t\t\t{\n\t\t\t\t\tsecondary:\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"×\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\n\t\t\tconst $e \t\t = $(frappe.ui.Capture.TEMPLATE)\n\t\t\t\n\t\t\tconst video = $e.find('video')[0]\n\t\t\tvideo.srcObject = stream\n\t\t\tvideo.play()\n\t\t\t\n\t\t\tconst $container = $(this.dialog.body)\n\t\t\t$container.html($e)\n\t\t\t\n\t\t\t$e.find('.fc-btf').hide()\n\n\t\t\t$e.find('.fc-bcp').click(() =>\n\t\t\t{\n\t\t\t\tconst data_url = frappe._.get_data_uri(video)\n\t\t\t\t$e.find('.fc-p').attr('src', data_url)\n\n\t\t\t\t$e.find('.fc-s').hide()\n\t\t\t\t$e.find('.fc-p').show()\n\n\t\t\t\t$e.find('.fc-btu').hide()\n\t\t\t\t$e.find('.fc-btf').show()\n\t\t\t})\n\n\t\t\t$e.find('.fc-br').click(() =>\n\t\t\t{\n\t\t\t\t$e.find('.fc-p').hide()\n\t\t\t\t$e.find('.fc-s').show()\n\n\t\t\t\t$e.find('.fc-btf').hide()\n\t\t\t\t$e.find('.fc-btu').show()\n\t\t\t})\n\n\t\t\t$e.find('.fc-bs').click(() =>\n\t\t\t{\n\t\t\t\tconst data_url = frappe._.get_data_uri(video)\n\t\t\t\tthis.hide()\n\t\t\t\t\n\t\t\t\tif (this.callback)\n\t\t\t\t\tthis.callback(data_url)\n\t\t\t})\n\t\t})\n\t}\n\n\tshow ( )\n\t{\n\t\tthis.render().then(() =>\n\t\t{\n\t\t\tthis.dialog.show()\n\t\t}).catch(err => {\n\t\t\tif ( this.options.error )\n\t\t\t{\n\t\t\t\tconst alert = ` ${frappe.ui.Capture.ERR_MESSAGE}`\n\t\t\t\tfrappe.show_alert(alert, 3)\n\t\t\t}\n\n\t\t\tthrow err\n\t\t})\n\t}\n\n\thide ( )\n\t{\n\t\tif ( this.dialog )\n\t\t\tthis.dialog.hide()\n\t}\n\n\tsubmit (fn)\n\t{\n\t\tthis.callback = fn\n\t}\n}\nfrappe.ui.Capture.OPTIONS =\n{\n\t title: __(`Camera`),\n\tanimate: false,\n\t error: false,\n}\nfrappe.ui.Capture.ERR_MESSAGE = __(\"Unable to load camera.\")\nfrappe.ui.Capture.TEMPLATE \t =\n`\n
\n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t
\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t${\n\t\t\t\t\t\t''\n\t\t\t\t\t\t//
\n\t\t\t\t\t\t// \t\n\t\t\t\t\t\t//
\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
\n`","frappe.ui.form.Control = Class.extend({\n\tinit: function(opts) {\n\t\t$.extend(this, opts);\n\t\tthis.make();\n\n\t\t// if developer_mode=1, show fieldname as tooltip\n\t\tif(frappe.boot.user && frappe.boot.developer_mode===1 && this.$wrapper) {\n\t\t\tthis.$wrapper.attr(\"title\", __(this.df.fieldname));\n\t\t}\n\n\t\tif(this.render_input) {\n\t\t\tthis.refresh();\n\t\t}\n\t},\n\tmake: function() {\n\t\tthis.make_wrapper();\n\t\tthis.$wrapper\n\t\t\t.attr(\"data-fieldtype\", this.df.fieldtype)\n\t\t\t.attr(\"data-fieldname\", this.df.fieldname);\n\t\tthis.wrapper = this.$wrapper.get(0);\n\t\tthis.wrapper.fieldobj = this; // reference for event handlers\n\t},\n\n\tmake_wrapper: function() {\n\t\tthis.$wrapper = $(\"
\").appendTo(this.parent);\n\n\t\t// alias\n\t\tthis.wrapper = this.$wrapper;\n\t},\n\n\ttoggle: function(show) {\n\t\tthis.df.hidden = show ? 0 : 1;\n\t\tthis.refresh();\n\t},\n\n\t// returns \"Read\", \"Write\" or \"None\"\n\t// as strings based on permissions\n\tget_status: function(explain) {\n\t\tif (this.df.get_status) {\n\t\t\treturn this.df.get_status(this);\n\t\t}\n\n\t\tif((!this.doctype && !this.docname) || this.df.parenttype === 'Web Form') {\n\t\t\t// like in case of a dialog box\n\t\t\tif (cint(this.df.hidden)) {\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tif(explain) console.log(\"By Hidden: None\");\n\t\t\t\treturn \"None\";\n\n\t\t\t} else if (cint(this.df.hidden_due_to_dependency)) {\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tif(explain) console.log(\"By Hidden Dependency: None\");\n\t\t\t\treturn \"None\";\n\n\t\t\t} else if (cint(this.df.read_only)) {\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tif(explain) console.log(\"By Read Only: Read\");\n\t\t\t\treturn \"Read\";\n\n\t\t\t}\n\n\t\t\treturn \"Write\";\n\t\t}\n\n\t\tvar status = frappe.perm.get_field_display_status(this.df,\n\t\t\tfrappe.model.get_doc(this.doctype, this.docname), this.perm || (this.frm && this.frm.perm), explain);\n\n\t\t// hide if no value\n\t\tif (this.doctype && status===\"Read\" && !this.only_input\n\t\t\t&& is_null(frappe.model.get_value(this.doctype, this.docname, this.df.fieldname))\n\t\t\t&& !in_list([\"HTML\", \"Image\", \"Button\"], this.df.fieldtype)) {\n\n\t\t\t// eslint-disable-next-line\n\t\t\tif(explain) console.log(\"By Hide Read-only, null fields: None\");\n\t\t\tstatus = \"None\";\n\t\t}\n\n\t\treturn status;\n\t},\n\trefresh: function() {\n\t\tthis.disp_status = this.get_status();\n\t\tthis.$wrapper\n\t\t\t&& this.$wrapper.toggleClass(\"hide-control\", this.disp_status==\"None\")\n\t\t\t&& this.refresh_input\n\t\t\t&& this.refresh_input();\n\n\t\tvar value = this.get_value();\n\n\t\tthis.show_translatable_button(value);\n\t},\n\tshow_translatable_button(value) {\n\t\t// Disable translation non-string fields or special string fields\n\t\tif (!frappe.model\n\t\t\t|| !this.frm\n\t\t\t|| !this.doc\n\t\t\t|| !this.df.translatable\n\t\t\t|| !frappe.model.can_write('Translation')\n\t\t\t|| !value) return;\n\n\t\t// Disable translation in website\n\t\tif (!frappe.views || !frappe.views.TranslationManager) return;\n\n\t\t// Already attached button\n\t\tif (this.$wrapper.find('.clearfix .btn-translation').length) return;\n\n\t\tconst translation_btn =\n\t\t\t`\n\t\t\t\t\n\t\t\t`;\n\n\t\t$(translation_btn)\n\t\t\t.appendTo(this.$wrapper.find('.clearfix'))\n\t\t\t.on('click', () => {\n\t\t\t\tif (!this.doc.__islocal) {\n\t\t\t\t\tnew frappe.views.TranslationManager({\n\t\t\t\t\t\t'df': this.df,\n\t\t\t\t\t\t'source_name': value,\n\t\t\t\t\t\t'target_language': this.doc.language,\n\t\t\t\t\t\t'doc': this.doc\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t},\n\tget_doc: function() {\n\t\treturn this.doctype && this.docname\n\t\t\t&& locals[this.doctype] && locals[this.doctype][this.docname] || {};\n\t},\n\tget_model_value: function() {\n\t\tif(this.doc) {\n\t\t\treturn this.doc[this.df.fieldname];\n\t\t}\n\t},\n\tset_value: function(value) {\n\t\treturn this.validate_and_set_in_model(value);\n\t},\n\tparse_validate_and_set_in_model: function(value, e) {\n\t\tif(this.parse) {\n\t\t\tvalue = this.parse(value);\n\t\t}\n\t\treturn this.validate_and_set_in_model(value, e);\n\t},\n\tvalidate_and_set_in_model: function(value, e) {\n\t\tvar me = this;\n\t\tif(this.inside_change_event) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\tthis.inside_change_event = true;\n\t\tvar set = function(value) {\n\t\t\tme.inside_change_event = false;\n\t\t\treturn frappe.run_serially([\n\t\t\t\t() => me.set_model_value(value),\n\t\t\t\t() => {\n\t\t\t\t\tme.set_mandatory && me.set_mandatory(value);\n\n\t\t\t\t\tif(me.df.change || me.df.onchange) {\n\t\t\t\t\t\t// onchange event specified in df\n\t\t\t\t\t\treturn (me.df.change || me.df.onchange).apply(me, [e]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]);\n\t\t};\n\n\t\tvalue = this.validate(value);\n\t\tif (value && value.then) {\n\t\t\t// got a promise\n\t\t\treturn value.then((value) => set(value));\n\t\t} else {\n\t\t\t// all clear\n\t\t\treturn set(value);\n\t\t}\n\t},\n\tget_value: function() {\n\t\tif(this.get_status()==='Write') {\n\t\t\treturn this.get_input_value ?\n\t\t\t\t(this.parse ? this.parse(this.get_input_value()) : this.get_input_value()) :\n\t\t\t\tundefined;\n\t\t} else {\n\t\t\treturn this.value || undefined;\n\t\t}\n\t},\n\tset_model_value: function(value) {\n\t\tif(this.frm) {\n\t\t\tthis.last_value = value;\n\t\t\treturn frappe.model.set_value(this.doctype, this.docname, this.df.fieldname,\n\t\t\t\tvalue, this.df.fieldtype);\n\t\t} else {\n\t\t\tif(this.doc) {\n\t\t\t\tthis.doc[this.df.fieldname] = value;\n\t\t\t}\n\t\t\tthis.set_input(value);\n\t\t\treturn Promise.resolve();\n\t\t}\n\t},\n\tset_focus: function() {\n\t\tif(this.$input) {\n\t\t\tthis.$input.get(0).focus();\n\t\t\treturn true;\n\t\t}\n\t}\n});\n","frappe.ui.form.ControlInput = frappe.ui.form.Control.extend({\n\thorizontal: true,\n\tmake: function() {\n\t\t// parent element\n\t\tthis._super();\n\t\tthis.set_input_areas();\n\n\t\t// set description\n\t\tthis.set_max_width();\n\t},\n\tmake_wrapper: function() {\n\t\tif(this.only_input) {\n\t\t\tthis.$wrapper = $('
').appendTo(this.parent);\n\t\t} else {\n\t\t\tthis.$wrapper = $('
\\\n\t\t\t\t
\\\n\t\t\t\t\t
\\\n\t\t\t\t\t\t\\\n\t\t\t\t\t
\\\n\t\t\t\t\t
\\\n\t\t\t\t\t\t
\\\n\t\t\t\t\t\t
\\\n\t\t\t\t\t\t

\\\n\t\t\t\t\t
\\\n\t\t\t\t
\\\n\t\t\t
').appendTo(this.parent);\n\t\t}\n\t},\n\ttoggle_label: function(show) {\n\t\tthis.$wrapper.find(\".control-label\").toggleClass(\"hide\", !show);\n\t},\n\ttoggle_description: function(show) {\n\t\tthis.$wrapper.find(\".help-box\").toggleClass(\"hide\", !show);\n\t},\n\tset_input_areas: function() {\n\t\tif(this.only_input) {\n\t\t\tthis.input_area = this.wrapper;\n\t\t} else {\n\t\t\tthis.label_area = this.label_span = this.$wrapper.find(\"label\").get(0);\n\t\t\tthis.input_area = this.$wrapper.find(\".control-input\").get(0);\n\t\t\tthis.$input_wrapper = this.$wrapper.find(\".control-input-wrapper\");\n\t\t\t// keep a separate display area to rendered formatted values\n\t\t\t// like links, currencies, HTMLs etc.\n\t\t\tthis.disp_area = this.$wrapper.find(\".control-value\").get(0);\n\t\t}\n\t},\n\tset_max_width: function() {\n\t\tif(this.horizontal) {\n\t\t\tthis.$wrapper.addClass(\"input-max-width\");\n\t\t}\n\t},\n\n\t// update input value, label, description\n\t// display (show/hide/read-only),\n\t// mandatory style on refresh\n\trefresh_input: function() {\n\t\tvar me = this;\n\t\tvar make_input = function() {\n\t\t\tif (!me.has_input) {\n\t\t\t\tme.make_input();\n\t\t\t\tif (me.df.on_make) {\n\t\t\t\t\tme.df.on_make(me);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar update_input = function() {\n\t\t\tif (me.doctype && me.docname) {\n\t\t\t\tme.set_input(me.value);\n\t\t\t} else {\n\t\t\t\tme.set_input(me.value || null);\n\t\t\t}\n\t\t};\n\n\t\tif (me.disp_status != \"None\") {\n\t\t\t// refresh value\n\t\t\tif (me.frm) {\n\t\t\t\tme.value = frappe.model.get_value(me.doctype, me.docname, me.df.fieldname);\n\t\t\t} else if (me.doc) {\n\t\t\t\tme.value = me.doc[me.df.fieldname];\n\t\t\t}\n\n\t\t\tif (me.can_write()) {\n\t\t\t\tme.disp_area && $(me.disp_area).toggle(false);\n\t\t\t\t$(me.input_area).toggle(true);\n\t\t\t\tme.$input && me.$input.prop(\"disabled\", false);\n\t\t\t\tmake_input();\n\t\t\t\tupdate_input();\n\t\t\t} else {\n\t\t\t\tif (me.only_input) {\n\t\t\t\t\tmake_input();\n\t\t\t\t\tupdate_input();\n\t\t\t\t} else {\n\t\t\t\t\t$(me.input_area).toggle(false);\n\t\t\t\t\tif (me.disp_area) {\n\t\t\t\t\t\tme.set_disp_area(me.value);\n\t\t\t\t\t\t$(me.disp_area).toggle(true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tme.$input && me.$input.prop(\"disabled\", true);\n\t\t\t}\n\n\t\t\tme.set_description();\n\t\t\tme.set_label();\n\t\t\tme.set_mandatory(me.value);\n\t\t\tme.set_bold();\n\t\t}\n\t},\n\n\tcan_write() {\n\t\treturn this.disp_status == \"Write\";\n\t},\n\n\tset_disp_area: function(value) {\n\t\tif(in_list([\"Currency\", \"Int\", \"Float\"], this.df.fieldtype)\n\t\t\t&& (this.value === 0 || value === 0)) {\n\t\t\t// to set the 0 value in readonly for currency, int, float field\n\t\t\tvalue = 0;\n\t\t} else {\n\t\t\tvalue = this.value || value;\n\t\t}\n\t\tif (this.df.fieldtype === 'Data') {\n\t\t\tvalue = frappe.utils.escape_html(value);\n\t\t}\n\t\tlet doc = this.doc || (this.frm && this.frm.doc);\n\t\tlet display_value = frappe.format(value, this.df, { no_icon: true, inline: true }, doc);\n\t\tthis.disp_area && $(this.disp_area).html(display_value);\n\t},\n\tset_label: function(label) {\n\t\tif(label) this.df.label = label;\n\n\t\tif(this.only_input || this.df.label==this._label)\n\t\t\treturn;\n\n\t\tvar icon = \"\";\n\t\tthis.label_span.innerHTML = (icon ? ' ' : \"\") +\n\t\t\t__(this.df.label) || \" \";\n\t\tthis._label = this.df.label;\n\t},\n\tset_description: function(description) {\n\t\tif (description !== undefined) {\n\t\t\tthis.df.description = description;\n\t\t}\n\t\tif (this.only_input || this.df.description===this._description) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.df.description) {\n\t\t\tthis.$wrapper.find(\".help-box\").html(__(this.df.description));\n\t\t} else {\n\t\t\tthis.set_empty_description();\n\t\t}\n\t\tthis._description = this.df.description;\n\t},\n\tset_new_description: function(description) {\n\t\tthis.$wrapper.find(\".help-box\").html(description);\n\t},\n\tset_empty_description: function() {\n\t\tthis.$wrapper.find(\".help-box\").html(\"\");\n\t},\n\tset_mandatory: function(value) {\n\t\tthis.$wrapper.toggleClass(\"has-error\", (this.df.reqd && is_null(value)) ? true : false);\n\t},\n\tset_bold: function() {\n\t\tif(this.$input) {\n\t\t\tthis.$input.toggleClass(\"bold\", !!(this.df.bold || this.df.reqd));\n\t\t}\n\t\tif(this.disp_area) {\n\t\t\t$(this.disp_area).toggleClass(\"bold\", !!(this.df.bold || this.df.reqd));\n\t\t}\n\t}\n});\n","frappe.ui.form.ControlData = frappe.ui.form.ControlInput.extend({\n\thtml_element: \"input\",\n\tinput_type: \"text\",\n\ttrigger_change_on_input_event: true,\n\tmake_input: function() {\n\t\tif(this.$input) return;\n\n\t\tthis.$input = $(\"<\"+ this.html_element +\">\")\n\t\t\t.attr(\"type\", this.input_type)\n\t\t\t.attr(\"autocomplete\", \"off\")\n\t\t\t.addClass(\"input-with-feedback form-control\")\n\t\t\t.prependTo(this.input_area);\n\n\t\tif (in_list(['Data', 'Link', 'Dynamic Link', 'Password', 'Select', 'Read Only', 'Attach', 'Attach Image'],\n\t\t\tthis.df.fieldtype)) {\n\t\t\tthis.$input.attr(\"maxlength\", this.df.length || 140);\n\t\t}\n\n\t\tthis.set_input_attributes();\n\t\tthis.input = this.$input.get(0);\n\t\tthis.has_input = true;\n\t\tthis.bind_change_event();\n\t\tthis.setup_autoname_check();\n\t},\n\tbind_change_event: function() {\n\t\tconst change_handler = e => {\n\t\t\tif (this.change) this.change(e);\n\t\t\telse {\n\t\t\t\tlet value = this.get_input_value();\n\t\t\t\tthis.parse_validate_and_set_in_model(value, e);\n\t\t\t}\n\t\t};\n\t\tthis.$input.on(\"change\", change_handler);\n\t\tif (this.trigger_change_on_input_event) {\n\t\t\t// debounce to avoid repeated validations on value change\n\t\t\tthis.$input.on(\"input\", frappe.utils.debounce(change_handler, 500));\n\t\t}\n\t},\n\tsetup_autoname_check: function() {\n\t\tif (!this.df.parent) return;\n\t\tthis.meta = frappe.get_meta(this.df.parent);\n\t\tif (this.meta && ((this.meta.autoname\n\t\t\t&& this.meta.autoname.substr(0, 6)==='field:'\n\t\t\t&& this.meta.autoname.substr(6) === this.df.fieldname) || this.df.fieldname==='__newname') ) {\n\t\t\tthis.$input.on('keyup', () => {\n\t\t\t\tthis.set_description('');\n\t\t\t\tif (this.doc && this.doc.__islocal) {\n\t\t\t\t\t// check after 1 sec\n\t\t\t\t\tlet timeout = setTimeout(() => {\n\t\t\t\t\t\t// clear any pending calls\n\t\t\t\t\t\tif (this.last_check) clearTimeout(this.last_check);\n\n\t\t\t\t\t\t// check if name exists\n\t\t\t\t\t\tfrappe.db.get_value(this.doctype, this.$input.val(),\n\t\t\t\t\t\t\t'name', (val) => {\n\t\t\t\t\t\t\t\tif (val && val.name) {\n\t\t\t\t\t\t\t\t\tthis.set_description(__('{0} already exists. Select another name', [val.name]));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tthis.doc.parenttype\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.last_check = null;\n\t\t\t\t\t}, 1000);\n\t\t\t\t\tthis.last_check = timeout;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\tset_input_attributes: function() {\n\t\tthis.$input\n\t\t\t.attr(\"data-fieldtype\", this.df.fieldtype)\n\t\t\t.attr(\"data-fieldname\", this.df.fieldname)\n\t\t\t.attr(\"placeholder\", this.df.placeholder || \"\");\n\t\tif(this.doctype) {\n\t\t\tthis.$input.attr(\"data-doctype\", this.doctype);\n\t\t}\n\t\tif(this.df.input_css) {\n\t\t\tthis.$input.css(this.df.input_css);\n\t\t}\n\t\tif(this.df.input_class) {\n\t\t\tthis.$input.addClass(this.df.input_class);\n\t\t}\n\t},\n\tset_input: function(value) {\n\t\tthis.last_value = this.value;\n\t\tthis.value = value;\n\t\tthis.set_formatted_input(value);\n\t\tthis.set_disp_area(value);\n\t\tthis.set_mandatory && this.set_mandatory(value);\n\t},\n\tset_formatted_input: function(value) {\n\t\tthis.$input && this.$input.val(this.format_for_input(value));\n\t},\n\tget_input_value: function() {\n\t\treturn this.$input ? this.$input.val() : undefined;\n\t},\n\tformat_for_input: function(val) {\n\t\treturn val==null ? \"\" : val;\n\t},\n\tvalidate: function(v) {\n\t\tif(this.df.is_filter) {\n\t\t\treturn v;\n\t\t}\n\t\tif(this.df.options == 'Phone') {\n\t\t\tif(v+''=='') {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tvar v1 = '';\n\t\t\t// phone may start with + and must only have numbers later, '-' and ' ' are stripped\n\t\t\tv = v.replace(/ /g, '').replace(/-/g, '').replace(/\\(/g, '').replace(/\\)/g, '');\n\n\t\t\t// allow initial +,0,00\n\t\t\tif(v && v.substr(0,1)=='+') {\n\t\t\t\tv1 = '+'; v = v.substr(1);\n\t\t\t}\n\t\t\tif(v && v.substr(0,2)=='00') {\n\t\t\t\tv1 += '00'; v = v.substr(2);\n\t\t\t}\n\t\t\tif(v && v.substr(0,1)=='0') {\n\t\t\t\tv1 += '0'; v = v.substr(1);\n\t\t\t}\n\t\t\tv1 += cint(v) + '';\n\t\t\treturn v1;\n\t\t} else if(this.df.options == 'Email') {\n\t\t\tif(v+''=='') {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tvar email_list = frappe.utils.split_emails(v);\n\t\t\tif (!email_list) {\n\t\t\t\t// invalid email\n\t\t\t\treturn '';\n\t\t\t} else {\n\t\t\t\tlet email_invalid = false;\n\t\t\t\temail_list.forEach(function(email) {\n\t\t\t\t\tif (!validate_email(email)) {\n\t\t\t\t\t\temail_invalid = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis.df.invalid = email_invalid;\n\t\t\t\treturn v;\n\t\t\t}\n\n\t\t} else {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n","frappe.ui.form.ControlInt = frappe.ui.form.ControlData.extend({\n\ttrigger_change_on_input_event: false,\n\tmake: function () {\n\t\tthis._super();\n\t\t// $(this.label_area).addClass('pull-right');\n\t\t// $(this.disp_area).addClass('text-right');\n\t},\n\tmake_input: function() {\n\t\tvar me = this;\n\t\tthis._super();\n\t\tthis.$input\n\t\t\t// .addClass(\"text-right\")\n\t\t\t.on(\"focus\", function() {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tif(!document.activeElement) return;\n\t\t\t\t\tdocument.activeElement.value\n\t\t\t\t\t\t= me.validate(document.activeElement.value);\n\t\t\t\t\tdocument.activeElement.select();\n\t\t\t\t}, 100);\n\t\t\t\treturn false;\n\t\t\t});\n\t},\n\teval_expression: function(value) {\n\t\tif (typeof value === 'string') {\n\t\t\tif (value.match(/^[0-9+\\-/* ]+$/)) {\n\t\t\t\t// If it is a string containing operators\n\t\t\t\ttry {\n\t\t\t\t\treturn eval(value);\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// bad expression\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn value;\n\t},\n\tparse: function(value) {\n\t\treturn cint(this.eval_expression(value), null);\n\t}\n});\n","frappe.ui.form.ControlFloat = frappe.ui.form.ControlInt.extend({\n\tparse: function(value) {\n\t\tvalue = this.eval_expression(value);\n\t\treturn isNaN(parseFloat(value)) ? null : flt(value, this.get_precision());\n\t},\n\n\tformat_for_input: function(value) {\n\t\tvar number_format;\n\t\tif (this.df.fieldtype===\"Float\" && this.df.options && this.df.options.trim()) {\n\t\t\tnumber_format = this.get_number_format();\n\t\t}\n\t\tvar formatted_value = format_number(value, number_format, this.get_precision());\n\t\treturn isNaN(parseFloat(value)) ? \"\" : formatted_value;\n\t},\n\n\tget_number_format: function() {\n\t\tvar currency = frappe.meta.get_field_currency(this.df, this.get_doc());\n\t\treturn get_number_format(currency);\n\t},\n\n\tget_precision: function() {\n\t\t// round based on field precision or float precision, else don't round\n\t\treturn this.df.precision || cint(frappe.boot.sysdefaults.float_precision, null);\n\t}\n});\n\nfrappe.ui.form.ControlPercent = frappe.ui.form.ControlFloat;\n","frappe.ui.form.ControlCurrency = frappe.ui.form.ControlFloat.extend({\n\tformat_for_input: function(value) {\n\t\tvar formatted_value = format_number(value, this.get_number_format(), this.get_precision());\n\t\treturn isNaN(parseFloat(value)) ? \"\" : formatted_value;\n\t},\n\n\tget_precision: function() {\n\t\t// always round based on field precision or currency's precision\n\t\t// this method is also called in this.parse()\n\t\tif (!this.df.precision) {\n\t\t\tif(frappe.boot.sysdefaults.currency_precision) {\n\t\t\t\tthis.df.precision = frappe.boot.sysdefaults.currency_precision;\n\t\t\t} else {\n\t\t\t\tthis.df.precision = get_number_format_info(this.get_number_format()).precision;\n\t\t\t}\n\t\t}\n\n\t\treturn this.df.precision;\n\t}\n});\n","frappe.ui.form.ControlDate = frappe.ui.form.ControlData.extend({\n\ttrigger_change_on_input_event: false,\n\tmake_input: function() {\n\t\tthis._super();\n\t\tthis.set_date_options();\n\t\tthis.set_datepicker();\n\t\tthis.set_t_for_today();\n\t},\n\tset_formatted_input: function(value) {\n\t\tthis._super(value);\n\t\tif (!this.datepicker) return;\n\t\tif(!value) {\n\t\t\tthis.datepicker.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tlet should_refresh = this.last_value && this.last_value !== value;\n\n\t\tif (!should_refresh) {\n\t\t\tif(this.datepicker.selectedDates.length > 0) {\n\t\t\t\t// if date is selected but different from value, refresh\n\t\t\t\tconst selected_date =\n\t\t\t\t\tmoment(this.datepicker.selectedDates[0])\n\t\t\t\t\t\t.format(this.date_format);\n\n\t\t\t\tshould_refresh = selected_date !== value;\n\t\t\t} else {\n\t\t\t\t// if datepicker has no selected date, refresh\n\t\t\t\tshould_refresh = true;\n\t\t\t}\n\t\t}\n\n\t\tif(should_refresh) {\n\t\t\tthis.datepicker.selectDate(frappe.datetime.str_to_obj(value));\n\t\t}\n\t},\n\tset_date_options: function() {\n\t\t// webformTODO:\n\t\tlet sysdefaults = frappe.boot.sysdefaults;\n\n\t\tlet lang = 'en';\n\t\tfrappe.boot.user && (lang = frappe.boot.user.language);\n\t\tif(!$.fn.datepicker.language[lang]) {\n\t\t\tlang = 'en';\n\t\t}\n\n\t\tlet date_format = sysdefaults && sysdefaults.date_format\n\t\t\t? sysdefaults.date_format : 'yyyy-mm-dd';\n\n\t\tlet now_date = new Date();\n\n\t\tthis.today_text = __(\"Today\");\n\t\tthis.date_format = frappe.defaultDateFormat;\n\t\tthis.datepicker_options = {\n\t\t\tlanguage: lang,\n\t\t\tautoClose: true,\n\t\t\ttodayButton: true,\n\t\t\tdateFormat: date_format,\n\t\t\tstartDate: now_date,\n\t\t\tkeyboardNav: false,\n\t\t\tonSelect: () => {\n\t\t\t\tthis.$input.trigger('change');\n\t\t\t},\n\t\t\tonShow: () => {\n\t\t\t\tthis.datepicker.$datepicker\n\t\t\t\t\t.find('.datepicker--button:visible')\n\t\t\t\t\t.text(this.today_text);\n\n\t\t\t\tthis.update_datepicker_position();\n\t\t\t}\n\t\t};\n\t},\n\tupdate_datepicker_position: function() {\n\t\tif(!this.frm) return;\n\t\t// show datepicker above or below the input\n\t\t// based on scroll position\n\t\tvar window_height = $(window).height();\n\t\tvar window_scroll_top = $(window).scrollTop();\n\t\tvar el_offset_top = this.$input.offset().top + 280;\n\t\tvar position = 'top left';\n\t\tif(window_height + window_scroll_top >= el_offset_top) {\n\t\t\tposition = 'bottom left';\n\t\t}\n\t\tthis.datepicker.update('position', position);\n\t},\n\tset_datepicker: function() {\n\t\tthis.$input.datepicker(this.datepicker_options);\n\t\tthis.datepicker = this.$input.data('datepicker');\n\n\t\t// today button didn't work as expected,\n\t\t// so explicitly bind the event\n\t\tthis.datepicker.$datepicker\n\t\t\t.find('[data-action=\"today\"]')\n\t\t\t.click(() => {\n\t\t\t\tthis.datepicker.selectDate(this.get_now_date());\n\t\t\t});\n\t},\n\tget_now_date: function() {\n\t\treturn frappe.datetime.now_date(true);\n\t},\n\tset_t_for_today: function() {\n\t\tvar me = this;\n\t\tthis.$input.on(\"keydown\", function(e) {\n\t\t\tif(e.which===84) { // 84 === t\n\t\t\t\tif(me.df.fieldtype=='Date') {\n\t\t\t\t\tme.set_value(frappe.datetime.nowdate());\n\t\t\t\t} if(me.df.fieldtype=='Datetime') {\n\t\t\t\t\tme.set_value(frappe.datetime.now_datetime());\n\t\t\t\t} if(me.df.fieldtype=='Time') {\n\t\t\t\t\tme.set_value(frappe.datetime.now_time());\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t},\n\tparse: function(value) {\n\t\tif(value) {\n\t\t\treturn frappe.datetime.user_to_str(value);\n\t\t}\n\t},\n\tformat_for_input: function(value) {\n\t\tif(value) {\n\t\t\treturn frappe.datetime.str_to_user(value);\n\t\t}\n\t\treturn \"\";\n\t},\n\tvalidate: function(value) {\n\t\tif(value && !frappe.datetime.validate(value)) {\n\t\t\tlet sysdefaults = frappe.sys_defaults;\n\t\t\tlet date_format = sysdefaults && sysdefaults.date_format\n\t\t\t\t? sysdefaults.date_format : 'yyyy-mm-dd';\n\t\t\tfrappe.msgprint(__(\"Date {0} must be in format: {1}\", [value, date_format]));\n\t\t\treturn '';\n\t\t}\n\t\treturn value;\n\t}\n});\n","frappe.ui.form.ControlTime = frappe.ui.form.ControlData.extend({\n\tmake_input: function() {\n\t\tvar me = this;\n\t\tthis._super();\n\t\tthis.$input.datepicker({\n\t\t\tlanguage: \"en\",\n\t\t\ttimepicker: true,\n\t\t\tonlyTimepicker: true,\n\t\t\ttimeFormat: \"hh:ii:ss\",\n\t\t\tstartDate: frappe.datetime.now_time(true),\n\t\t\tonSelect: function() {\n\t\t\t\t// ignore micro seconds\n\t\t\t\tif (moment(me.get_value(), 'hh:mm:ss').format('HH:mm:ss') != moment(me.value, 'hh:mm:ss').format('HH:mm:ss')) {\n\t\t\t\t\tme.$input.trigger('change');\n\t\t\t\t}\t\t\t\t\n\t\t\t},\n\t\t\tonShow: function() {\n\t\t\t\t$('.datepicker--button:visible').text(__('Now'));\n\t\t\t},\n\t\t\tkeyboardNav: false,\n\t\t\ttodayButton: true\n\t\t});\n\t\tthis.datepicker = this.$input.data('datepicker');\n\t\tthis.datepicker.$datepicker\n\t\t\t.find('[data-action=\"today\"]')\n\t\t\t.click(() => {\n\t\t\t\tthis.datepicker.selectDate(frappe.datetime.now_time(true));\n\t\t\t});\n\t\tthis.refresh();\n\t},\n\tset_input: function(value) {\n\t\tthis._super(value);\n\t\tif(value\n\t\t\t&& ((this.last_value && this.last_value !== this.value)\n\t\t\t\t|| (!this.datepicker.selectedDates.length))) {\n\n\t\t\tvar date_obj = frappe.datetime.moment_to_date_obj(moment(value, 'HH:mm:ss'));\n\t\t\tthis.datepicker.selectDate(date_obj);\n\t\t}\n\t},\n\tset_description: function() {\n\t\tconst { description } = this.df;\n\t\tconst { time_zone } = frappe.sys_defaults;\n\t\tif (!frappe.datetime.is_timezone_same()) {\n\t\t\tif (!description) {\n\t\t\t\tthis.df.description = time_zone;\n\t\t\t} else if (!description.includes(time_zone)) {\n\t\t\t\tthis.df.description += '
' + time_zone;\n\t\t\t}\n\t\t}\n\t\tthis._super();\n\t}\n});\n","frappe.ui.form.ControlDatetime = frappe.ui.form.ControlDate.extend({\n\tset_date_options: function() {\n\t\tthis._super();\n\t\tthis.today_text = __(\"Now\");\n\t\tthis.date_format = frappe.defaultDatetimeFormat;\n\t\t$.extend(this.datepicker_options, {\n\t\t\ttimepicker: true,\n\t\t\ttimeFormat: \"hh:ii:ss\"\n\t\t});\n\t},\n\tget_now_date: function() {\n\t\treturn frappe.datetime.now_datetime(true);\n\t},\n\tset_description: function() {\n\t\tconst { description } = this.df;\n\t\tconst { time_zone } = frappe.sys_defaults;\n\t\tif (!frappe.datetime.is_timezone_same()) {\n\t\t\tif (!description) {\n\t\t\t\tthis.df.description = time_zone;\n\t\t\t} else if (!description.includes(time_zone)) {\n\t\t\t\tthis.df.description += '
' + time_zone;\n\t\t\t}\n\t\t}\n\t\tthis._super();\n\t}\n});\n","frappe.ui.form.ControlDateRange = frappe.ui.form.ControlData.extend({\n\tmake_input: function() {\n\t\tthis._super();\n\t\tthis.set_date_options();\n\t\tthis.set_datepicker();\n\t\tthis.refresh();\n\t},\n\tset_date_options: function() {\n\t\tvar me = this;\n\t\tthis.datepicker_options = {\n\t\t\tlanguage: \"en\",\n\t\t\trange: true,\n\t\t\tautoClose: true,\n\t\t\ttoggleSelected: false\n\t\t};\n\t\tthis.datepicker_options.dateFormat =\n\t\t\t(frappe.boot.sysdefaults.date_format || 'yyyy-mm-dd');\n\t\tthis.datepicker_options.onSelect = function() {\n\t\t\tme.$input.trigger('change');\n\t\t};\n\t},\n\tset_datepicker: function() {\n\t\tthis.$input.datepicker(this.datepicker_options);\n\t\tthis.datepicker = this.$input.data('datepicker');\n\t},\n\tset_input: function(value, value2) {\n\t\tthis.last_value = this.value;\n\t\tif (value && value2) {\n\t\t\tthis.value = [value, value2];\n\t\t} else {\n\t\t\tthis.value = value;\n\t\t}\n\t\tif (this.value) {\n\t\t\tlet formatted = this.format_for_input(this.value[0], this.value[1]);\n\t\t\tthis.$input && this.$input.val(formatted);\n\t\t} else {\n\t\t\tthis.$input && this.$input.val(\"\");\n\t\t}\n\t\tthis.set_disp_area(value || '');\n\t\tthis.set_mandatory && this.set_mandatory(value);\n\t},\n\tparse: function(value) {\n\t\t// replace the separator (which can be in user language) with comma\n\t\tconst to = __('{0} to {1}').replace('{0}', '').replace('{1}', '');\n\t\tvalue = value.replace(to, ',');\n\n\t\tif(value && value.includes(',')) {\n\t\t\tvar vals = value.split(',');\n\t\t\tvar from_date = moment(frappe.datetime.user_to_obj(vals[0])).format('YYYY-MM-DD');\n\t\t\tvar to_date = moment(frappe.datetime.user_to_obj(vals[vals.length-1])).format('YYYY-MM-DD');\n\t\t\treturn [from_date, to_date];\n\t\t}\n\t},\n\tformat_for_input: function(value1, value2) {\n\t\tif(value1 && value2) {\n\t\t\tvalue1 = frappe.datetime.str_to_user(value1);\n\t\t\tvalue2 = frappe.datetime.str_to_user(value2);\n\t\t\treturn __(\"{0} to {1}\", [value1, value2]);\n\t\t}\n\t\treturn \"\";\n\t}\n});\n","frappe.ui.form.ControlSelect = frappe.ui.form.ControlData.extend({\n\thtml_element: 'select',\n\tmake_input: function() {\n\t\tthis._super();\n\t\tthis.$wrapper.find('.control-input')\n\t\t\t.addClass('flex align-center')\n\t\t\t.append('');\n\t\tthis.set_options();\n\t},\n\tset_formatted_input: function(value) {\n\t\t// refresh options first - (new ones??)\n\t\tif(value==null) value = '';\n\t\tthis.set_options(value);\n\n\t\t// set in the input element\n\t\tthis._super(value);\n\n\t\t// check if the value to be set is selected\n\t\tvar input_value = '';\n\t\tif(this.$input) {\n\t\t\tinput_value = this.$input.val();\n\t\t}\n\n\t\tif(value && input_value && value !== input_value) {\n\t\t\t// trying to set a non-existant value\n\t\t\t// model value must be same as whatever the input is\n\t\t\tthis.set_model_value(input_value);\n\t\t}\n\t},\n\tset_options: function(value) {\n\t\t// reset options, if something new is set\n\t\tvar options = this.df.options || [];\n\n\t\tif(typeof this.df.options===\"string\") {\n\t\t\toptions = this.df.options.split(\"\\n\");\n\t\t}\n\n\t\t// nothing changed\n\t\tif (JSON.stringify(options) === this.last_options) {\n\t\t\treturn;\n\t\t}\n\t\tthis.last_options = JSON.stringify(options);\n\n\t\tif(this.$input) {\n\t\t\tvar selected = this.$input.find(\":selected\").val();\n\t\t\tthis.$input.empty().add_options(options || []);\n\n\t\t\tif(value===undefined && selected) {\n\t\t\t\tthis.$input.val(selected);\n\t\t\t}\n\t\t}\n\t},\n\tget_file_attachment_list: function() {\n\t\tif(!this.frm) return;\n\t\tvar fl = frappe.model.docinfo[this.frm.doctype][this.frm.docname];\n\t\tif(fl && fl.attachments) {\n\t\t\tthis.set_description(\"\");\n\t\t\tvar options = [\"\"];\n\t\t\t$.each(fl.attachments, function(i, f) {\n\t\t\t\toptions.push(f.file_url);\n\t\t\t});\n\t\t\treturn options;\n\t\t} else {\n\t\t\tthis.set_description(__(\"Please attach a file first.\"));\n\t\t\treturn [\"\"];\n\t\t}\n\t}\n});\n\n// add
').prependTo(this.input_area);\n\t\tthis.$input_area = $(this.input_area);\n\t\tthis.$input = this.$input_area.find('input');\n\t\tthis.$link = this.$input_area.find('.link-btn');\n\t\tthis.$link_open = this.$link.find('.btn-open');\n\t\tthis.set_input_attributes();\n\t\tthis.$input.on(\"focus\", function() {\n\t\t\tsetTimeout(function() {\n\t\t\t\tif(me.$input.val() && me.get_options()) {\n\t\t\t\t\tlet doctype = me.get_options();\n\t\t\t\t\tlet name = me.$input.val();\n\t\t\t\t\tme.$link.toggle(true);\n\t\t\t\t\tme.$link_open.attr('href', frappe.utils.get_form_link(doctype, name));\n\t\t\t\t}\n\n\t\t\t\tif(!me.$input.val()) {\n\t\t\t\t\tme.$input.val(\"\").trigger(\"input\");\n\t\t\t\t}\n\t\t\t}, 500);\n\t\t});\n\t\tthis.$input.on(\"blur\", function() {\n\t\t\t// if this disappears immediately, the user's click\n\t\t\t// does not register, hence timeout\n\t\t\tsetTimeout(function() {\n\t\t\t\tme.$link.toggle(false);\n\t\t\t}, 500);\n\t\t});\n\t\tthis.$input.attr('data-target', this.df.options);\n\t\tthis.input = this.$input.get(0);\n\t\tthis.has_input = true;\n\t\tthis.translate_values = true;\n\t\tthis.setup_buttons();\n\t\tthis.setup_awesomeplete();\n\t\tthis.bind_change_event();\n\t},\n\tget_options: function() {\n\t\treturn this.df.options;\n\t},\n\tget_reference_doctype() {\n\t\t// this is used to get the context in which link field is loaded\n\t\tif (this.doctype) return this.doctype;\n\t\telse {\n\t\t\treturn frappe.get_route && frappe.get_route()[0] === 'List' ? frappe.get_route()[1] : null;\n\t\t}\n\t},\n\tsetup_buttons: function() {\n\t\tif(this.only_input && !this.with_link_btn) {\n\t\t\tthis.$input_area.find(\".link-btn\").remove();\n\t\t}\n\t},\n\topen_advanced_search: function() {\n\t\tvar doctype = this.get_options();\n\t\tif(!doctype) return;\n\t\tnew frappe.ui.form.LinkSelector({\n\t\t\tdoctype: doctype,\n\t\t\ttarget: this,\n\t\t\ttxt: this.get_input_value()\n\t\t});\n\t\treturn false;\n\t},\n\tnew_doc: function() {\n\t\tvar doctype = this.get_options();\n\t\tvar me = this;\n\n\t\tif(!doctype) return;\n\n\t\t// set values to fill in the new document\n\t\tif(this.df.get_route_options_for_new_doc) {\n\t\t\tfrappe.route_options = this.df.get_route_options_for_new_doc(this);\n\t\t} else {\n\t\t\tfrappe.route_options = {};\n\t\t}\n\n\t\t// partially entered name field\n\t\tfrappe.route_options.name_field = this.get_value();\n\n\t\t// reference to calling link\n\t\tfrappe._from_link = this;\n\t\tfrappe._from_link_scrollY = $(document).scrollTop();\n\n\t\tfrappe.ui.form.make_quick_entry(doctype, (doc) => {\n\t\t\treturn me.set_value(doc.name);\n\t\t});\n\n\t\treturn false;\n\t},\n\tsetup_awesomeplete: function() {\n\t\tvar me = this;\n\n\t\tthis.$input.cache = {};\n\n\t\tthis.awesomplete = new Awesomplete(me.input, {\n\t\t\tminChars: 0,\n\t\t\tmaxItems: 99,\n\t\t\tautoFirst: true,\n\t\t\tlist: [],\n\t\t\tdata: function (item) {\n\t\t\t\treturn {\n\t\t\t\t\tlabel: item.label || item.value,\n\t\t\t\t\tvalue: item.value\n\t\t\t\t};\n\t\t\t},\n\t\t\tfilter: function() {\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\titem: function (item) {\n\t\t\t\tvar d = this.get_item(item.value);\n\t\t\t\tif(!d.label) {\td.label = d.value; }\n\n\t\t\t\tvar _label = (me.translate_values) ? __(d.label) : d.label;\n\t\t\t\tvar html = d.html || \"\" + _label + \"\";\n\t\t\t\tif(d.description && d.value!==d.description) {\n\t\t\t\t\thtml += '
' + __(d.description) + '';\n\t\t\t\t}\n\t\t\t\treturn $('
  • ')\n\t\t\t\t\t.data('item.autocomplete', d)\n\t\t\t\t\t.prop('aria-selected', 'false')\n\t\t\t\t\t.html('

    ' + html + '

    ')\n\t\t\t\t\t.get(0);\n\t\t\t},\n\t\t\tsort: function() {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\n\t\tthis.$input.on(\"input\", frappe.utils.debounce(function(e) {\n\t\t\tvar doctype = me.get_options();\n\t\t\tif(!doctype) return;\n\t\t\tif (!me.$input.cache[doctype]) {\n\t\t\t\tme.$input.cache[doctype] = {};\n\t\t\t}\n\n\t\t\tvar term = e.target.value;\n\n\t\t\tif (me.$input.cache[doctype][term]!=null) {\n\t\t\t\t// immediately show from cache\n\t\t\t\tme.awesomplete.list = me.$input.cache[doctype][term];\n\t\t\t}\n\t\t\tvar args = {\n\t\t\t\t'txt': term,\n\t\t\t\t'doctype': doctype,\n\t\t\t\t'ignore_user_permissions': me.df.ignore_user_permissions,\n\t\t\t\t'reference_doctype': me.get_reference_doctype() || \"\"\n\t\t\t};\n\n\t\t\tme.set_custom_query(args);\n\n\t\t\tfrappe.call({\n\t\t\t\ttype: \"POST\",\n\t\t\t\tmethod:'frappe.desk.search.search_link',\n\t\t\t\tno_spinner: true,\n\t\t\t\targs: args,\n\t\t\t\tcallback: function(r) {\n\t\t\t\t\tif(!me.$input.is(\":focus\")) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tr.results = me.merge_duplicates(r.results);\n\n\t\t\t\t\t// show filter description in awesomplete\n\t\t\t\t\tif (args.filters) {\n\t\t\t\t\t\tlet filter_string = me.get_filter_description(args.filters);\n\t\t\t\t\t\tif (filter_string) {\n\t\t\t\t\t\t\tr.results.push({\n\t\t\t\t\t\t\t\thtml: `${filter_string}`,\n\t\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\t\taction: () => {}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(!me.df.only_select) {\n\t\t\t\t\t\tif(frappe.model.can_create(doctype)) {\n\t\t\t\t\t\t\t// new item\n\t\t\t\t\t\t\tr.results.push({\n\t\t\t\t\t\t\t\tlabel: \"\"\n\t\t\t\t\t\t\t\t\t+ \" \"\n\t\t\t\t\t\t\t\t\t+ __(\"Create a new {0}\", [__(me.get_options())])\n\t\t\t\t\t\t\t\t\t+ \"\",\n\t\t\t\t\t\t\t\tvalue: \"create_new__link_option\",\n\t\t\t\t\t\t\t\taction: me.new_doc\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// advanced search\n\n\t\t\t\t\t\tif (locals && locals['DocType']) {\n\t\t\t\t\t\t\t// not applicable in web forms\n\t\t\t\t\t\t\tr.results.push({\n\t\t\t\t\t\t\t\tlabel: \"\"\n\t\t\t\t\t\t\t\t\t+ \" \"\n\t\t\t\t\t\t\t\t\t+ __(\"Advanced Search\")\n\t\t\t\t\t\t\t\t\t+ \"\",\n\t\t\t\t\t\t\t\tvalue: \"advanced_search__link_option\",\n\t\t\t\t\t\t\t\taction: me.open_advanced_search\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tme.$input.cache[doctype][term] = r.results;\n\t\t\t\t\tme.awesomplete.list = me.$input.cache[doctype][term];\n\t\t\t\t}\n\t\t\t});\n\t\t}, 500));\n\n\t\tthis.$input.on(\"blur\", function() {\n\t\t\tif(me.selected) {\n\t\t\t\tme.selected = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar value = me.get_input_value();\n\t\t\tif(value!==me.last_value) {\n\t\t\t\tme.parse_validate_and_set_in_model(value);\n\t\t\t}\n\t\t});\n\n\t\tthis.$input.on(\"awesomplete-open\", function() {\n\t\t\tme.$wrapper.css({\"z-index\": 100});\n\t\t\tme.$wrapper.find('ul').css({\"z-index\": 100});\n\t\t\tme.autocomplete_open = true;\n\t\t});\n\n\t\tthis.$input.on(\"awesomplete-close\", function() {\n\t\t\tme.$wrapper.css({\"z-index\": 1});\n\t\t\tme.autocomplete_open = false;\n\t\t});\n\n\t\tthis.$input.on(\"awesomplete-select\", function(e) {\n\t\t\tvar o = e.originalEvent;\n\t\t\tvar item = me.awesomplete.get_item(o.text.value);\n\n\t\t\tme.autocomplete_open = false;\n\n\t\t\t// prevent selection on tab\n\t\t\tvar TABKEY = 9;\n\t\t\tif(e.keyCode === TABKEY) {\n\t\t\t\te.preventDefault();\n\t\t\t\tme.awesomplete.close();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif(item.action) {\n\t\t\t\titem.value = \"\";\n\t\t\t\titem.action.apply(me);\n\t\t\t}\n\n\t\t\t// if remember_last_selected is checked in the doctype against the field,\n\t\t\t// then add this value\n\t\t\t// to defaults so you do not need to set it again\n\t\t\t// unless it is changed.\n\t\t\tif(me.df.remember_last_selected_value) {\n\t\t\t\tfrappe.boot.user.last_selected_values[me.df.options] = item.value;\n\t\t\t}\n\n\t\t\tme.parse_validate_and_set_in_model(item.value);\n\t\t});\n\n\t\tthis.$input.on(\"awesomplete-selectcomplete\", function(e) {\n\t\t\tvar o = e.originalEvent;\n\t\t\tif(o.text.value.indexOf(\"__link_option\") !== -1) {\n\t\t\t\tme.$input.val(\"\");\n\t\t\t}\n\t\t});\n\t},\n\n\tmerge_duplicates(results) {\n\t\t// in case of result like this\n\t\t// [{value: 'Manufacturer 1', 'description': 'mobile part 1'},\n\t\t// \t{value: 'Manufacturer 1', 'description': 'mobile part 2'}]\n\t\t// suggestion list has two items with same value (docname) & description\n\t\treturn results.reduce((newArr, currElem) => {\n\t\t\tif (newArr.length === 0) return [currElem];\n\t\t\tlet element_with_same_value = newArr.find(e => e.value === currElem.value);\n\t\t\tif (element_with_same_value) {\n\t\t\t\telement_with_same_value.description += `, ${currElem.description}`;\n\t\t\t\treturn [...newArr];\n\t\t\t}\n\t\t\treturn [...newArr, currElem];\n\t\t}, []);\n\t\t// returns [{value: 'Manufacturer 1', 'description': 'mobile part 1, mobile part 2'}]\n\t},\n\n\tget_filter_description(filters) {\n\t\tlet doctype = this.get_options();\n\t\tlet filter_array = [];\n\t\tlet meta = null;\n\n\t\tfrappe.model.with_doctype(doctype, () => {\n\t\t\tmeta = frappe.get_meta(doctype);\n\t\t});\n\n\t\t// convert object style to array\n\t\tif (!Array.isArray(filters)) {\n\t\t\tfor (let fieldname in filters) {\n\t\t\t\tlet value = filters[fieldname];\n\t\t\t\tif (!Array.isArray(value)) {\n\t\t\t\t\tvalue = ['=', value];\n\t\t\t\t}\n\t\t\t\tfilter_array.push([fieldname, ...value]); // fieldname, operator, value\n\t\t\t}\n\t\t} else {\n\t\t\tfilter_array = filters;\n\t\t}\n\n\t\t// add doctype if missing\n\t\tfilter_array = filter_array.map(filter => {\n\t\t\tif (filter.length === 3) {\n\t\t\t\treturn [doctype, ...filter]; // doctype, fieldname, operator, value\n\t\t\t}\n\t\t\treturn filter;\n\t\t});\n\n\t\tfunction get_filter_description(filter) {\n\t\t\tlet doctype = filter[0];\n\t\t\tlet fieldname = filter[1];\n\t\t\tlet docfield = frappe.meta.get_docfield(doctype, fieldname);\n\t\t\tlet label = docfield ? docfield.label : frappe.model.unscrub(fieldname);\n\n\t\t\tif (filter[3] && Array.isArray(filter[3]) && filter[3].length > 5) {\n\t\t\t\tfilter[3] = filter[3].slice(0, 5);\n\t\t\t\tfilter[3].push('...');\n\t\t\t}\n\n\t\t\tlet value = filter[3] == null || filter[3] === ''\n\t\t\t\t? __('empty')\n\t\t\t\t: String(filter[3]);\n\n\t\t\treturn [__(label).bold(), filter[2], value.bold()].join(' ');\n\t\t}\n\n\t\tlet filter_string = filter_array\n\t\t\t.map(get_filter_description)\n\t\t\t.join(', ');\n\n\t\treturn __('Filters applied for {0}', [filter_string]);\n\t},\n\n\tset_custom_query: function(args) {\n\t\tvar set_nulls = function(obj) {\n\t\t\t$.each(obj, function(key, value) {\n\t\t\t\tif(value!==undefined) {\n\t\t\t\t\tobj[key] = value;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn obj;\n\t\t};\n\t\tif(this.get_query || this.df.get_query) {\n\t\t\tvar get_query = this.get_query || this.df.get_query;\n\t\t\tif($.isPlainObject(get_query)) {\n\t\t\t\tvar filters = null;\n\t\t\t\tif(get_query.filters) {\n\t\t\t\t\t// passed as {'filters': {'key':'value'}}\n\t\t\t\t\tfilters = get_query.filters;\n\t\t\t\t} else if(get_query.query) {\n\n\t\t\t\t\t// passed as {'query': 'path.to.method'}\n\t\t\t\t\targs.query = get_query;\n\t\t\t\t} else {\n\n\t\t\t\t\t// dict is filters\n\t\t\t\t\tfilters = get_query;\n\t\t\t\t}\n\n\t\t\t\tif (filters) {\n\t\t\t\t\tfilters = set_nulls(filters);\n\n\t\t\t\t\t// extend args for custom functions\n\t\t\t\t\t$.extend(args, filters);\n\n\t\t\t\t\t// add \"filters\" for standard query (search.py)\n\t\t\t\t\targs.filters = filters;\n\t\t\t\t}\n\t\t\t} else if(typeof(get_query)===\"string\") {\n\t\t\t\targs.query = get_query;\n\t\t\t} else {\n\t\t\t\t// get_query by function\n\t\t\t\tvar q = (get_query)(this.frm && this.frm.doc || this.doc, this.doctype, this.docname);\n\n\t\t\t\tif (typeof(q)===\"string\") {\n\t\t\t\t\t// returns a string\n\t\t\t\t\targs.query = q;\n\t\t\t\t} else if($.isPlainObject(q)) {\n\t\t\t\t\t// returns a plain object with filters\n\t\t\t\t\tif(q.filters) {\n\t\t\t\t\t\tset_nulls(q.filters);\n\t\t\t\t\t}\n\n\t\t\t\t\t// turn off value translation\n\t\t\t\t\tif(q.translate_values !== undefined) {\n\t\t\t\t\t\tthis.translate_values = q.translate_values;\n\t\t\t\t\t}\n\n\t\t\t\t\t// extend args for custom functions\n\t\t\t\t\t$.extend(args, q);\n\n\t\t\t\t\t// add \"filters\" for standard query (search.py)\n\t\t\t\t\targs.filters = q.filters;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this.df.filters) {\n\t\t\tset_nulls(this.df.filters);\n\t\t\tif(!args.filters) args.filters = {};\n\t\t\t$.extend(args.filters, this.df.filters);\n\t\t}\n\t},\n\tvalidate: function(value) {\n\t\t// validate the value just entered\n\t\tif(this.df.options==\"[Select]\" || this.df.ignore_link_validation) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn this.validate_link_and_fetch(this.df, this.get_options(),\n\t\t\tthis.docname, value);\n\t},\n\tvalidate_link_and_fetch: function(df, doctype, docname, value) {\n\t\tvar me = this;\n\n\t\tif(value) {\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tvar fetch = '';\n\n\t\t\t\tif(this.frm && this.frm.fetch_dict[df.fieldname]) {\n\t\t\t\t\tfetch = this.frm.fetch_dict[df.fieldname].columns.join(', ');\n\t\t\t\t}\n\n\t\t\t\treturn frappe.call({\n\t\t\t\t\tmethod:'frappe.desk.form.utils.validate_link',\n\t\t\t\t\ttype: \"GET\",\n\t\t\t\t\targs: {\n\t\t\t\t\t\t'value': value,\n\t\t\t\t\t\t'options': doctype,\n\t\t\t\t\t\t'fetch': fetch\n\t\t\t\t\t},\n\t\t\t\t\tno_spinner: true,\n\t\t\t\t\tcallback: function(r) {\n\t\t\t\t\t\tif(r.message=='Ok') {\n\t\t\t\t\t\t\tif(r.fetch_values && docname) {\n\t\t\t\t\t\t\t\tme.set_fetch_values(df, docname, r.fetch_values);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tresolve(r.valid_value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve(\"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t},\n\tset_fetch_values: function(df, docname, fetch_values) {\n\t\tvar fl = this.frm.fetch_dict[df.fieldname].fields;\n\t\tfor(var i=0; i < fl.length; i++) {\n\t\t\tfrappe.model.set_value(df.parent, docname, fl[i], fetch_values[i], df.fieldtype);\n\t\t}\n\t}\n});\n\nif(Awesomplete) {\n\tAwesomplete.prototype.get_item = function(value) {\n\t\treturn this._list.find(function(item) {\n\t\t\treturn item.value === value;\n\t\t});\n\t};\n}\n\n","frappe.ui.form.ControlDynamicLink = frappe.ui.form.ControlLink.extend({\n\tget_options: function() {\n\t\tlet options = '';\n\t\tif(this.df.get_options) {\n\t\t\toptions = this.df.get_options();\n\t\t}\n\t\telse if (this.docname==null && cur_dialog) {\n\t\t\t//for dialog box\n\t\t\toptions = cur_dialog.get_value(this.df.options);\n\t\t}\n\t\telse if (!cur_frm) {\n\t\t\tconst selector = `input[data-fieldname=\"${this.df.options}\"]`;\n\t\t\tlet input = null;\n\t\t\tif (cur_list) {\n\t\t\t\t// for list page\n\t\t\t\tinput = cur_list.filter_area.standard_filters_wrapper.find(selector);\n\t\t\t}\n\t\t\tif (cur_page) {\n\t\t\t\tinput = $(cur_page.page).find(selector);\n\t\t\t}\n\t\t\tif (input) {\n\t\t\t\toptions = input.val();\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\toptions = frappe.model.get_value(this.df.parent, this.docname, this.df.options);\n\t\t}\n\n\t\tif (frappe.model.is_single(options)) {\n\t\t\tfrappe.throw(__(`${options.bold()} is not a valid DocType for Dynamic Link`));\n\t\t}\n\n\t\treturn options;\n\t},\n});\n","frappe.ui.form.ControlText = frappe.ui.form.ControlData.extend({\n\thtml_element: \"textarea\",\n\thorizontal: false,\n\tmake_wrapper: function() {\n\t\tthis._super();\n\t\tthis.$wrapper.find(\".like-disabled-input\").addClass(\"for-description\");\n\t},\n\tmake_input: function() {\n\t\tthis._super();\n\t\tthis.$input.css({'height': '300px'});\n\t}\n});\n\nfrappe.ui.form.ControlLongText = frappe.ui.form.ControlText;\nfrappe.ui.form.ControlSmallText = frappe.ui.form.ControlText.extend({\n\tmake_input: function() {\n\t\tthis._super();\n\t\tthis.$input.css({'height': '150px'});\n\t}\n});\n","frappe.ui.form.ControlCode = frappe.ui.form.ControlText.extend({\n\tmake_input() {\n\t\tif (this.editor) return;\n\t\tthis.load_lib().then(() => this.make_ace_editor());\n\t},\n\n\tmake_ace_editor() {\n\t\tif (this.editor) return;\n\t\tthis.ace_editor_target = $('
    ')\n\t\t\t.appendTo(this.input_area);\n\n\t\t// styling\n\t\tthis.ace_editor_target.addClass('border rounded');\n\t\tthis.ace_editor_target.css('height', 300);\n\n\t\t// initialize\n\t\tconst ace = window.ace;\n\t\tthis.editor = ace.edit(this.ace_editor_target.get(0));\n\t\tthis.editor.setTheme('ace/theme/tomorrow');\n\t\tthis.set_language();\n\n\t\t// events\n\t\tthis.editor.session.on('change', frappe.utils.debounce(() => {\n\t\t\tconst input_value = this.get_input_value();\n\t\t\tthis.parse_validate_and_set_in_model(input_value);\n\t\t}, 300));\n\t},\n\n\tset_language() {\n\t\tconst language_map = {\n\t\t\t'Javascript': 'ace/mode/javascript',\n\t\t\t'JS': 'ace/mode/javascript',\n\t\t\t'HTML': 'ace/mode/html',\n\t\t\t'CSS': 'ace/mode/css',\n\t\t\t'Markdown': 'ace/mode/markdown',\n\t\t\t'SCSS': 'ace/mode/scss',\n\t\t\t'JSON': 'ace/mode/json'\n\t\t};\n\t\tconst language = this.df.options;\n\n\t\tconst valid_languages = Object.keys(language_map);\n\t\tif (!valid_languages.includes(language)) {\n\t\t\t// eslint-disable-next-line\n\t\t\tconsole.warn(`Invalid language option provided for field \"${this.df.label}\". Valid options are ${valid_languages.join(', ')}.`);\n\t\t}\n\n\t\tconst ace_language_mode = language_map[language] || '';\n\t\tthis.editor.session.setMode(ace_language_mode);\n\t},\n\n\tparse(value) {\n\t\tif (value == null) {\n\t\t\tvalue = \"\";\n\t\t}\n\t\treturn value;\n\t},\n\n\tset_formatted_input(value) {\n\t\treturn this.load_lib().then(() => {\n\t\t\tif (!this.editor) return;\n\t\t\tif (!value) value = '';\n\t\t\tif (value === this.get_input_value()) return;\n\t\t\tthis.editor.session.setValue(value);\n\t\t});\n\t},\n\n\tget_input_value() {\n\t\treturn this.editor ? this.editor.session.getValue() : '';\n\t},\n\n\tload_lib() {\n\t\tif (this.library_loaded) return this.library_loaded;\n\n\t\tif (frappe.boot.developer_mode) {\n\t\t\tthis.root_lib_path = '/assets/frappe/node_modules/ace-builds/src-noconflict/';\n\t\t} else {\n\t\t\tthis.root_lib_path = '/assets/frappe/node_modules/ace-builds/src-min-noconflict/';\n\t\t}\n\n\t\tthis.library_loaded = new Promise(resolve => {\n\t\t\tfrappe.require(this.root_lib_path + 'ace.js', () => {\n\t\t\t\twindow.ace.config.set('basePath', this.root_lib_path);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t});\n\n\t\treturn this.library_loaded;\n\t}\n});\n","/*!\n * Quill Editor v2.0.0-dev.2\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./assets/icons/align-center.svg\":\n/*!***************************************!*\\\n !*** ./assets/icons/align-center.svg ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/align-center.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/align-justify.svg\":\n/*!****************************************!*\\\n !*** ./assets/icons/align-justify.svg ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/align-justify.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/align-left.svg\":\n/*!*************************************!*\\\n !*** ./assets/icons/align-left.svg ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/align-left.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/align-right.svg\":\n/*!**************************************!*\\\n !*** ./assets/icons/align-right.svg ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/align-right.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/background.svg\":\n/*!*************************************!*\\\n !*** ./assets/icons/background.svg ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/background.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/blockquote.svg\":\n/*!*************************************!*\\\n !*** ./assets/icons/blockquote.svg ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/blockquote.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/bold.svg\":\n/*!*******************************!*\\\n !*** ./assets/icons/bold.svg ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/bold.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/clean.svg\":\n/*!********************************!*\\\n !*** ./assets/icons/clean.svg ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/clean.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/code.svg\":\n/*!*******************************!*\\\n !*** ./assets/icons/code.svg ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/code.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/color.svg\":\n/*!********************************!*\\\n !*** ./assets/icons/color.svg ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/color.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/direction-ltr.svg\":\n/*!****************************************!*\\\n !*** ./assets/icons/direction-ltr.svg ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/direction-ltr.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/direction-rtl.svg\":\n/*!****************************************!*\\\n !*** ./assets/icons/direction-rtl.svg ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/direction-rtl.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/dropdown.svg\":\n/*!***********************************!*\\\n !*** ./assets/icons/dropdown.svg ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/dropdown.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/formula.svg\":\n/*!**********************************!*\\\n !*** ./assets/icons/formula.svg ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/formula.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/header-2.svg\":\n/*!***********************************!*\\\n !*** ./assets/icons/header-2.svg ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/header-2.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/header.svg\":\n/*!*********************************!*\\\n !*** ./assets/icons/header.svg ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/header.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/image.svg\":\n/*!********************************!*\\\n !*** ./assets/icons/image.svg ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/image.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/indent.svg\":\n/*!*********************************!*\\\n !*** ./assets/icons/indent.svg ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/indent.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/italic.svg\":\n/*!*********************************!*\\\n !*** ./assets/icons/italic.svg ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/italic.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/link.svg\":\n/*!*******************************!*\\\n !*** ./assets/icons/link.svg ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/link.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/list-bullet.svg\":\n/*!**************************************!*\\\n !*** ./assets/icons/list-bullet.svg ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/list-bullet.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/list-check.svg\":\n/*!*************************************!*\\\n !*** ./assets/icons/list-check.svg ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/list-check.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/list-ordered.svg\":\n/*!***************************************!*\\\n !*** ./assets/icons/list-ordered.svg ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/list-ordered.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/outdent.svg\":\n/*!**********************************!*\\\n !*** ./assets/icons/outdent.svg ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/outdent.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/strike.svg\":\n/*!*********************************!*\\\n !*** ./assets/icons/strike.svg ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/strike.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/subscript.svg\":\n/*!************************************!*\\\n !*** ./assets/icons/subscript.svg ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/subscript.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/superscript.svg\":\n/*!**************************************!*\\\n !*** ./assets/icons/superscript.svg ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/superscript.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/table.svg\":\n/*!********************************!*\\\n !*** ./assets/icons/table.svg ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/table.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/underline.svg\":\n/*!************************************!*\\\n !*** ./assets/icons/underline.svg ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/underline.svg?\");\n\n/***/ }),\n\n/***/ \"./assets/icons/video.svg\":\n/*!********************************!*\\\n !*** ./assets/icons/video.svg ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"module.exports = \\\" \\\";\\n\\n//# sourceURL=webpack://Quill/./assets/icons/video.svg?\");\n\n/***/ }),\n\n/***/ \"./blots/block.js\":\n/*!************************!*\\\n !*** ./blots/block.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.default = exports.BlockEmbed = exports.bubbleFormats = exports.blockDelta = undefined;\\n\\nvar _extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\n\\nvar _extend2 = _interopRequireDefault(_extend);\\n\\nvar _quillDelta = __webpack_require__(/*! quill-delta */ \\\"./node_modules/quill-delta/lib/delta.js\\\");\\n\\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _break = __webpack_require__(/*! ./break */ \\\"./blots/break.js\\\");\\n\\nvar _break2 = _interopRequireDefault(_break);\\n\\nvar _inline = __webpack_require__(/*! ./inline */ \\\"./blots/inline.js\\\");\\n\\nvar _inline2 = _interopRequireDefault(_inline);\\n\\nvar _text = __webpack_require__(/*! ./text */ \\\"./blots/text.js\\\");\\n\\nvar _text2 = _interopRequireDefault(_text);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst NEWLINE_LENGTH = 1;\\n\\nclass Block extends _parchment.BlockBlot {\\n constructor(scroll, domNode) {\\n super(scroll, domNode);\\n this.cache = {};\\n }\\n\\n delta() {\\n if (this.cache.delta == null) {\\n this.cache.delta = blockDelta(this);\\n }\\n return this.cache.delta;\\n }\\n\\n deleteAt(index, length) {\\n super.deleteAt(index, length);\\n this.cache = {};\\n }\\n\\n formatAt(index, length, name, value) {\\n if (length <= 0) return;\\n if (this.scroll.query(name, _parchment.Scope.BLOCK)) {\\n if (index + length === this.length()) {\\n this.format(name, value);\\n }\\n } else {\\n super.formatAt(index, Math.min(length, this.length() - index - 1), name, value);\\n }\\n this.cache = {};\\n }\\n\\n insertAt(index, value, def) {\\n if (def != null) {\\n super.insertAt(index, value, def);\\n return;\\n }\\n if (value.length === 0) return;\\n const lines = value.split('\\\\n');\\n const text = lines.shift();\\n if (text.length > 0) {\\n if (index < this.length() - 1 || this.children.tail == null) {\\n super.insertAt(Math.min(index, this.length() - 1), text);\\n } else {\\n this.children.tail.insertAt(this.children.tail.length(), text);\\n }\\n this.cache = {};\\n }\\n let block = this;\\n lines.reduce((lineIndex, line) => {\\n block = block.split(lineIndex, true);\\n block.insertAt(0, line);\\n return line.length;\\n }, index + text.length);\\n }\\n\\n insertBefore(blot, ref) {\\n const head = this.children.head;\\n\\n super.insertBefore(blot, ref);\\n if (head instanceof _break2.default) {\\n head.remove();\\n }\\n this.cache = {};\\n }\\n\\n length() {\\n if (this.cache.length == null) {\\n this.cache.length = super.length() + NEWLINE_LENGTH;\\n }\\n return this.cache.length;\\n }\\n\\n moveChildren(target, ref) {\\n super.moveChildren(target, ref);\\n this.cache = {};\\n }\\n\\n optimize(context) {\\n super.optimize(context);\\n this.cache = {};\\n }\\n\\n path(index) {\\n return super.path(index, true);\\n }\\n\\n removeChild(child) {\\n super.removeChild(child);\\n this.cache = {};\\n }\\n\\n split(index, force = false) {\\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\\n const clone = this.clone();\\n if (index === 0) {\\n this.parent.insertBefore(clone, this);\\n return this;\\n }\\n this.parent.insertBefore(clone, this.next);\\n return clone;\\n }\\n const next = super.split(index, force);\\n this.cache = {};\\n return next;\\n }\\n}\\nBlock.blotName = 'block';\\nBlock.tagName = 'P';\\nBlock.defaultChild = _break2.default;\\nBlock.allowedChildren = [_break2.default, _inline2.default, _parchment.EmbedBlot, _text2.default];\\n\\nclass BlockEmbed extends _parchment.EmbedBlot {\\n attach() {\\n super.attach();\\n this.attributes = new _parchment.AttributorStore(this.domNode);\\n }\\n\\n delta() {\\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\\n }\\n\\n format(name, value) {\\n const attribute = this.scroll.query(name, _parchment.Scope.BLOCK_ATTRIBUTE);\\n if (attribute != null) {\\n this.attributes.attribute(attribute, value);\\n }\\n }\\n\\n formatAt(index, length, name, value) {\\n this.format(name, value);\\n }\\n\\n insertAt(index, value, def) {\\n if (typeof value === 'string' && value.endsWith('\\\\n')) {\\n const block = this.scroll.create(Block.blotName);\\n this.parent.insertBefore(block, index === 0 ? this : this.next);\\n block.insertAt(0, value.slice(0, -1));\\n } else {\\n super.insertAt(index, value, def);\\n }\\n }\\n}\\nBlockEmbed.scope = _parchment.Scope.BLOCK_BLOT;\\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\\n\\nfunction blockDelta(blot) {\\n return blot.descendants(_parchment.LeafBlot).reduce((delta, leaf) => {\\n if (leaf.length() === 0) {\\n return delta;\\n }\\n return delta.insert(leaf.value(), bubbleFormats(leaf));\\n }, new _quillDelta2.default()).insert('\\\\n', bubbleFormats(blot));\\n}\\n\\nfunction bubbleFormats(blot, formats = {}) {\\n if (blot == null) return formats;\\n if (typeof blot.formats === 'function') {\\n formats = (0, _extend2.default)(formats, blot.formats());\\n }\\n if (blot.parent == null || blot.parent.blotName === 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\\n return formats;\\n }\\n return bubbleFormats(blot.parent, formats);\\n}\\n\\nexports.blockDelta = blockDelta;\\nexports.bubbleFormats = bubbleFormats;\\nexports.BlockEmbed = BlockEmbed;\\nexports.default = Block;\\n\\n//# sourceURL=webpack://Quill/./blots/block.js?\");\n\n/***/ }),\n\n/***/ \"./blots/break.js\":\n/*!************************!*\\\n !*** ./blots/break.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nclass Break extends _parchment.EmbedBlot {\\n static value() {\\n return undefined;\\n }\\n\\n optimize() {\\n if (this.prev || this.next) {\\n this.remove();\\n }\\n }\\n\\n length() {\\n return 0;\\n }\\n\\n value() {\\n return '';\\n }\\n}\\nBreak.blotName = 'break';\\nBreak.tagName = 'BR';\\n\\nexports.default = Break;\\n\\n//# sourceURL=webpack://Quill/./blots/break.js?\");\n\n/***/ }),\n\n/***/ \"./blots/container.js\":\n/*!****************************!*\\\n !*** ./blots/container.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nclass Container extends _parchment.ContainerBlot {}\\n\\nexports.default = Container;\\n\\n//# sourceURL=webpack://Quill/./blots/container.js?\");\n\n/***/ }),\n\n/***/ \"./blots/cursor.js\":\n/*!*************************!*\\\n !*** ./blots/cursor.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _text = __webpack_require__(/*! ./text */ \\\"./blots/text.js\\\");\\n\\nvar _text2 = _interopRequireDefault(_text);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Cursor extends _parchment.EmbedBlot {\\n static value() {\\n return undefined;\\n }\\n\\n constructor(scroll, domNode, selection) {\\n super(scroll, domNode);\\n this.selection = selection;\\n this.textNode = document.createTextNode(Cursor.CONTENTS);\\n this.domNode.appendChild(this.textNode);\\n this.savedLength = 0;\\n }\\n\\n detach() {\\n // super.detach() will also clear domNode.__blot\\n if (this.parent != null) this.parent.removeChild(this);\\n }\\n\\n format(name, value) {\\n if (this.savedLength !== 0) {\\n super.format(name, value);\\n return;\\n }\\n let target = this;\\n let index = 0;\\n while (target != null && target.statics.scope !== _parchment.Scope.BLOCK_BLOT) {\\n index += target.offset(target.parent);\\n target = target.parent;\\n }\\n if (target != null) {\\n this.savedLength = Cursor.CONTENTS.length;\\n target.optimize();\\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\\n this.savedLength = 0;\\n }\\n }\\n\\n index(node, offset) {\\n if (node === this.textNode) return 0;\\n return super.index(node, offset);\\n }\\n\\n length() {\\n return this.savedLength;\\n }\\n\\n position() {\\n return [this.textNode, this.textNode.data.length];\\n }\\n\\n remove() {\\n super.remove();\\n this.parent = null;\\n }\\n\\n restore() {\\n if (this.selection.composing || this.parent == null) return null;\\n const range = this.selection.getNativeRange();\\n let restoreText;\\n let start;\\n let end;\\n if (range != null && range.start.node === this.textNode && range.end.node === this.textNode) {\\n var _ref = [this.textNode, range.start.offset, range.end.offset];\\n restoreText = _ref[0];\\n start = _ref[1];\\n end = _ref[2];\\n }\\n // Link format will insert text outside of anchor tag\\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\\n }\\n if (this.textNode.data !== Cursor.CONTENTS) {\\n const text = this.textNode.data.split(Cursor.CONTENTS).join('');\\n if (this.next instanceof _text2.default) {\\n restoreText = this.next.domNode;\\n this.next.insertAt(0, text);\\n this.textNode.data = Cursor.CONTENTS;\\n } else {\\n this.textNode.data = text;\\n this.parent.insertBefore(this.scroll.create(this.textNode), this);\\n this.textNode = document.createTextNode(Cursor.CONTENTS);\\n this.domNode.appendChild(this.textNode);\\n }\\n }\\n this.remove();\\n if (start != null) {\\n var _map = [start, end].map(offset => {\\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\\n });\\n\\n var _map2 = _slicedToArray(_map, 2);\\n\\n start = _map2[0];\\n end = _map2[1];\\n\\n return {\\n startNode: restoreText,\\n startOffset: start,\\n endNode: restoreText,\\n endOffset: end\\n };\\n }\\n return null;\\n }\\n\\n update(mutations, context) {\\n if (mutations.some(mutation => {\\n return mutation.type === 'characterData' && mutation.target === this.textNode;\\n })) {\\n const range = this.restore();\\n if (range) context.range = range;\\n }\\n }\\n\\n value() {\\n return '';\\n }\\n}\\nCursor.blotName = 'cursor';\\nCursor.className = 'ql-cursor';\\nCursor.tagName = 'span';\\nCursor.CONTENTS = '\\\\uFEFF'; // Zero width no break space\\n\\nexports.default = Cursor;\\n\\n//# sourceURL=webpack://Quill/./blots/cursor.js?\");\n\n/***/ }),\n\n/***/ \"./blots/embed.js\":\n/*!************************!*\\\n !*** ./blots/embed.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _text = __webpack_require__(/*! ./text */ \\\"./blots/text.js\\\");\\n\\nvar _text2 = _interopRequireDefault(_text);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst GUARD_TEXT = '\\\\uFEFF';\\n\\nclass Embed extends _parchment.EmbedBlot {\\n constructor(scroll, node) {\\n super(scroll, node);\\n this.contentNode = document.createElement('span');\\n this.contentNode.setAttribute('contenteditable', false);\\n Array.from(this.domNode.childNodes).forEach(childNode => {\\n this.contentNode.appendChild(childNode);\\n });\\n this.leftGuard = document.createTextNode(GUARD_TEXT);\\n this.rightGuard = document.createTextNode(GUARD_TEXT);\\n this.domNode.appendChild(this.leftGuard);\\n this.domNode.appendChild(this.contentNode);\\n this.domNode.appendChild(this.rightGuard);\\n }\\n\\n index(node, offset) {\\n if (node === this.leftGuard) return 0;\\n if (node === this.rightGuard) return 1;\\n return super.index(node, offset);\\n }\\n\\n restore(node) {\\n let range;\\n let textNode;\\n const text = node.data.split(GUARD_TEXT).join('');\\n if (node === this.leftGuard) {\\n if (this.prev instanceof _text2.default) {\\n const prevLength = this.prev.length();\\n this.prev.insertAt(prevLength, text);\\n range = {\\n startNode: this.prev.domNode,\\n startOffset: prevLength + text.length\\n };\\n } else {\\n textNode = document.createTextNode(text);\\n this.parent.insertBefore(this.scroll.create(textNode), this);\\n range = {\\n startNode: textNode,\\n startOffset: text.length\\n };\\n }\\n } else if (node === this.rightGuard) {\\n if (this.next instanceof _text2.default) {\\n this.next.insertAt(0, text);\\n range = {\\n startNode: this.next.domNode,\\n startOffset: text.length\\n };\\n } else {\\n textNode = document.createTextNode(text);\\n this.parent.insertBefore(this.scroll.create(textNode), this.next);\\n range = {\\n startNode: textNode,\\n startOffset: text.length\\n };\\n }\\n }\\n node.data = GUARD_TEXT;\\n return range;\\n }\\n\\n update(mutations, context) {\\n mutations.forEach(mutation => {\\n if (mutation.type === 'characterData' && (mutation.target === this.leftGuard || mutation.target === this.rightGuard)) {\\n const range = this.restore(mutation.target);\\n if (range) context.range = range;\\n }\\n });\\n }\\n}\\n\\nexports.default = Embed;\\n\\n//# sourceURL=webpack://Quill/./blots/embed.js?\");\n\n/***/ }),\n\n/***/ \"./blots/inline.js\":\n/*!*************************!*\\\n !*** ./blots/inline.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _break = __webpack_require__(/*! ./break */ \\\"./blots/break.js\\\");\\n\\nvar _break2 = _interopRequireDefault(_break);\\n\\nvar _text = __webpack_require__(/*! ./text */ \\\"./blots/text.js\\\");\\n\\nvar _text2 = _interopRequireDefault(_text);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Inline extends _parchment.InlineBlot {\\n static compare(self, other) {\\n const selfIndex = Inline.order.indexOf(self);\\n const otherIndex = Inline.order.indexOf(other);\\n if (selfIndex >= 0 || otherIndex >= 0) {\\n return selfIndex - otherIndex;\\n } else if (self === other) {\\n return 0;\\n } else if (self < other) {\\n return -1;\\n }\\n return 1;\\n }\\n\\n formatAt(index, length, name, value) {\\n if (Inline.compare(this.statics.blotName, name) < 0 && this.scroll.query(name, _parchment.Scope.BLOT)) {\\n const blot = this.isolate(index, length);\\n if (value) {\\n blot.wrap(name, value);\\n }\\n } else {\\n super.formatAt(index, length, name, value);\\n }\\n }\\n\\n optimize(context) {\\n super.optimize(context);\\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\\n const parent = this.parent.isolate(this.offset(), this.length());\\n this.moveChildren(parent);\\n parent.wrap(this);\\n }\\n }\\n}\\nInline.allowedChildren = [Inline, _break2.default, _parchment.EmbedBlot, _text2.default];\\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\\nInline.order = ['cursor', 'inline', // Must be lower\\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code'];\\n\\nexports.default = Inline;\\n\\n//# sourceURL=webpack://Quill/./blots/inline.js?\");\n\n/***/ }),\n\n/***/ \"./blots/scroll.js\":\n/*!*************************!*\\\n !*** ./blots/scroll.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _emitter = __webpack_require__(/*! ../core/emitter */ \\\"./core/emitter.js\\\");\\n\\nvar _emitter2 = _interopRequireDefault(_emitter);\\n\\nvar _block = __webpack_require__(/*! ./block */ \\\"./blots/block.js\\\");\\n\\nvar _block2 = _interopRequireDefault(_block);\\n\\nvar _break = __webpack_require__(/*! ./break */ \\\"./blots/break.js\\\");\\n\\nvar _break2 = _interopRequireDefault(_break);\\n\\nvar _container = __webpack_require__(/*! ./container */ \\\"./blots/container.js\\\");\\n\\nvar _container2 = _interopRequireDefault(_container);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nfunction isLine(blot) {\\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\\n}\\n\\nclass Scroll extends _parchment.ScrollBlot {\\n constructor(registry, domNode, { emitter }) {\\n super(registry, domNode);\\n this.emitter = emitter;\\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\\n this.domNode.addEventListener('DOMNodeInserted', () => {});\\n this.optimize();\\n this.enable();\\n }\\n\\n batchStart() {\\n this.batch = true;\\n }\\n\\n batchEnd() {\\n this.batch = false;\\n this.optimize();\\n }\\n\\n emitMount(blot) {\\n this.emitter.emit(_emitter2.default.events.SCROLL_BLOT_MOUNT, blot);\\n }\\n\\n emitUnmount(blot) {\\n this.emitter.emit(_emitter2.default.events.SCROLL_BLOT_UNMOUNT, blot);\\n }\\n\\n deleteAt(index, length) {\\n var _line = this.line(index),\\n _line2 = _slicedToArray(_line, 2);\\n\\n const first = _line2[0],\\n offset = _line2[1];\\n\\n var _line3 = this.line(index + length),\\n _line4 = _slicedToArray(_line3, 1);\\n\\n const last = _line4[0];\\n\\n super.deleteAt(index, length);\\n if (last != null && first !== last && offset > 0) {\\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\\n this.optimize();\\n return;\\n }\\n const ref = last.children.head instanceof _break2.default ? null : last.children.head;\\n first.moveChildren(last, ref);\\n first.remove();\\n }\\n this.optimize();\\n }\\n\\n enable(enabled = true) {\\n this.domNode.setAttribute('contenteditable', enabled);\\n }\\n\\n formatAt(index, length, format, value) {\\n super.formatAt(index, length, format, value);\\n this.optimize();\\n }\\n\\n insertAt(index, value, def) {\\n if (index >= this.length()) {\\n if (def == null || this.scroll.query(value, _parchment.Scope.BLOCK) == null) {\\n const blot = this.scroll.create(this.statics.defaultChild.blotName);\\n this.appendChild(blot);\\n if (def == null && value.endsWith('\\\\n')) {\\n blot.insertAt(0, value.slice(0, -1), def);\\n } else {\\n blot.insertAt(0, value, def);\\n }\\n } else {\\n const embed = this.scroll.create(value, def);\\n this.appendChild(embed);\\n }\\n } else {\\n super.insertAt(index, value, def);\\n }\\n this.optimize();\\n }\\n\\n insertBefore(blot, ref) {\\n if (blot.statics.scope === _parchment.Scope.INLINE_BLOT) {\\n const wrapper = this.scroll.create(this.statics.defaultChild.blotName);\\n wrapper.appendChild(blot);\\n super.insertBefore(wrapper, ref);\\n } else {\\n super.insertBefore(blot, ref);\\n }\\n }\\n\\n leaf(index) {\\n return this.path(index).pop() || [null, -1];\\n }\\n\\n line(index) {\\n if (index === this.length()) {\\n return this.line(index - 1);\\n }\\n return this.descendant(isLine, index);\\n }\\n\\n lines(index = 0, length = Number.MAX_VALUE) {\\n const getLines = (blot, blotIndex, blotLength) => {\\n let lines = [];\\n let lengthLeft = blotLength;\\n blot.children.forEachAt(blotIndex, blotLength, (child, childIndex, childLength) => {\\n if (isLine(child)) {\\n lines.push(child);\\n } else if (child instanceof _parchment.ContainerBlot) {\\n lines = lines.concat(getLines(child, childIndex, lengthLeft));\\n }\\n lengthLeft -= childLength;\\n });\\n return lines;\\n };\\n return getLines(this, index, length);\\n }\\n\\n optimize(mutations = [], context = {}) {\\n if (this.batch === true) return;\\n super.optimize(mutations, context);\\n if (mutations.length > 0) {\\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\\n }\\n }\\n\\n path(index) {\\n return super.path(index).slice(1); // Exclude self\\n }\\n\\n remove() {\\n // Never remove self\\n }\\n\\n update(mutations) {\\n if (this.batch === true) return;\\n let source = _emitter2.default.sources.USER;\\n if (typeof mutations === 'string') {\\n source = mutations;\\n }\\n if (!Array.isArray(mutations)) {\\n mutations = this.observer.takeRecords();\\n }\\n if (mutations.length > 0) {\\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\\n }\\n super.update(mutations.concat([])); // pass copy\\n if (mutations.length > 0) {\\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\\n }\\n }\\n}\\nScroll.blotName = 'scroll';\\nScroll.className = 'ql-editor';\\nScroll.tagName = 'DIV';\\nScroll.defaultChild = _block2.default;\\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\\n\\nexports.default = Scroll;\\n\\n//# sourceURL=webpack://Quill/./blots/scroll.js?\");\n\n/***/ }),\n\n/***/ \"./blots/text.js\":\n/*!***********************!*\\\n !*** ./blots/text.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nclass Text extends _parchment.TextBlot {}\\n\\nexports.default = Text;\\n\\n//# sourceURL=webpack://Quill/./blots/text.js?\");\n\n/***/ }),\n\n/***/ \"./core.js\":\n/*!*****************!*\\\n !*** ./core.js ***!\n \\*****************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _quill = __webpack_require__(/*! ./core/quill */ \\\"./core/quill.js\\\");\\n\\nvar _quill2 = _interopRequireDefault(_quill);\\n\\nvar _block = __webpack_require__(/*! ./blots/block */ \\\"./blots/block.js\\\");\\n\\nvar _block2 = _interopRequireDefault(_block);\\n\\nvar _break = __webpack_require__(/*! ./blots/break */ \\\"./blots/break.js\\\");\\n\\nvar _break2 = _interopRequireDefault(_break);\\n\\nvar _container = __webpack_require__(/*! ./blots/container */ \\\"./blots/container.js\\\");\\n\\nvar _container2 = _interopRequireDefault(_container);\\n\\nvar _cursor = __webpack_require__(/*! ./blots/cursor */ \\\"./blots/cursor.js\\\");\\n\\nvar _cursor2 = _interopRequireDefault(_cursor);\\n\\nvar _embed = __webpack_require__(/*! ./blots/embed */ \\\"./blots/embed.js\\\");\\n\\nvar _embed2 = _interopRequireDefault(_embed);\\n\\nvar _inline = __webpack_require__(/*! ./blots/inline */ \\\"./blots/inline.js\\\");\\n\\nvar _inline2 = _interopRequireDefault(_inline);\\n\\nvar _scroll = __webpack_require__(/*! ./blots/scroll */ \\\"./blots/scroll.js\\\");\\n\\nvar _scroll2 = _interopRequireDefault(_scroll);\\n\\nvar _text = __webpack_require__(/*! ./blots/text */ \\\"./blots/text.js\\\");\\n\\nvar _text2 = _interopRequireDefault(_text);\\n\\nvar _clipboard = __webpack_require__(/*! ./modules/clipboard */ \\\"./modules/clipboard.js\\\");\\n\\nvar _clipboard2 = _interopRequireDefault(_clipboard);\\n\\nvar _history = __webpack_require__(/*! ./modules/history */ \\\"./modules/history.js\\\");\\n\\nvar _history2 = _interopRequireDefault(_history);\\n\\nvar _keyboard = __webpack_require__(/*! ./modules/keyboard */ \\\"./modules/keyboard.js\\\");\\n\\nvar _keyboard2 = _interopRequireDefault(_keyboard);\\n\\nvar _uploader = __webpack_require__(/*! ./modules/uploader */ \\\"./modules/uploader.js\\\");\\n\\nvar _uploader2 = _interopRequireDefault(_uploader);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\n_quill2.default.register({\\n 'blots/block': _block2.default,\\n 'blots/block/embed': _block.BlockEmbed,\\n 'blots/break': _break2.default,\\n 'blots/container': _container2.default,\\n 'blots/cursor': _cursor2.default,\\n 'blots/embed': _embed2.default,\\n 'blots/inline': _inline2.default,\\n 'blots/scroll': _scroll2.default,\\n 'blots/text': _text2.default,\\n\\n 'modules/clipboard': _clipboard2.default,\\n 'modules/history': _history2.default,\\n 'modules/keyboard': _keyboard2.default,\\n 'modules/uploader': _uploader2.default\\n});\\n\\nexports.default = _quill2.default;\\n\\n//# sourceURL=webpack://Quill/./core.js?\");\n\n/***/ }),\n\n/***/ \"./core/editor.js\":\n/*!************************!*\\\n !*** ./core/editor.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _clone = __webpack_require__(/*! clone */ \\\"./node_modules/clone/clone.js\\\");\\n\\nvar _clone2 = _interopRequireDefault(_clone);\\n\\nvar _deepEqual = __webpack_require__(/*! deep-equal */ \\\"./node_modules/deep-equal/index.js\\\");\\n\\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\\n\\nvar _extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\n\\nvar _extend2 = _interopRequireDefault(_extend);\\n\\nvar _quillDelta = __webpack_require__(/*! quill-delta */ \\\"./node_modules/quill-delta/lib/delta.js\\\");\\n\\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\\n\\nvar _op = __webpack_require__(/*! quill-delta/lib/op */ \\\"./node_modules/quill-delta/lib/op.js\\\");\\n\\nvar _op2 = _interopRequireDefault(_op);\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _cursor = __webpack_require__(/*! ../blots/cursor */ \\\"./blots/cursor.js\\\");\\n\\nvar _cursor2 = _interopRequireDefault(_cursor);\\n\\nvar _block = __webpack_require__(/*! ../blots/block */ \\\"./blots/block.js\\\");\\n\\nvar _block2 = _interopRequireDefault(_block);\\n\\nvar _break = __webpack_require__(/*! ../blots/break */ \\\"./blots/break.js\\\");\\n\\nvar _break2 = _interopRequireDefault(_break);\\n\\nvar _text = __webpack_require__(/*! ../blots/text */ \\\"./blots/text.js\\\");\\n\\nvar _text2 = _interopRequireDefault(_text);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\\n\\nconst ASCII = /^[ -~]*$/;\\n\\nclass Editor {\\n constructor(scroll) {\\n this.scroll = scroll;\\n this.delta = this.getDelta();\\n }\\n\\n applyDelta(delta) {\\n let consumeNextNewline = false;\\n this.scroll.update();\\n let scrollLength = this.scroll.length();\\n this.scroll.batchStart();\\n const normalizedDelta = normalizeDelta(delta);\\n normalizedDelta.reduce((index, op) => {\\n const length = op.retain || op.delete || op.insert.length || 1;\\n let attributes = op.attributes || {};\\n if (op.insert != null) {\\n if (typeof op.insert === 'string') {\\n let text = op.insert;\\n if (text.endsWith('\\\\n') && consumeNextNewline) {\\n consumeNextNewline = false;\\n text = text.slice(0, -1);\\n }\\n if (index >= scrollLength && !text.endsWith('\\\\n')) {\\n consumeNextNewline = true;\\n }\\n this.scroll.insertAt(index, text);\\n\\n var _scroll$line = this.scroll.line(index),\\n _scroll$line2 = _slicedToArray(_scroll$line, 2);\\n\\n const line = _scroll$line2[0],\\n offset = _scroll$line2[1];\\n\\n let formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\\n if (line instanceof _block2.default) {\\n var _line$descendant = line.descendant(_parchment.LeafBlot, offset),\\n _line$descendant2 = _slicedToArray(_line$descendant, 1);\\n\\n const leaf = _line$descendant2[0];\\n\\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\\n }\\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\\n } else if (typeof op.insert === 'object') {\\n const key = Object.keys(op.insert)[0]; // There should only be one key\\n if (key == null) return index;\\n this.scroll.insertAt(index, key, op.insert[key]);\\n }\\n scrollLength += length;\\n }\\n Object.keys(attributes).forEach(name => {\\n this.scroll.formatAt(index, length, name, attributes[name]);\\n });\\n return index + length;\\n }, 0);\\n normalizedDelta.reduce((index, op) => {\\n if (typeof op.delete === 'number') {\\n this.scroll.deleteAt(index, op.delete);\\n return index;\\n }\\n return index + (op.retain || op.insert.length || 1);\\n }, 0);\\n this.scroll.batchEnd();\\n this.scroll.optimize();\\n return this.update(normalizedDelta);\\n }\\n\\n deleteText(index, length) {\\n this.scroll.deleteAt(index, length);\\n return this.update(new _quillDelta2.default().retain(index).delete(length));\\n }\\n\\n formatLine(index, length, formats = {}) {\\n this.scroll.update();\\n Object.keys(formats).forEach(format => {\\n this.scroll.lines(index, Math.max(length, 1)).forEach(line => {\\n line.format(format, formats[format]);\\n });\\n });\\n this.scroll.optimize();\\n const delta = new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats));\\n return this.update(delta);\\n }\\n\\n formatText(index, length, formats = {}) {\\n Object.keys(formats).forEach(format => {\\n this.scroll.formatAt(index, length, format, formats[format]);\\n });\\n const delta = new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats));\\n return this.update(delta);\\n }\\n\\n getContents(index, length) {\\n return this.delta.slice(index, index + length);\\n }\\n\\n getDelta() {\\n return this.scroll.lines().reduce((delta, line) => {\\n return delta.concat(line.delta());\\n }, new _quillDelta2.default());\\n }\\n\\n getFormat(index, length = 0) {\\n let lines = [];\\n let leaves = [];\\n if (length === 0) {\\n this.scroll.path(index).forEach(path => {\\n var _path = _slicedToArray(path, 1);\\n\\n const blot = _path[0];\\n\\n if (blot instanceof _block2.default) {\\n lines.push(blot);\\n } else if (blot instanceof _parchment.LeafBlot) {\\n leaves.push(blot);\\n }\\n });\\n } else {\\n lines = this.scroll.lines(index, length);\\n leaves = this.scroll.descendants(_parchment.LeafBlot, index, length);\\n }\\n const formatsArr = [lines, leaves].map(blots => {\\n if (blots.length === 0) return {};\\n let formats = (0, _block.bubbleFormats)(blots.shift());\\n while (Object.keys(formats).length > 0) {\\n const blot = blots.shift();\\n if (blot == null) return formats;\\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\\n }\\n return formats;\\n });\\n return _extend2.default.apply(_extend2.default, formatsArr);\\n }\\n\\n getHTML(index, length) {\\n var _scroll$line3 = this.scroll.line(index),\\n _scroll$line4 = _slicedToArray(_scroll$line3, 2);\\n\\n const line = _scroll$line4[0],\\n lineOffset = _scroll$line4[1];\\n\\n if (line.length() >= lineOffset + length) {\\n return convertHTML(line, lineOffset, length, true);\\n }\\n return convertHTML(this.scroll, index, length, true);\\n }\\n\\n getText(index, length) {\\n return this.getContents(index, length).filter(op => typeof op.insert === 'string').map(op => op.insert).join('');\\n }\\n\\n insertEmbed(index, embed, value) {\\n this.scroll.insertAt(index, embed, value);\\n return this.update(new _quillDelta2.default().retain(index).insert({ [embed]: value }));\\n }\\n\\n insertText(index, text, formats = {}) {\\n text = text.replace(/\\\\r\\\\n/g, '\\\\n').replace(/\\\\r/g, '\\\\n');\\n this.scroll.insertAt(index, text);\\n Object.keys(formats).forEach(format => {\\n this.scroll.formatAt(index, text.length, format, formats[format]);\\n });\\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\\n }\\n\\n isBlank() {\\n if (this.scroll.children.length === 0) return true;\\n if (this.scroll.children.length > 1) return false;\\n const block = this.scroll.children.head;\\n if (block.statics.blotName !== _block2.default.blotName) return false;\\n if (block.children.length > 1) return false;\\n return block.children.head instanceof _break2.default;\\n }\\n\\n removeFormat(index, length) {\\n const text = this.getText(index, length);\\n\\n var _scroll$line5 = this.scroll.line(index + length),\\n _scroll$line6 = _slicedToArray(_scroll$line5, 2);\\n\\n const line = _scroll$line6[0],\\n offset = _scroll$line6[1];\\n\\n let suffixLength = 0;\\n let suffix = new _quillDelta2.default();\\n if (line != null) {\\n suffixLength = line.length() - offset;\\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\\\n');\\n }\\n const contents = this.getContents(index, length + suffixLength);\\n const diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\\n const delta = new _quillDelta2.default().retain(index).concat(diff);\\n return this.applyDelta(delta);\\n }\\n\\n update(change, mutations = [], cursorIndex = undefined) {\\n const oldDelta = this.delta;\\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && this.scroll.find(mutations[0].target)) {\\n // Optimization for character changes\\n const textBlot = this.scroll.find(mutations[0].target);\\n const formats = (0, _block.bubbleFormats)(textBlot);\\n const index = textBlot.offset(this.scroll);\\n const oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\\n const oldText = new _quillDelta2.default().insert(oldValue);\\n const newText = new _quillDelta2.default().insert(textBlot.value());\\n const diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\\n change = diffDelta.reduce((delta, op) => {\\n if (op.insert) {\\n return delta.insert(op.insert, formats);\\n }\\n return delta.push(op);\\n }, new _quillDelta2.default());\\n this.delta = oldDelta.compose(change);\\n } else {\\n this.delta = this.getDelta();\\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\\n change = oldDelta.diff(this.delta, cursorIndex);\\n }\\n }\\n return change;\\n }\\n}\\n\\nfunction convertListHTML(items, lastIndent, types) {\\n if (items.length === 0) {\\n var _getListType = getListType(types.pop()),\\n _getListType2 = _slicedToArray(_getListType, 1);\\n\\n const endTag = _getListType2[0];\\n\\n if (lastIndent <= 0) {\\n return ``;\\n }\\n return `${convertListHTML([], lastIndent - 1, types)}`;\\n }\\n\\n var _items = _toArray(items),\\n _items$ = _items[0];\\n\\n const child = _items$.child,\\n offset = _items$.offset,\\n length = _items$.length,\\n indent = _items$.indent,\\n type = _items$.type,\\n rest = _items.slice(1);\\n\\n var _getListType3 = getListType(type),\\n _getListType4 = _slicedToArray(_getListType3, 2);\\n\\n const tag = _getListType4[0],\\n attribute = _getListType4[1];\\n\\n if (indent > lastIndent) {\\n types.push(tag);\\n return `<${tag}>${convertHTML(child, offset, length)}${convertListHTML(rest, indent, types)}`;\\n } else if (indent === lastIndent) {\\n return `${convertHTML(child, offset, length)}${convertListHTML(rest, indent, types)}`;\\n } else if (indent === lastIndent - 1) {\\n var _getListType5 = getListType(types.pop()),\\n _getListType6 = _slicedToArray(_getListType5, 1);\\n\\n const endTag = _getListType6[0];\\n\\n return `${convertHTML(child, offset, length)}${convertListHTML(rest, indent, types)}`;\\n }\\n\\n var _getListType7 = getListType(types.pop()),\\n _getListType8 = _slicedToArray(_getListType7, 1);\\n\\n const endTag = _getListType8[0];\\n\\n return `${convertListHTML(items, lastIndent - 1, types)}`;\\n}\\n\\nfunction convertHTML(blot, index, length, isRoot = false) {\\n if (typeof blot.html === 'function') {\\n return blot.html(index, length);\\n } else if (blot instanceof _text2.default) {\\n return blot.value().slice(index, index + length);\\n } else if (blot.children) {\\n // TODO fix API\\n if (blot.statics.blotName === 'list-container') {\\n const items = [];\\n blot.children.forEachAt(index, length, (child, offset, childLength) => {\\n const formats = child.formats();\\n items.push({\\n child,\\n offset,\\n length: childLength,\\n indent: formats.indent || 0,\\n type: formats.list\\n });\\n });\\n return convertListHTML(items, -1, []);\\n }\\n const parts = [];\\n blot.children.forEachAt(index, length, (child, offset, childLength) => {\\n parts.push(convertHTML(child, offset, childLength));\\n });\\n if (isRoot || blot.statics.blotName === 'list') {\\n return parts.join('');\\n }\\n var _blot$domNode = blot.domNode;\\n const outerHTML = _blot$domNode.outerHTML,\\n innerHTML = _blot$domNode.innerHTML;\\n\\n var _outerHTML$split = outerHTML.split(`>${innerHTML}<`),\\n _outerHTML$split2 = _slicedToArray(_outerHTML$split, 2);\\n\\n const start = _outerHTML$split2[0],\\n end = _outerHTML$split2[1];\\n\\n return `${start}>${parts.join('')}<${end}`;\\n }\\n return blot.domNode.outerHTML;\\n}\\n\\nfunction combineFormats(formats, combined) {\\n return Object.keys(combined).reduce((merged, name) => {\\n if (formats[name] == null) return merged;\\n if (combined[name] === formats[name]) {\\n merged[name] = combined[name];\\n } else if (Array.isArray(combined[name])) {\\n if (combined[name].indexOf(formats[name]) < 0) {\\n merged[name] = combined[name].concat([formats[name]]);\\n }\\n } else {\\n merged[name] = [combined[name], formats[name]];\\n }\\n return merged;\\n }, {});\\n}\\n\\nfunction getListType(type) {\\n const tag = type === 'ordered' ? 'ol' : 'ul';\\n switch (type) {\\n case 'checked':\\n return [tag, ' data-list=\\\"checked\\\"'];\\n case 'unchecked':\\n return [tag, ' data-list=\\\"unchecked\\\"'];\\n default:\\n return [tag, ''];\\n }\\n}\\n\\nfunction normalizeDelta(delta) {\\n return delta.reduce((normalizedDelta, op) => {\\n if (typeof op.insert === 'string') {\\n const text = op.insert.replace(/\\\\r\\\\n/g, '\\\\n').replace(/\\\\r/g, '\\\\n');\\n return normalizedDelta.insert(text, op.attributes);\\n }\\n return normalizedDelta.push(op);\\n }, new _quillDelta2.default());\\n}\\n\\nexports.default = Editor;\\n\\n//# sourceURL=webpack://Quill/./core/editor.js?\");\n\n/***/ }),\n\n/***/ \"./core/emitter.js\":\n/*!*************************!*\\\n !*** ./core/emitter.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _eventemitter = __webpack_require__(/*! eventemitter3 */ \\\"./node_modules/eventemitter3/index.js\\\");\\n\\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\\n\\nvar _instances = __webpack_require__(/*! ./instances */ \\\"./core/instances.js\\\");\\n\\nvar _instances2 = _interopRequireDefault(_instances);\\n\\nvar _logger = __webpack_require__(/*! ./logger */ \\\"./core/logger.js\\\");\\n\\nvar _logger2 = _interopRequireDefault(_logger);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst debug = (0, _logger2.default)('quill:events');\\nconst EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\\n\\nEVENTS.forEach(eventName => {\\n document.addEventListener(eventName, (...args) => {\\n Array.from(document.querySelectorAll('.ql-container')).forEach(node => {\\n const quill = _instances2.default.get(node);\\n if (quill && quill.emitter) {\\n quill.emitter.handleDOM(...args);\\n }\\n });\\n });\\n});\\n\\nclass Emitter extends _eventemitter2.default {\\n constructor() {\\n super();\\n this.listeners = {};\\n this.on('error', debug.error);\\n }\\n\\n emit(...args) {\\n debug.log.call(debug, ...args);\\n super.emit(...args);\\n }\\n\\n handleDOM(event, ...args) {\\n (this.listeners[event.type] || []).forEach(({ node, handler }) => {\\n if (event.target === node || node.contains(event.target)) {\\n handler(event, ...args);\\n }\\n });\\n }\\n\\n listenDOM(eventName, node, handler) {\\n if (!this.listeners[eventName]) {\\n this.listeners[eventName] = [];\\n }\\n this.listeners[eventName].push({ node, handler });\\n }\\n}\\n\\nEmitter.events = {\\n EDITOR_CHANGE: 'editor-change',\\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\\n SCROLL_BLOT_MOUNT: 'scroll-blot-mount',\\n SCROLL_BLOT_UNMOUNT: 'scroll-blot-unmount',\\n SCROLL_OPTIMIZE: 'scroll-optimize',\\n SCROLL_UPDATE: 'scroll-update',\\n SELECTION_CHANGE: 'selection-change',\\n TEXT_CHANGE: 'text-change'\\n};\\nEmitter.sources = {\\n API: 'api',\\n SILENT: 'silent',\\n USER: 'user'\\n};\\n\\nexports.default = Emitter;\\n\\n//# sourceURL=webpack://Quill/./core/emitter.js?\");\n\n/***/ }),\n\n/***/ \"./core/instances.js\":\n/*!***************************!*\\\n !*** ./core/instances.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.default = new WeakMap();\\n\\n//# sourceURL=webpack://Quill/./core/instances.js?\");\n\n/***/ }),\n\n/***/ \"./core/logger.js\":\n/*!************************!*\\\n !*** ./core/logger.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nconst levels = ['error', 'warn', 'log', 'info'];\\nlet level = 'warn';\\n\\nfunction debug(method, ...args) {\\n if (levels.indexOf(method) <= levels.indexOf(level)) {\\n console[method](...args); // eslint-disable-line no-console\\n }\\n}\\n\\nfunction namespace(ns) {\\n return levels.reduce((logger, method) => {\\n logger[method] = debug.bind(console, method, ns);\\n return logger;\\n }, {});\\n}\\n\\nnamespace.level = newLevel => {\\n level = newLevel;\\n};\\ndebug.level = namespace.level;\\n\\nexports.default = namespace;\\n\\n//# sourceURL=webpack://Quill/./core/logger.js?\");\n\n/***/ }),\n\n/***/ \"./core/module.js\":\n/*!************************!*\\\n !*** ./core/module.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nclass Module {\\n constructor(quill, options = {}) {\\n this.quill = quill;\\n this.options = options;\\n }\\n}\\nModule.DEFAULTS = {};\\n\\nexports.default = Module;\\n\\n//# sourceURL=webpack://Quill/./core/module.js?\");\n\n/***/ }),\n\n/***/ \"./core/quill.js\":\n/*!***********************!*\\\n !*** ./core/quill.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.default = exports.overload = exports.expandConfig = exports.globalRegistry = undefined;\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _quillDelta = __webpack_require__(/*! quill-delta */ \\\"./node_modules/quill-delta/lib/delta.js\\\");\\n\\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar Parchment = _interopRequireWildcard(_parchment);\\n\\nvar _extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\n\\nvar _extend2 = _interopRequireDefault(_extend);\\n\\nvar _editor = __webpack_require__(/*! ./editor */ \\\"./core/editor.js\\\");\\n\\nvar _editor2 = _interopRequireDefault(_editor);\\n\\nvar _emitter = __webpack_require__(/*! ./emitter */ \\\"./core/emitter.js\\\");\\n\\nvar _emitter2 = _interopRequireDefault(_emitter);\\n\\nvar _module = __webpack_require__(/*! ./module */ \\\"./core/module.js\\\");\\n\\nvar _module2 = _interopRequireDefault(_module);\\n\\nvar _selection = __webpack_require__(/*! ./selection */ \\\"./core/selection.js\\\");\\n\\nvar _selection2 = _interopRequireDefault(_selection);\\n\\nvar _instances = __webpack_require__(/*! ./instances */ \\\"./core/instances.js\\\");\\n\\nvar _instances2 = _interopRequireDefault(_instances);\\n\\nvar _logger = __webpack_require__(/*! ./logger */ \\\"./core/logger.js\\\");\\n\\nvar _logger2 = _interopRequireDefault(_logger);\\n\\nvar _theme = __webpack_require__(/*! ./theme */ \\\"./core/theme.js\\\");\\n\\nvar _theme2 = _interopRequireDefault(_theme);\\n\\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst debug = (0, _logger2.default)('quill');\\n\\nconst globalRegistry = new Parchment.Registry();\\n\\nclass Quill {\\n static debug(limit) {\\n if (limit === true) {\\n limit = 'log';\\n }\\n _logger2.default.level(limit);\\n }\\n\\n static find(node) {\\n return _instances2.default.get(node) || globalRegistry.find(node);\\n }\\n\\n static import(name) {\\n if (this.imports[name] == null) {\\n debug.error(`Cannot import ${name}. Are you sure it was registered?`);\\n }\\n return this.imports[name];\\n }\\n\\n static register(path, target, overwrite = false) {\\n if (typeof path !== 'string') {\\n const name = path.attrName || path.blotName;\\n if (typeof name === 'string') {\\n // register(Blot | Attributor, overwrite)\\n this.register(`formats/${name}`, path, target);\\n } else {\\n Object.keys(path).forEach(key => {\\n this.register(key, path[key], target);\\n });\\n }\\n } else {\\n if (this.imports[path] != null && !overwrite) {\\n debug.warn(`Overwriting ${path} with`, target);\\n }\\n this.imports[path] = target;\\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\\n globalRegistry.register(target);\\n }\\n if (typeof target.register === 'function') {\\n target.register(globalRegistry);\\n }\\n }\\n }\\n\\n constructor(container, options = {}) {\\n this.options = expandConfig(container, options);\\n this.container = this.options.container;\\n if (this.container == null) {\\n return debug.error('Invalid Quill container', container);\\n }\\n if (this.options.debug) {\\n Quill.debug(this.options.debug);\\n }\\n const html = this.container.innerHTML.trim();\\n this.container.classList.add('ql-container');\\n this.container.innerHTML = '';\\n _instances2.default.set(this.container, this);\\n this.root = this.addContainer('ql-editor');\\n this.root.addEventListener('dragstart', e => {\\n e.preventDefault();\\n });\\n this.root.classList.add('ql-blank');\\n this.root.setAttribute('data-gramm', false);\\n this.scrollingContainer = this.options.scrollingContainer || this.root;\\n this.emitter = new _emitter2.default();\\n const ScrollBlot = this.options.registry.query(Parchment.ScrollBlot.blotName);\\n this.scroll = new ScrollBlot(this.options.registry, this.root, {\\n emitter: this.emitter\\n });\\n this.editor = new _editor2.default(this.scroll);\\n this.selection = new _selection2.default(this.scroll, this.emitter);\\n this.theme = new this.options.theme(this, this.options); // eslint-disable-line new-cap\\n this.keyboard = this.theme.addModule('keyboard');\\n this.clipboard = this.theme.addModule('clipboard');\\n this.history = this.theme.addModule('history');\\n this.uploader = this.theme.addModule('uploader');\\n this.theme.init();\\n this.emitter.on(_emitter2.default.events.EDITOR_CHANGE, type => {\\n if (type === _emitter2.default.events.TEXT_CHANGE) {\\n this.root.classList.toggle('ql-blank', this.editor.isBlank());\\n }\\n });\\n this.emitter.on(_emitter2.default.events.SCROLL_UPDATE, (source, mutations) => {\\n const range = this.selection.lastRange;\\n const index = range && range.length === 0 ? range.index : undefined;\\n modify.call(this, () => this.editor.update(null, mutations, index), source);\\n });\\n const contents = this.clipboard.convert({\\n html: `${html}


    `,\\n text: '\\\\n'\\n });\\n this.setContents(contents);\\n this.history.clear();\\n if (this.options.placeholder) {\\n this.root.setAttribute('data-placeholder', this.options.placeholder);\\n }\\n if (this.options.readOnly) {\\n this.disable();\\n }\\n }\\n\\n addContainer(container, refNode = null) {\\n if (typeof container === 'string') {\\n const className = container;\\n container = document.createElement('div');\\n container.classList.add(className);\\n }\\n this.container.insertBefore(container, refNode);\\n return container;\\n }\\n\\n blur() {\\n this.selection.setRange(null);\\n }\\n\\n deleteText(index, length, source) {\\n var _overload = overload(index, length, source);\\n\\n var _overload2 = _slicedToArray(_overload, 4);\\n\\n index = _overload2[0];\\n length = _overload2[1];\\n source = _overload2[3];\\n\\n return modify.call(this, () => {\\n return this.editor.deleteText(index, length);\\n }, source, index, -1 * length);\\n }\\n\\n disable() {\\n this.enable(false);\\n }\\n\\n enable(enabled = true) {\\n this.scroll.enable(enabled);\\n this.container.classList.toggle('ql-disabled', !enabled);\\n }\\n\\n focus() {\\n const scrollTop = this.scrollingContainer.scrollTop;\\n\\n this.selection.focus();\\n this.scrollingContainer.scrollTop = scrollTop;\\n this.scrollIntoView();\\n }\\n\\n format(name, value, source = _emitter2.default.sources.API) {\\n return modify.call(this, () => {\\n const range = this.getSelection(true);\\n let change = new _quillDelta2.default();\\n if (range == null) {\\n return change;\\n } else if (this.scroll.query(name, Parchment.Scope.BLOCK)) {\\n change = this.editor.formatLine(range.index, range.length, {\\n [name]: value\\n });\\n } else if (range.length === 0) {\\n this.selection.format(name, value);\\n return change;\\n } else {\\n change = this.editor.formatText(range.index, range.length, {\\n [name]: value\\n });\\n }\\n this.setSelection(range, _emitter2.default.sources.SILENT);\\n return change;\\n }, source);\\n }\\n\\n formatLine(index, length, name, value, source) {\\n let formats;\\n // eslint-disable-next-line prefer-const\\n\\n var _overload3 = overload(index, length, name, value, source);\\n\\n var _overload4 = _slicedToArray(_overload3, 4);\\n\\n index = _overload4[0];\\n length = _overload4[1];\\n formats = _overload4[2];\\n source = _overload4[3];\\n\\n return modify.call(this, () => {\\n return this.editor.formatLine(index, length, formats);\\n }, source, index, 0);\\n }\\n\\n formatText(index, length, name, value, source) {\\n let formats;\\n // eslint-disable-next-line prefer-const\\n\\n var _overload5 = overload(index, length, name, value, source);\\n\\n var _overload6 = _slicedToArray(_overload5, 4);\\n\\n index = _overload6[0];\\n length = _overload6[1];\\n formats = _overload6[2];\\n source = _overload6[3];\\n\\n return modify.call(this, () => {\\n return this.editor.formatText(index, length, formats);\\n }, source, index, 0);\\n }\\n\\n getBounds(index, length = 0) {\\n let bounds;\\n if (typeof index === 'number') {\\n bounds = this.selection.getBounds(index, length);\\n } else {\\n bounds = this.selection.getBounds(index.index, index.length);\\n }\\n const containerBounds = this.container.getBoundingClientRect();\\n return {\\n bottom: bounds.bottom - containerBounds.top,\\n height: bounds.height,\\n left: bounds.left - containerBounds.left,\\n right: bounds.right - containerBounds.left,\\n top: bounds.top - containerBounds.top,\\n width: bounds.width\\n };\\n }\\n\\n getContents(index = 0, length = this.getLength() - index) {\\n var _overload7 = overload(index, length);\\n\\n var _overload8 = _slicedToArray(_overload7, 2);\\n\\n index = _overload8[0];\\n length = _overload8[1];\\n\\n return this.editor.getContents(index, length);\\n }\\n\\n getFormat(index = this.getSelection(true), length = 0) {\\n if (typeof index === 'number') {\\n return this.editor.getFormat(index, length);\\n }\\n return this.editor.getFormat(index.index, index.length);\\n }\\n\\n getIndex(blot) {\\n return blot.offset(this.scroll);\\n }\\n\\n getLength() {\\n return this.scroll.length();\\n }\\n\\n getLeaf(index) {\\n return this.scroll.leaf(index);\\n }\\n\\n getLine(index) {\\n return this.scroll.line(index);\\n }\\n\\n getLines(index = 0, length = Number.MAX_VALUE) {\\n if (typeof index !== 'number') {\\n return this.scroll.lines(index.index, index.length);\\n }\\n return this.scroll.lines(index, length);\\n }\\n\\n getModule(name) {\\n return this.theme.modules[name];\\n }\\n\\n getSelection(focus = false) {\\n if (focus) this.focus();\\n this.update(); // Make sure we access getRange with editor in consistent state\\n return this.selection.getRange()[0];\\n }\\n\\n getSemanticHTML(index = 0, length = this.getLength() - index) {\\n var _overload9 = overload(index, length);\\n\\n var _overload10 = _slicedToArray(_overload9, 2);\\n\\n index = _overload10[0];\\n length = _overload10[1];\\n\\n return this.editor.getHTML(index, length);\\n }\\n\\n getText(index = 0, length = this.getLength() - index) {\\n var _overload11 = overload(index, length);\\n\\n var _overload12 = _slicedToArray(_overload11, 2);\\n\\n index = _overload12[0];\\n length = _overload12[1];\\n\\n return this.editor.getText(index, length);\\n }\\n\\n hasFocus() {\\n return this.selection.hasFocus();\\n }\\n\\n insertEmbed(index, embed, value, source = Quill.sources.API) {\\n return modify.call(this, () => {\\n return this.editor.insertEmbed(index, embed, value);\\n }, source, index);\\n }\\n\\n insertText(index, text, name, value, source) {\\n let formats;\\n // eslint-disable-next-line prefer-const\\n\\n var _overload13 = overload(index, 0, name, value, source);\\n\\n var _overload14 = _slicedToArray(_overload13, 4);\\n\\n index = _overload14[0];\\n formats = _overload14[2];\\n source = _overload14[3];\\n\\n return modify.call(this, () => {\\n return this.editor.insertText(index, text, formats);\\n }, source, index, text.length);\\n }\\n\\n isEnabled() {\\n return !this.container.classList.contains('ql-disabled');\\n }\\n\\n off(...args) {\\n return this.emitter.off(...args);\\n }\\n\\n on(...args) {\\n return this.emitter.on(...args);\\n }\\n\\n once(...args) {\\n return this.emitter.once(...args);\\n }\\n\\n removeFormat(index, length, source) {\\n var _overload15 = overload(index, length, source);\\n\\n var _overload16 = _slicedToArray(_overload15, 4);\\n\\n index = _overload16[0];\\n length = _overload16[1];\\n source = _overload16[3];\\n\\n return modify.call(this, () => {\\n return this.editor.removeFormat(index, length);\\n }, source, index);\\n }\\n\\n scrollIntoView() {\\n this.selection.scrollIntoView(this.scrollingContainer);\\n }\\n\\n setContents(delta, source = _emitter2.default.sources.API) {\\n return modify.call(this, () => {\\n delta = new _quillDelta2.default(delta);\\n const length = this.getLength();\\n const deleted = this.editor.deleteText(0, length);\\n const applied = this.editor.applyDelta(delta);\\n const lastOp = applied.ops[applied.ops.length - 1];\\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\\\n') {\\n this.editor.deleteText(this.getLength() - 1, 1);\\n applied.delete(1);\\n }\\n return deleted.compose(applied);\\n }, source);\\n }\\n\\n setSelection(index, length, source) {\\n if (index == null) {\\n this.selection.setRange(null, length || Quill.sources.API);\\n } else {\\n var _overload17 = overload(index, length, source);\\n\\n var _overload18 = _slicedToArray(_overload17, 4);\\n\\n index = _overload18[0];\\n length = _overload18[1];\\n source = _overload18[3];\\n\\n this.selection.setRange(new _selection.Range(Math.max(0, index), length), source);\\n if (source !== _emitter2.default.sources.SILENT) {\\n this.selection.scrollIntoView(this.scrollingContainer);\\n }\\n }\\n }\\n\\n setText(text, source = _emitter2.default.sources.API) {\\n const delta = new _quillDelta2.default().insert(text);\\n return this.setContents(delta, source);\\n }\\n\\n update(source = _emitter2.default.sources.USER) {\\n const change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\\n this.selection.update(source);\\n // TODO this is usually undefined\\n return change;\\n }\\n\\n updateContents(delta, source = _emitter2.default.sources.API) {\\n return modify.call(this, () => {\\n delta = new _quillDelta2.default(delta);\\n return this.editor.applyDelta(delta, source);\\n }, source, true);\\n }\\n}\\nQuill.DEFAULTS = {\\n bounds: null,\\n modules: {},\\n placeholder: '',\\n readOnly: false,\\n registry: globalRegistry,\\n scrollingContainer: null,\\n theme: 'default'\\n};\\nQuill.events = _emitter2.default.events;\\nQuill.sources = _emitter2.default.sources;\\n// eslint-disable-next-line no-undef\\nQuill.version = false ? undefined : \\\"2.0.0-dev.2\\\";\\n\\nQuill.imports = {\\n delta: _quillDelta2.default,\\n parchment: Parchment,\\n 'core/module': _module2.default,\\n 'core/theme': _theme2.default\\n};\\n\\nfunction expandConfig(container, userConfig) {\\n userConfig = (0, _extend2.default)(true, {\\n container,\\n modules: {\\n clipboard: true,\\n keyboard: true,\\n history: true,\\n uploader: true\\n }\\n }, userConfig);\\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\\n userConfig.theme = _theme2.default;\\n } else {\\n userConfig.theme = Quill.import(`themes/${userConfig.theme}`);\\n if (userConfig.theme == null) {\\n throw new Error(`Invalid theme ${userConfig.theme}. Did you register it?`);\\n }\\n }\\n const themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\\n [themeConfig, userConfig].forEach(config => {\\n config.modules = config.modules || {};\\n Object.keys(config.modules).forEach(module => {\\n if (config.modules[module] === true) {\\n config.modules[module] = {};\\n }\\n });\\n });\\n const moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\\n const moduleConfig = moduleNames.reduce((config, name) => {\\n const moduleClass = Quill.import(`modules/${name}`);\\n if (moduleClass == null) {\\n debug.error(`Cannot load ${name} module. Are you sure you registered it?`);\\n } else {\\n config[name] = moduleClass.DEFAULTS || {};\\n }\\n return config;\\n }, {});\\n // Special case toolbar shorthand\\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\\n userConfig.modules.toolbar = {\\n container: userConfig.modules.toolbar\\n };\\n }\\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\\n ['bounds', 'container', 'scrollingContainer'].forEach(key => {\\n if (typeof userConfig[key] === 'string') {\\n userConfig[key] = document.querySelector(userConfig[key]);\\n }\\n });\\n userConfig.modules = Object.keys(userConfig.modules).reduce((config, name) => {\\n if (userConfig.modules[name]) {\\n config[name] = userConfig.modules[name];\\n }\\n return config;\\n }, {});\\n return userConfig;\\n}\\n\\n// Handle selection preservation and TEXT_CHANGE emission\\n// common to modification APIs\\nfunction modify(modifier, source, index, shift) {\\n if (!this.isEnabled() && source === _emitter2.default.sources.USER) {\\n return new _quillDelta2.default();\\n }\\n let range = index == null ? null : this.getSelection();\\n const oldDelta = this.editor.delta;\\n const change = modifier();\\n if (range != null) {\\n if (index === true) {\\n index = range.index; // eslint-disable-line prefer-destructuring\\n }\\n if (shift == null) {\\n range = shiftRange(range, change, source);\\n } else if (shift !== 0) {\\n range = shiftRange(range, index, shift, source);\\n }\\n this.setSelection(range, _emitter2.default.sources.SILENT);\\n }\\n if (change.length() > 0) {\\n const args = [_emitter2.default.events.TEXT_CHANGE, change, oldDelta, source];\\n this.emitter.emit(_emitter2.default.events.EDITOR_CHANGE, ...args);\\n if (source !== _emitter2.default.sources.SILENT) {\\n this.emitter.emit(...args);\\n }\\n }\\n return change;\\n}\\n\\nfunction overload(index, length, name, value, source) {\\n let formats = {};\\n if (typeof index.index === 'number' && typeof index.length === 'number') {\\n // Allow for throwaway end (used by insertText/insertEmbed)\\n if (typeof length !== 'number') {\\n source = value;\\n value = name;\\n name = length;\\n length = index.length; // eslint-disable-line prefer-destructuring\\n index = index.index; // eslint-disable-line prefer-destructuring\\n } else {\\n length = index.length; // eslint-disable-line prefer-destructuring\\n index = index.index; // eslint-disable-line prefer-destructuring\\n }\\n } else if (typeof length !== 'number') {\\n source = value;\\n value = name;\\n name = length;\\n length = 0;\\n }\\n // Handle format being object, two format name/value strings or excluded\\n if (typeof name === 'object') {\\n formats = name;\\n source = value;\\n } else if (typeof name === 'string') {\\n if (value != null) {\\n formats[name] = value;\\n } else {\\n source = name;\\n }\\n }\\n // Handle optional source\\n source = source || _emitter2.default.sources.API;\\n return [index, length, formats, source];\\n}\\n\\nfunction shiftRange(range, index, length, source) {\\n if (range == null) return null;\\n let start;\\n let end;\\n if (index instanceof _quillDelta2.default) {\\n var _map = [range.index, range.index + range.length].map(pos => index.transformPosition(pos, source !== _emitter2.default.sources.USER));\\n\\n var _map2 = _slicedToArray(_map, 2);\\n\\n start = _map2[0];\\n end = _map2[1];\\n } else {\\n var _map3 = [range.index, range.index + range.length].map(pos => {\\n if (pos < index || pos === index && source === _emitter2.default.sources.USER) return pos;\\n if (length >= 0) {\\n return pos + length;\\n }\\n return Math.max(index, pos + length);\\n });\\n\\n var _map4 = _slicedToArray(_map3, 2);\\n\\n start = _map4[0];\\n end = _map4[1];\\n }\\n return new _selection.Range(start, end - start);\\n}\\n\\nexports.globalRegistry = globalRegistry;\\nexports.expandConfig = expandConfig;\\nexports.overload = overload;\\nexports.default = Quill;\\n\\n//# sourceURL=webpack://Quill/./core/quill.js?\");\n\n/***/ }),\n\n/***/ \"./core/selection.js\":\n/*!***************************!*\\\n !*** ./core/selection.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.default = exports.Range = undefined;\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _clone = __webpack_require__(/*! clone */ \\\"./node_modules/clone/clone.js\\\");\\n\\nvar _clone2 = _interopRequireDefault(_clone);\\n\\nvar _deepEqual = __webpack_require__(/*! deep-equal */ \\\"./node_modules/deep-equal/index.js\\\");\\n\\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\\n\\nvar _emitter = __webpack_require__(/*! ./emitter */ \\\"./core/emitter.js\\\");\\n\\nvar _emitter2 = _interopRequireDefault(_emitter);\\n\\nvar _logger = __webpack_require__(/*! ./logger */ \\\"./core/logger.js\\\");\\n\\nvar _logger2 = _interopRequireDefault(_logger);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst debug = (0, _logger2.default)('quill:selection');\\n\\nclass Range {\\n constructor(index, length = 0) {\\n this.index = index;\\n this.length = length;\\n }\\n}\\n\\nclass Selection {\\n constructor(scroll, emitter) {\\n this.emitter = emitter;\\n this.scroll = scroll;\\n this.composing = false;\\n this.mouseDown = false;\\n this.root = this.scroll.domNode;\\n this.cursor = this.scroll.create('cursor', this);\\n // savedRange is last non-null range\\n this.savedRange = new Range(0, 0);\\n this.lastRange = this.savedRange;\\n this.handleComposition();\\n this.handleDragging();\\n this.emitter.listenDOM('selectionchange', document, () => {\\n if (!this.mouseDown) {\\n setTimeout(this.update.bind(this, _emitter2.default.sources.USER), 1);\\n }\\n });\\n this.emitter.on(_emitter2.default.events.SCROLL_BEFORE_UPDATE, () => {\\n if (!this.hasFocus()) return;\\n const native = this.getNativeRange();\\n if (native == null) return;\\n if (native.start.node === this.cursor.textNode) return; // cursor.restore() will handle\\n this.emitter.once(_emitter2.default.events.SCROLL_UPDATE, () => {\\n try {\\n this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\\n this.update(_emitter2.default.sources.SILENT);\\n } catch (ignored) {\\n // ignore\\n }\\n });\\n });\\n this.emitter.on(_emitter2.default.events.SCROLL_OPTIMIZE, (mutations, context) => {\\n if (context.range) {\\n var _context$range = context.range;\\n const startNode = _context$range.startNode,\\n startOffset = _context$range.startOffset,\\n endNode = _context$range.endNode,\\n endOffset = _context$range.endOffset;\\n\\n this.setNativeRange(startNode, startOffset, endNode, endOffset);\\n this.update(_emitter2.default.sources.SILENT);\\n }\\n });\\n this.update(_emitter2.default.sources.SILENT);\\n }\\n\\n handleComposition() {\\n this.root.addEventListener('compositionstart', () => {\\n this.composing = true;\\n });\\n this.root.addEventListener('compositionend', () => {\\n this.composing = false;\\n if (this.cursor.parent) {\\n const range = this.cursor.restore();\\n if (!range) return;\\n setTimeout(() => {\\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\\n }, 1);\\n }\\n });\\n }\\n\\n handleDragging() {\\n this.emitter.listenDOM('mousedown', document.body, () => {\\n this.mouseDown = true;\\n });\\n this.emitter.listenDOM('mouseup', document.body, () => {\\n this.mouseDown = false;\\n this.update(_emitter2.default.sources.USER);\\n });\\n }\\n\\n focus() {\\n if (this.hasFocus()) return;\\n this.root.focus();\\n this.setRange(this.savedRange);\\n }\\n\\n format(format, value) {\\n this.scroll.update();\\n const nativeRange = this.getNativeRange();\\n if (nativeRange == null || !nativeRange.native.collapsed || this.scroll.query(format, _parchment.Scope.BLOCK)) return;\\n if (nativeRange.start.node !== this.cursor.textNode) {\\n const blot = this.scroll.find(nativeRange.start.node, false);\\n if (blot == null) return;\\n // TODO Give blot ability to not split\\n if (blot instanceof _parchment.LeafBlot) {\\n const after = blot.split(nativeRange.start.offset);\\n blot.parent.insertBefore(this.cursor, after);\\n } else {\\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\\n }\\n this.cursor.attach();\\n }\\n this.cursor.format(format, value);\\n this.scroll.optimize();\\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\\n this.update();\\n }\\n\\n getBounds(index, length = 0) {\\n const scrollLength = this.scroll.length();\\n index = Math.min(index, scrollLength - 1);\\n length = Math.min(index + length, scrollLength - 1) - index;\\n let node;\\n\\n var _scroll$leaf = this.scroll.leaf(index),\\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2);\\n\\n let leaf = _scroll$leaf2[0],\\n offset = _scroll$leaf2[1];\\n\\n if (leaf == null) return null;\\n\\n var _leaf$position = leaf.position(offset, true);\\n\\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\\n\\n node = _leaf$position2[0];\\n offset = _leaf$position2[1];\\n\\n const range = document.createRange();\\n if (length > 0) {\\n range.setStart(node, offset);\\n\\n var _scroll$leaf3 = this.scroll.leaf(index + length);\\n\\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\\n\\n leaf = _scroll$leaf4[0];\\n offset = _scroll$leaf4[1];\\n\\n if (leaf == null) return null;\\n\\n var _leaf$position3 = leaf.position(offset, true);\\n\\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\\n\\n node = _leaf$position4[0];\\n offset = _leaf$position4[1];\\n\\n range.setEnd(node, offset);\\n return range.getBoundingClientRect();\\n }\\n let side = 'left';\\n let rect;\\n if (node instanceof Text) {\\n if (offset < node.data.length) {\\n range.setStart(node, offset);\\n range.setEnd(node, offset + 1);\\n } else {\\n range.setStart(node, offset - 1);\\n range.setEnd(node, offset);\\n side = 'right';\\n }\\n rect = range.getBoundingClientRect();\\n } else {\\n rect = leaf.domNode.getBoundingClientRect();\\n if (offset > 0) side = 'right';\\n }\\n return {\\n bottom: rect.top + rect.height,\\n height: rect.height,\\n left: rect[side],\\n right: rect[side],\\n top: rect.top,\\n width: 0\\n };\\n }\\n\\n getNativeRange() {\\n const selection = document.getSelection();\\n if (selection == null || selection.rangeCount <= 0) return null;\\n const nativeRange = selection.getRangeAt(0);\\n if (nativeRange == null) return null;\\n const range = this.normalizeNative(nativeRange);\\n debug.info('getNativeRange', range);\\n return range;\\n }\\n\\n getRange() {\\n const normalized = this.getNativeRange();\\n if (normalized == null) return [null, null];\\n const range = this.normalizedToRange(normalized);\\n return [range, normalized];\\n }\\n\\n hasFocus() {\\n return document.activeElement === this.root || contains(this.root, document.activeElement);\\n }\\n\\n normalizedToRange(range) {\\n const positions = [[range.start.node, range.start.offset]];\\n if (!range.native.collapsed) {\\n positions.push([range.end.node, range.end.offset]);\\n }\\n const indexes = positions.map(position => {\\n var _position = _slicedToArray(position, 2);\\n\\n const node = _position[0],\\n offset = _position[1];\\n\\n const blot = this.scroll.find(node, true);\\n const index = blot.offset(this.scroll);\\n if (offset === 0) {\\n return index;\\n } else if (blot instanceof _parchment.ContainerBlot) {\\n return index + blot.length();\\n }\\n return index + blot.index(node, offset);\\n });\\n const end = Math.min(Math.max(...indexes), this.scroll.length() - 1);\\n const start = Math.min(end, ...indexes);\\n return new Range(start, end - start);\\n }\\n\\n normalizeNative(nativeRange) {\\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\\n return null;\\n }\\n const range = {\\n start: {\\n node: nativeRange.startContainer,\\n offset: nativeRange.startOffset\\n },\\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\\n native: nativeRange\\n };\\n [range.start, range.end].forEach(position => {\\n let node = position.node,\\n offset = position.offset;\\n\\n while (!(node instanceof Text) && node.childNodes.length > 0) {\\n if (node.childNodes.length > offset) {\\n node = node.childNodes[offset];\\n offset = 0;\\n } else if (node.childNodes.length === offset) {\\n node = node.lastChild;\\n if (node instanceof Text) {\\n offset = node.data.length;\\n } else if (node.childNodes.length > 0) {\\n // Container case\\n offset = node.childNodes.length;\\n } else {\\n // Embed case\\n offset = node.childNodes.length + 1;\\n }\\n } else {\\n break;\\n }\\n }\\n position.node = node;\\n position.offset = offset;\\n });\\n return range;\\n }\\n\\n rangeToNative(range) {\\n const indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\\n const args = [];\\n const scrollLength = this.scroll.length();\\n indexes.forEach((index, i) => {\\n index = Math.min(scrollLength - 1, index);\\n\\n var _scroll$leaf5 = this.scroll.leaf(index),\\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2);\\n\\n const leaf = _scroll$leaf6[0],\\n leafOffset = _scroll$leaf6[1];\\n\\n var _leaf$position5 = leaf.position(leafOffset, i !== 0),\\n _leaf$position6 = _slicedToArray(_leaf$position5, 2);\\n\\n const node = _leaf$position6[0],\\n offset = _leaf$position6[1];\\n\\n args.push(node, offset);\\n });\\n if (args.length < 2) {\\n return args.concat(args);\\n }\\n return args;\\n }\\n\\n scrollIntoView(scrollingContainer) {\\n const range = this.lastRange;\\n if (range == null) return;\\n const bounds = this.getBounds(range.index, range.length);\\n if (bounds == null) return;\\n const limit = this.scroll.length() - 1;\\n\\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\\n _scroll$line2 = _slicedToArray(_scroll$line, 1);\\n\\n const first = _scroll$line2[0];\\n\\n let last = first;\\n if (range.length > 0) {\\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\\n\\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\\n\\n last = _scroll$line4[0];\\n }\\n if (first == null || last == null) return;\\n const scrollBounds = scrollingContainer.getBoundingClientRect();\\n if (bounds.top < scrollBounds.top) {\\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\\n } else if (bounds.bottom > scrollBounds.bottom) {\\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\\n }\\n }\\n\\n setNativeRange(startNode, startOffset, endNode = startNode, endOffset = startOffset, force = false) {\\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\\n return;\\n }\\n const selection = document.getSelection();\\n if (selection == null) return;\\n if (startNode != null) {\\n if (!this.hasFocus()) this.root.focus();\\n\\n var _ref = this.getNativeRange() || {};\\n\\n const native = _ref.native;\\n\\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\\n if (startNode.tagName === 'BR') {\\n startOffset = Array.from(startNode.parentNode.childNodes).indexOf(startNode);\\n startNode = startNode.parentNode;\\n }\\n if (endNode.tagName === 'BR') {\\n endOffset = Array.from(endNode.parentNode.childNodes).indexOf(endNode);\\n endNode = endNode.parentNode;\\n }\\n const range = document.createRange();\\n range.setStart(startNode, startOffset);\\n range.setEnd(endNode, endOffset);\\n selection.removeAllRanges();\\n selection.addRange(range);\\n }\\n } else {\\n selection.removeAllRanges();\\n this.root.blur();\\n }\\n }\\n\\n setRange(range, force = false, source = _emitter2.default.sources.API) {\\n if (typeof force === 'string') {\\n source = force;\\n force = false;\\n }\\n debug.info('setRange', range);\\n if (range != null) {\\n const args = this.rangeToNative(range);\\n this.setNativeRange(...args, force);\\n } else {\\n this.setNativeRange(null);\\n }\\n this.update(source);\\n }\\n\\n update(source = _emitter2.default.sources.USER) {\\n const oldRange = this.lastRange;\\n\\n var _getRange = this.getRange(),\\n _getRange2 = _slicedToArray(_getRange, 2);\\n\\n const lastRange = _getRange2[0],\\n nativeRange = _getRange2[1];\\n\\n this.lastRange = lastRange;\\n if (this.lastRange != null) {\\n this.savedRange = this.lastRange;\\n }\\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\\n this.cursor.restore();\\n }\\n const args = [_emitter2.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\\n this.emitter.emit(_emitter2.default.events.EDITOR_CHANGE, ...args);\\n if (source !== _emitter2.default.sources.SILENT) {\\n this.emitter.emit(...args);\\n }\\n }\\n }\\n}\\n\\nfunction contains(parent, descendant) {\\n try {\\n // Firefox inserts inaccessible nodes around video elements\\n descendant.parentNode; // eslint-disable-line no-unused-expressions\\n } catch (e) {\\n return false;\\n }\\n return parent.contains(descendant);\\n}\\n\\nexports.Range = Range;\\nexports.default = Selection;\\n\\n//# sourceURL=webpack://Quill/./core/selection.js?\");\n\n/***/ }),\n\n/***/ \"./core/theme.js\":\n/*!***********************!*\\\n !*** ./core/theme.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nclass Theme {\\n constructor(quill, options) {\\n this.quill = quill;\\n this.options = options;\\n this.modules = {};\\n }\\n\\n init() {\\n Object.keys(this.options.modules).forEach(name => {\\n if (this.modules[name] == null) {\\n this.addModule(name);\\n }\\n });\\n }\\n\\n addModule(name) {\\n const ModuleClass = this.quill.constructor.import(`modules/${name}`);\\n this.modules[name] = new ModuleClass(this.quill, this.options.modules[name] || {});\\n return this.modules[name];\\n }\\n}\\nTheme.DEFAULTS = {\\n modules: {}\\n};\\nTheme.themes = {\\n default: Theme\\n};\\n\\nexports.default = Theme;\\n\\n//# sourceURL=webpack://Quill/./core/theme.js?\");\n\n/***/ }),\n\n/***/ \"./formats/align.js\":\n/*!**************************!*\\\n !*** ./formats/align.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nconst config = {\\n scope: _parchment.Scope.BLOCK,\\n whitelist: ['right', 'center', 'justify']\\n};\\n\\nconst AlignAttribute = new _parchment.Attributor('align', 'align', config);\\nconst AlignClass = new _parchment.ClassAttributor('align', 'ql-align', config);\\nconst AlignStyle = new _parchment.StyleAttributor('align', 'text-align', config);\\n\\nexports.AlignAttribute = AlignAttribute;\\nexports.AlignClass = AlignClass;\\nexports.AlignStyle = AlignStyle;\\n\\n//# sourceURL=webpack://Quill/./formats/align.js?\");\n\n/***/ }),\n\n/***/ \"./formats/background.js\":\n/*!*******************************!*\\\n !*** ./formats/background.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _color = __webpack_require__(/*! ./color */ \\\"./formats/color.js\\\");\\n\\nconst BackgroundClass = new _parchment.ClassAttributor('background', 'ql-bg', {\\n scope: _parchment.Scope.INLINE\\n});\\nconst BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\\n scope: _parchment.Scope.INLINE\\n});\\n\\nexports.BackgroundClass = BackgroundClass;\\nexports.BackgroundStyle = BackgroundStyle;\\n\\n//# sourceURL=webpack://Quill/./formats/background.js?\");\n\n/***/ }),\n\n/***/ \"./formats/blockquote.js\":\n/*!*******************************!*\\\n !*** ./formats/blockquote.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _block = __webpack_require__(/*! ../blots/block */ \\\"./blots/block.js\\\");\\n\\nvar _block2 = _interopRequireDefault(_block);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Blockquote extends _block2.default {}\\nBlockquote.blotName = 'blockquote';\\nBlockquote.tagName = 'blockquote';\\n\\nexports.default = Blockquote;\\n\\n//# sourceURL=webpack://Quill/./formats/blockquote.js?\");\n\n/***/ }),\n\n/***/ \"./formats/bold.js\":\n/*!*************************!*\\\n !*** ./formats/bold.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _inline = __webpack_require__(/*! ../blots/inline */ \\\"./blots/inline.js\\\");\\n\\nvar _inline2 = _interopRequireDefault(_inline);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Bold extends _inline2.default {\\n static create() {\\n return super.create();\\n }\\n\\n static formats() {\\n return true;\\n }\\n\\n optimize(context) {\\n super.optimize(context);\\n if (this.domNode.tagName !== this.statics.tagName[0]) {\\n this.replaceWith(this.statics.blotName);\\n }\\n }\\n}\\nBold.blotName = 'bold';\\nBold.tagName = ['STRONG', 'B'];\\n\\nexports.default = Bold;\\n\\n//# sourceURL=webpack://Quill/./formats/bold.js?\");\n\n/***/ }),\n\n/***/ \"./formats/code.js\":\n/*!*************************!*\\\n !*** ./formats/code.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.default = exports.CodeBlockContainer = exports.Code = undefined;\\n\\nvar _block = __webpack_require__(/*! ../blots/block */ \\\"./blots/block.js\\\");\\n\\nvar _block2 = _interopRequireDefault(_block);\\n\\nvar _break = __webpack_require__(/*! ../blots/break */ \\\"./blots/break.js\\\");\\n\\nvar _break2 = _interopRequireDefault(_break);\\n\\nvar _cursor = __webpack_require__(/*! ../blots/cursor */ \\\"./blots/cursor.js\\\");\\n\\nvar _cursor2 = _interopRequireDefault(_cursor);\\n\\nvar _inline = __webpack_require__(/*! ../blots/inline */ \\\"./blots/inline.js\\\");\\n\\nvar _inline2 = _interopRequireDefault(_inline);\\n\\nvar _text = __webpack_require__(/*! ../blots/text */ \\\"./blots/text.js\\\");\\n\\nvar _text2 = _interopRequireDefault(_text);\\n\\nvar _container = __webpack_require__(/*! ../blots/container */ \\\"./blots/container.js\\\");\\n\\nvar _container2 = _interopRequireDefault(_container);\\n\\nvar _quill = __webpack_require__(/*! ../core/quill */ \\\"./core/quill.js\\\");\\n\\nvar _quill2 = _interopRequireDefault(_quill);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass CodeBlockContainer extends _container2.default {\\n static create(value) {\\n const domNode = super.create(value);\\n domNode.setAttribute('spellcheck', false);\\n return domNode;\\n }\\n\\n html(index, length) {\\n const html = this.domNode.innerText.slice(index, index + length);\\n return `
    ${html}
    `;\\n }\\n}\\n\\nclass CodeBlock extends _block2.default {\\n static register() {\\n _quill2.default.register(CodeBlockContainer);\\n }\\n}\\n\\nclass Code extends _inline2.default {}\\nCode.blotName = 'code';\\nCode.tagName = 'CODE';\\n\\nCodeBlock.blotName = 'code-block';\\nCodeBlock.className = 'ql-code-block';\\nCodeBlock.tagName = 'DIV';\\nCodeBlockContainer.blotName = 'code-block-container';\\nCodeBlockContainer.className = 'ql-code-block-container';\\nCodeBlockContainer.tagName = 'DIV';\\n\\nCodeBlockContainer.allowedChildren = [CodeBlock];\\n\\nCodeBlock.allowedChildren = [_text2.default, _break2.default, _cursor2.default];\\nCodeBlock.requiredContainer = CodeBlockContainer;\\nCodeBlock.TAB = ' ';\\n\\nexports.Code = Code;\\nexports.CodeBlockContainer = CodeBlockContainer;\\nexports.default = CodeBlock;\\n\\n//# sourceURL=webpack://Quill/./formats/code.js?\");\n\n/***/ }),\n\n/***/ \"./formats/color.js\":\n/*!**************************!*\\\n !*** ./formats/color.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nclass ColorAttributor extends _parchment.StyleAttributor {\\n value(domNode) {\\n let value = super.value(domNode);\\n if (!value.startsWith('rgb(')) return value;\\n value = value.replace(/^[^\\\\d]+/, '').replace(/[^\\\\d]+$/, '');\\n const hex = value.split(',').map(component => `00${parseInt(component, 10).toString(16)}`.slice(-2)).join('');\\n return `#${hex}`;\\n }\\n}\\n\\nconst ColorClass = new _parchment.ClassAttributor('color', 'ql-color', {\\n scope: _parchment.Scope.INLINE\\n});\\nconst ColorStyle = new ColorAttributor('color', 'color', {\\n scope: _parchment.Scope.INLINE\\n});\\n\\nexports.ColorAttributor = ColorAttributor;\\nexports.ColorClass = ColorClass;\\nexports.ColorStyle = ColorStyle;\\n\\n//# sourceURL=webpack://Quill/./formats/color.js?\");\n\n/***/ }),\n\n/***/ \"./formats/direction.js\":\n/*!******************************!*\\\n !*** ./formats/direction.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nconst config = {\\n scope: _parchment.Scope.BLOCK,\\n whitelist: ['rtl']\\n};\\n\\nconst DirectionAttribute = new _parchment.Attributor('direction', 'dir', config);\\nconst DirectionClass = new _parchment.ClassAttributor('direction', 'ql-direction', config);\\nconst DirectionStyle = new _parchment.StyleAttributor('direction', 'direction', config);\\n\\nexports.DirectionAttribute = DirectionAttribute;\\nexports.DirectionClass = DirectionClass;\\nexports.DirectionStyle = DirectionStyle;\\n\\n//# sourceURL=webpack://Quill/./formats/direction.js?\");\n\n/***/ }),\n\n/***/ \"./formats/font.js\":\n/*!*************************!*\\\n !*** ./formats/font.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.FontClass = exports.FontStyle = undefined;\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nconst config = {\\n scope: _parchment.Scope.INLINE,\\n whitelist: ['serif', 'monospace']\\n};\\n\\nconst FontClass = new _parchment.ClassAttributor('font', 'ql-font', config);\\n\\nclass FontStyleAttributor extends _parchment.StyleAttributor {\\n value(node) {\\n return super.value(node).replace(/[\\\"']/g, '');\\n }\\n}\\n\\nconst FontStyle = new FontStyleAttributor('font', 'font-family', config);\\n\\nexports.FontStyle = FontStyle;\\nexports.FontClass = FontClass;\\n\\n//# sourceURL=webpack://Quill/./formats/font.js?\");\n\n/***/ }),\n\n/***/ \"./formats/formula.js\":\n/*!****************************!*\\\n !*** ./formats/formula.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _embed = __webpack_require__(/*! ../blots/embed */ \\\"./blots/embed.js\\\");\\n\\nvar _embed2 = _interopRequireDefault(_embed);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Formula extends _embed2.default {\\n static create(value) {\\n if (window.katex == null) {\\n throw new Error('Formula module requires KaTeX.');\\n }\\n const node = super.create(value);\\n if (typeof value === 'string') {\\n window.katex.render(value, node, {\\n throwOnError: false,\\n errorColor: '#f00'\\n });\\n node.setAttribute('data-value', value);\\n }\\n return node;\\n }\\n\\n static value(domNode) {\\n return domNode.getAttribute('data-value');\\n }\\n\\n html() {\\n var _value = this.value();\\n\\n const formula = _value.formula;\\n\\n return `${formula}`;\\n }\\n}\\nFormula.blotName = 'formula';\\nFormula.className = 'ql-formula';\\nFormula.tagName = 'SPAN';\\n\\nexports.default = Formula;\\n\\n//# sourceURL=webpack://Quill/./formats/formula.js?\");\n\n/***/ }),\n\n/***/ \"./formats/header.js\":\n/*!***************************!*\\\n !*** ./formats/header.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _block = __webpack_require__(/*! ../blots/block */ \\\"./blots/block.js\\\");\\n\\nvar _block2 = _interopRequireDefault(_block);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Header extends _block2.default {\\n static formats(domNode) {\\n return this.tagName.indexOf(domNode.tagName) + 1;\\n }\\n}\\nHeader.blotName = 'header';\\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\\n\\nexports.default = Header;\\n\\n//# sourceURL=webpack://Quill/./formats/header.js?\");\n\n/***/ }),\n\n/***/ \"./formats/image.js\":\n/*!**************************!*\\\n !*** ./formats/image.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _link = __webpack_require__(/*! ../formats/link */ \\\"./formats/link.js\\\");\\n\\nconst ATTRIBUTES = ['alt', 'height', 'width'];\\n\\nclass Image extends _parchment.EmbedBlot {\\n static create(value) {\\n const node = super.create(value);\\n if (typeof value === 'string') {\\n node.setAttribute('src', this.sanitize(value));\\n }\\n return node;\\n }\\n\\n static formats(domNode) {\\n return ATTRIBUTES.reduce((formats, attribute) => {\\n if (domNode.hasAttribute(attribute)) {\\n formats[attribute] = domNode.getAttribute(attribute);\\n }\\n return formats;\\n }, {});\\n }\\n\\n static match(url) {\\n return (/\\\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\\\/.+;base64/.test(url)\\n );\\n }\\n\\n static register() {\\n if (/Firefox/i.test(navigator.userAgent)) {\\n setTimeout(() => {\\n // Disable image resizing in Firefox\\n document.execCommand('enableObjectResizing', false, false);\\n }, 1);\\n }\\n }\\n\\n static sanitize(url) {\\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\\n }\\n\\n static value(domNode) {\\n return domNode.getAttribute('src');\\n }\\n\\n format(name, value) {\\n if (ATTRIBUTES.indexOf(name) > -1) {\\n if (value) {\\n this.domNode.setAttribute(name, value);\\n } else {\\n this.domNode.removeAttribute(name);\\n }\\n } else {\\n super.format(name, value);\\n }\\n }\\n}\\nImage.blotName = 'image';\\nImage.tagName = 'IMG';\\n\\nexports.default = Image;\\n\\n//# sourceURL=webpack://Quill/./formats/image.js?\");\n\n/***/ }),\n\n/***/ \"./formats/indent.js\":\n/*!***************************!*\\\n !*** ./formats/indent.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nclass IndentAttributor extends _parchment.ClassAttributor {\\n add(node, value) {\\n if (value === '+1' || value === '-1') {\\n const indent = this.value(node) || 0;\\n value = value === '+1' ? indent + 1 : indent - 1;\\n }\\n if (value === 0) {\\n this.remove(node);\\n return true;\\n }\\n return super.add(node, value);\\n }\\n\\n canAdd(node, value) {\\n return super.canAdd(node, value) || super.canAdd(node, parseInt(value, 10));\\n }\\n\\n value(node) {\\n return parseInt(super.value(node), 10) || undefined; // Don't return NaN\\n }\\n}\\n\\nconst IndentClass = new IndentAttributor('indent', 'ql-indent', {\\n scope: _parchment.Scope.BLOCK,\\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\\n});\\n\\nexports.default = IndentClass;\\n\\n//# sourceURL=webpack://Quill/./formats/indent.js?\");\n\n/***/ }),\n\n/***/ \"./formats/italic.js\":\n/*!***************************!*\\\n !*** ./formats/italic.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _bold = __webpack_require__(/*! ./bold */ \\\"./formats/bold.js\\\");\\n\\nvar _bold2 = _interopRequireDefault(_bold);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Italic extends _bold2.default {}\\nItalic.blotName = 'italic';\\nItalic.tagName = ['EM', 'I'];\\n\\nexports.default = Italic;\\n\\n//# sourceURL=webpack://Quill/./formats/italic.js?\");\n\n/***/ }),\n\n/***/ \"./formats/link.js\":\n/*!*************************!*\\\n !*** ./formats/link.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.sanitize = exports.default = undefined;\\n\\nvar _inline = __webpack_require__(/*! ../blots/inline */ \\\"./blots/inline.js\\\");\\n\\nvar _inline2 = _interopRequireDefault(_inline);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Link extends _inline2.default {\\n static create(value) {\\n const node = super.create(value);\\n node.setAttribute('href', this.sanitize(value));\\n node.setAttribute('target', '_blank');\\n return node;\\n }\\n\\n static formats(domNode) {\\n return domNode.getAttribute('href');\\n }\\n\\n static sanitize(url) {\\n return sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\\n }\\n\\n format(name, value) {\\n if (name !== this.statics.blotName || !value) {\\n super.format(name, value);\\n } else {\\n this.domNode.setAttribute('href', this.constructor.sanitize(value));\\n }\\n }\\n}\\nLink.blotName = 'link';\\nLink.tagName = 'A';\\nLink.SANITIZED_URL = 'about:blank';\\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\\n\\nfunction sanitize(url, protocols) {\\n const anchor = document.createElement('a');\\n anchor.href = url;\\n const protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\\n return protocols.indexOf(protocol) > -1;\\n}\\n\\nexports.default = Link;\\nexports.sanitize = sanitize;\\n\\n//# sourceURL=webpack://Quill/./formats/link.js?\");\n\n/***/ }),\n\n/***/ \"./formats/list.js\":\n/*!*************************!*\\\n !*** ./formats/list.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.default = exports.ListContainer = undefined;\\n\\nvar _block = __webpack_require__(/*! ../blots/block */ \\\"./blots/block.js\\\");\\n\\nvar _block2 = _interopRequireDefault(_block);\\n\\nvar _container = __webpack_require__(/*! ../blots/container */ \\\"./blots/container.js\\\");\\n\\nvar _container2 = _interopRequireDefault(_container);\\n\\nvar _quill = __webpack_require__(/*! ../core/quill */ \\\"./core/quill.js\\\");\\n\\nvar _quill2 = _interopRequireDefault(_quill);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass ListContainer extends _container2.default {}\\nListContainer.blotName = 'list-container';\\nListContainer.tagName = 'OL';\\n\\nclass ListItem extends _block2.default {\\n static create(value) {\\n const node = super.create();\\n node.setAttribute('data-list', value);\\n return node;\\n }\\n\\n static formats(domNode) {\\n return domNode.getAttribute('data-list') || undefined;\\n }\\n\\n static register() {\\n _quill2.default.register(ListContainer);\\n }\\n\\n constructor(scroll, domNode) {\\n super(scroll, domNode);\\n const listEventHandler = e => {\\n if (e.target !== domNode) return;\\n const format = this.statics.formats(domNode, scroll);\\n if (format === 'checked') {\\n this.format('list', 'unchecked');\\n } else if (format === 'unchecked') {\\n this.format('list', 'checked');\\n }\\n };\\n domNode.addEventListener('touchstart', listEventHandler);\\n domNode.addEventListener('mousedown', listEventHandler);\\n }\\n\\n format(name, value) {\\n if (name === this.statics.blotName && value) {\\n this.domNode.setAttribute('data-list', value);\\n } else {\\n super.format(name, value);\\n }\\n }\\n}\\nListItem.blotName = 'list';\\nListItem.tagName = 'LI';\\n\\nListContainer.allowedChildren = [ListItem];\\nListItem.requiredContainer = ListContainer;\\n\\nexports.ListContainer = ListContainer;\\nexports.default = ListItem;\\n\\n//# sourceURL=webpack://Quill/./formats/list.js?\");\n\n/***/ }),\n\n/***/ \"./formats/script.js\":\n/*!***************************!*\\\n !*** ./formats/script.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _inline = __webpack_require__(/*! ../blots/inline */ \\\"./blots/inline.js\\\");\\n\\nvar _inline2 = _interopRequireDefault(_inline);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Script extends _inline2.default {\\n static create(value) {\\n if (value === 'super') {\\n return document.createElement('sup');\\n } else if (value === 'sub') {\\n return document.createElement('sub');\\n }\\n return super.create(value);\\n }\\n\\n static formats(domNode) {\\n if (domNode.tagName === 'SUB') return 'sub';\\n if (domNode.tagName === 'SUP') return 'super';\\n return undefined;\\n }\\n}\\nScript.blotName = 'script';\\nScript.tagName = ['SUB', 'SUP'];\\n\\nexports.default = Script;\\n\\n//# sourceURL=webpack://Quill/./formats/script.js?\");\n\n/***/ }),\n\n/***/ \"./formats/size.js\":\n/*!*************************!*\\\n !*** ./formats/size.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.SizeStyle = exports.SizeClass = undefined;\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nconst SizeClass = new _parchment.ClassAttributor('size', 'ql-size', {\\n scope: _parchment.Scope.INLINE,\\n whitelist: ['small', 'large', 'huge']\\n});\\nconst SizeStyle = new _parchment.StyleAttributor('size', 'font-size', {\\n scope: _parchment.Scope.INLINE,\\n whitelist: ['10px', '18px', '32px']\\n});\\n\\nexports.SizeClass = SizeClass;\\nexports.SizeStyle = SizeStyle;\\n\\n//# sourceURL=webpack://Quill/./formats/size.js?\");\n\n/***/ }),\n\n/***/ \"./formats/strike.js\":\n/*!***************************!*\\\n !*** ./formats/strike.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _inline = __webpack_require__(/*! ../blots/inline */ \\\"./blots/inline.js\\\");\\n\\nvar _inline2 = _interopRequireDefault(_inline);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Strike extends _inline2.default {}\\nStrike.blotName = 'strike';\\nStrike.tagName = 'S';\\n\\nexports.default = Strike;\\n\\n//# sourceURL=webpack://Quill/./formats/strike.js?\");\n\n/***/ }),\n\n/***/ \"./formats/table.js\":\n/*!**************************!*\\\n !*** ./formats/table.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.tableId = exports.TableContainer = exports.TableBody = exports.TableRow = exports.TableCell = undefined;\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _block = __webpack_require__(/*! ../blots/block */ \\\"./blots/block.js\\\");\\n\\nvar _block2 = _interopRequireDefault(_block);\\n\\nvar _container = __webpack_require__(/*! ../blots/container */ \\\"./blots/container.js\\\");\\n\\nvar _container2 = _interopRequireDefault(_container);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass TableCell extends _block2.default {\\n static create(value) {\\n const node = super.create();\\n if (value) {\\n node.setAttribute('data-row', value);\\n } else {\\n node.setAttribute('data-row', tableId());\\n }\\n return node;\\n }\\n\\n static formats(domNode) {\\n if (domNode.hasAttribute('data-row')) {\\n return domNode.getAttribute('data-row');\\n }\\n return undefined;\\n }\\n\\n format(name, value) {\\n if (name === TableCell.blotName && value) {\\n this.domNode.setAttribute('data-row', value);\\n } else {\\n super.format(name, value);\\n }\\n }\\n\\n table() {\\n let cur = this.parent;\\n while (cur != null && cur.statics.blotName !== 'table-container') {\\n cur = cur.parent;\\n }\\n return cur;\\n }\\n}\\nTableCell.blotName = 'table';\\nTableCell.tagName = 'TD';\\n\\nclass TableRow extends _container2.default {\\n checkMerge() {\\n if (super.checkMerge() && this.next.children.head != null) {\\n const thisHead = this.children.head.formats();\\n const thisTail = this.children.tail.formats();\\n const nextHead = this.next.children.head.formats();\\n const nextTail = this.next.children.tail.formats();\\n return thisHead.table === thisTail.table && thisHead.table === nextHead.table && thisHead.table === nextTail.table;\\n }\\n return false;\\n }\\n\\n optimize(...args) {\\n super.optimize(...args);\\n this.children.forEach(child => {\\n if (child.next == null) return;\\n const childFormats = child.formats();\\n const nextFormats = child.next.formats();\\n if (childFormats.table !== nextFormats.table) {\\n const next = this.splitAfter(child);\\n if (next) {\\n next.optimize();\\n }\\n // We might be able to merge with prev now\\n if (this.prev) {\\n this.prev.optimize();\\n }\\n }\\n });\\n }\\n}\\nTableRow.blotName = 'table-row';\\nTableRow.tagName = 'TR';\\n\\nclass TableBody extends _container2.default {}\\nTableBody.blotName = 'table-body';\\nTableBody.tagName = 'TBODY';\\n\\nclass TableContainer extends _container2.default {\\n balanceCells() {\\n const rows = this.descendants(TableRow);\\n const maxColumns = rows.reduce((max, row) => {\\n return Math.max(row.children.length, max);\\n }, 0);\\n rows.forEach(row => {\\n new Array(maxColumns - row.children.length).fill(0).forEach(() => {\\n let value;\\n if (row.children.head != null) {\\n value = TableCell.formats(row.children.head.domNode);\\n }\\n const blot = this.scroll.create(TableCell.blotName, value);\\n row.appendChild(blot);\\n blot.optimize(); // Add break blot\\n });\\n });\\n }\\n\\n deleteColumn(index) {\\n var _descendant = this.descendant(TableBody),\\n _descendant2 = _slicedToArray(_descendant, 1);\\n\\n const body = _descendant2[0];\\n\\n if (body == null || body.children.head == null) return;\\n body.children.forEach(row => {\\n const cell = row.children.at(index);\\n if (cell != null) {\\n cell.remove();\\n }\\n });\\n }\\n\\n insertColumn(index) {\\n var _descendant3 = this.descendant(TableBody),\\n _descendant4 = _slicedToArray(_descendant3, 1);\\n\\n const body = _descendant4[0];\\n\\n if (body == null || body.children.head == null) return;\\n body.children.forEach(row => {\\n const ref = row.children.at(index);\\n const value = TableCell.formats(row.children.head.domNode);\\n const cell = this.scroll.create(TableCell.blotName, value);\\n row.insertBefore(cell, ref);\\n });\\n }\\n\\n insertRow(index) {\\n var _descendant5 = this.descendant(TableBody),\\n _descendant6 = _slicedToArray(_descendant5, 1);\\n\\n const body = _descendant6[0];\\n\\n if (body == null || body.children.head == null) return;\\n const id = tableId();\\n const row = this.scroll.create(TableRow.blotName);\\n body.children.head.children.forEach(() => {\\n const cell = this.scroll.create(TableCell.blotName, id);\\n row.appendChild(cell);\\n });\\n const ref = body.children.at(index);\\n body.insertBefore(row, ref);\\n }\\n}\\nTableContainer.blotName = 'table-container';\\nTableContainer.tagName = 'TABLE';\\n\\nTableContainer.allowedChildren = [TableBody];\\nTableBody.requiredContainer = TableContainer;\\n\\nTableBody.allowedChildren = [TableRow];\\nTableRow.requiredContainer = TableBody;\\n\\nTableRow.allowedChildren = [TableCell];\\nTableCell.requiredContainer = TableRow;\\n\\nfunction tableId() {\\n const id = Math.random().toString(36).slice(2, 6);\\n return `row-${id}`;\\n}\\n\\nexports.TableCell = TableCell;\\nexports.TableRow = TableRow;\\nexports.TableBody = TableBody;\\nexports.TableContainer = TableContainer;\\nexports.tableId = tableId;\\n\\n//# sourceURL=webpack://Quill/./formats/table.js?\");\n\n/***/ }),\n\n/***/ \"./formats/underline.js\":\n/*!******************************!*\\\n !*** ./formats/underline.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _inline = __webpack_require__(/*! ../blots/inline */ \\\"./blots/inline.js\\\");\\n\\nvar _inline2 = _interopRequireDefault(_inline);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Underline extends _inline2.default {}\\nUnderline.blotName = 'underline';\\nUnderline.tagName = 'U';\\n\\nexports.default = Underline;\\n\\n//# sourceURL=webpack://Quill/./formats/underline.js?\");\n\n/***/ }),\n\n/***/ \"./formats/video.js\":\n/*!**************************!*\\\n !*** ./formats/video.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _block = __webpack_require__(/*! ../blots/block */ \\\"./blots/block.js\\\");\\n\\nvar _link = __webpack_require__(/*! ../formats/link */ \\\"./formats/link.js\\\");\\n\\nvar _link2 = _interopRequireDefault(_link);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst ATTRIBUTES = ['height', 'width'];\\n\\nclass Video extends _block.BlockEmbed {\\n static create(value) {\\n const node = super.create(value);\\n node.setAttribute('frameborder', '0');\\n node.setAttribute('allowfullscreen', true);\\n node.setAttribute('src', this.sanitize(value));\\n return node;\\n }\\n\\n static formats(domNode) {\\n return ATTRIBUTES.reduce((formats, attribute) => {\\n if (domNode.hasAttribute(attribute)) {\\n formats[attribute] = domNode.getAttribute(attribute);\\n }\\n return formats;\\n }, {});\\n }\\n\\n static sanitize(url) {\\n return _link2.default.sanitize(url); // eslint-disable-line import/no-named-as-default-member\\n }\\n\\n static value(domNode) {\\n return domNode.getAttribute('src');\\n }\\n\\n format(name, value) {\\n if (ATTRIBUTES.indexOf(name) > -1) {\\n if (value) {\\n this.domNode.setAttribute(name, value);\\n } else {\\n this.domNode.removeAttribute(name);\\n }\\n } else {\\n super.format(name, value);\\n }\\n }\\n\\n html() {\\n var _value = this.value();\\n\\n const video = _value.video;\\n\\n return `${video}`;\\n }\\n}\\nVideo.blotName = 'video';\\nVideo.className = 'ql-video';\\nVideo.tagName = 'IFRAME';\\n\\nexports.default = Video;\\n\\n//# sourceURL=webpack://Quill/./formats/video.js?\");\n\n/***/ }),\n\n/***/ \"./modules/clipboard.js\":\n/*!******************************!*\\\n !*** ./modules/clipboard.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.traverse = exports.matchText = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\n\\nvar _extend2 = _interopRequireDefault(_extend);\\n\\nvar _quillDelta = __webpack_require__(/*! quill-delta */ \\\"./node_modules/quill-delta/lib/delta.js\\\");\\n\\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _quill = __webpack_require__(/*! ../core/quill */ \\\"./core/quill.js\\\");\\n\\nvar _quill2 = _interopRequireDefault(_quill);\\n\\nvar _logger = __webpack_require__(/*! ../core/logger */ \\\"./core/logger.js\\\");\\n\\nvar _logger2 = _interopRequireDefault(_logger);\\n\\nvar _module = __webpack_require__(/*! ../core/module */ \\\"./core/module.js\\\");\\n\\nvar _module2 = _interopRequireDefault(_module);\\n\\nvar _align = __webpack_require__(/*! ../formats/align */ \\\"./formats/align.js\\\");\\n\\nvar _background = __webpack_require__(/*! ../formats/background */ \\\"./formats/background.js\\\");\\n\\nvar _code = __webpack_require__(/*! ../formats/code */ \\\"./formats/code.js\\\");\\n\\nvar _code2 = _interopRequireDefault(_code);\\n\\nvar _color = __webpack_require__(/*! ../formats/color */ \\\"./formats/color.js\\\");\\n\\nvar _direction = __webpack_require__(/*! ../formats/direction */ \\\"./formats/direction.js\\\");\\n\\nvar _font = __webpack_require__(/*! ../formats/font */ \\\"./formats/font.js\\\");\\n\\nvar _size = __webpack_require__(/*! ../formats/size */ \\\"./formats/size.js\\\");\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst debug = (0, _logger2.default)('quill:clipboard');\\n\\nconst CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['ol, ul', matchList], ['pre', matchCodeBlock], ['tr', matchTable], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\\n\\nconst ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce((memo, attr) => {\\n memo[attr.keyName] = attr;\\n return memo;\\n}, {});\\n\\nconst STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce((memo, attr) => {\\n memo[attr.keyName] = attr;\\n return memo;\\n}, {});\\n\\nclass Clipboard extends _module2.default {\\n constructor(quill, options) {\\n super(quill, options);\\n this.quill.root.addEventListener('copy', this.onCaptureCopy.bind(this));\\n this.quill.root.addEventListener('cut', this.onCaptureCut.bind(this));\\n this.quill.root.addEventListener('paste', this.onCapturePaste.bind(this));\\n this.matchers = [];\\n CLIPBOARD_CONFIG.concat(this.options.matchers).forEach(([selector, matcher]) => {\\n this.addMatcher(selector, matcher);\\n });\\n }\\n\\n addMatcher(selector, matcher) {\\n this.matchers.push([selector, matcher]);\\n }\\n\\n convert({ html, text }) {\\n const formats = this.quill.getFormat(this.quill.selection.savedRange.index);\\n if (formats[_code2.default.blotName]) {\\n return new _quillDelta2.default().insert(text, {\\n [_code2.default.blotName]: formats[_code2.default.blotName]\\n });\\n } else if (!html) {\\n return new _quillDelta2.default().insert(text || '');\\n }\\n const container = this.quill.root.ownerDocument.createElement('div');\\n container.innerHTML = html.replace(/>\\\\r?\\\\n +<'); // Remove spaces between tags\\n const nodeMatches = new WeakMap();\\n\\n var _prepareMatching = this.prepareMatching(container, nodeMatches),\\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2);\\n\\n const elementMatchers = _prepareMatching2[0],\\n textMatchers = _prepareMatching2[1];\\n\\n const delta = traverse(this.quill.scroll, container, elementMatchers, textMatchers, nodeMatches);\\n // Remove trailing newline\\n if (deltaEndsWith(delta, '\\\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\\n }\\n return delta;\\n }\\n\\n dangerouslyPasteHTML(index, html, source = _quill2.default.sources.API) {\\n if (typeof index === 'string') {\\n const delta = this.convert({ html: index, text: '' });\\n this.quill.setContents(delta, html);\\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\\n } else {\\n const paste = this.convert({ html, text: '' });\\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\\n }\\n }\\n\\n onCaptureCopy(e) {\\n if (e.defaultPrevented) return;\\n this.quill.update();\\n\\n var _quill$selection$getR = this.quill.selection.getRange(),\\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1);\\n\\n const range = _quill$selection$getR2[0];\\n\\n if (range) {\\n this.onCopy(e, range);\\n e.preventDefault();\\n }\\n }\\n\\n onCaptureCut(e) {\\n if (e.defaultPrevented) return;\\n this.quill.update();\\n\\n var _quill$selection$getR3 = this.quill.selection.getRange(),\\n _quill$selection$getR4 = _slicedToArray(_quill$selection$getR3, 1);\\n\\n const range = _quill$selection$getR4[0];\\n\\n if (range) {\\n this.onCopy(e, range);\\n this.quill.deleteText(range, _quill2.default.sources.USER);\\n e.preventDefault();\\n }\\n }\\n\\n onCapturePaste(e) {\\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\\n const range = this.quill.getSelection(true);\\n const files = Array.from(e.clipboardData.files || []);\\n if (files.length > 0) {\\n this.quill.uploader.upload(range, files);\\n } else {\\n this.onPaste(e, range);\\n }\\n e.preventDefault();\\n }\\n\\n onCopy(e, range) {\\n const text = this.quill.getText(range);\\n const html = this.quill.getSemanticHTML(range);\\n e.clipboardData.setData('text/plain', text);\\n e.clipboardData.setData('text/html', html);\\n }\\n\\n onPaste(e, range) {\\n const html = e.clipboardData.getData('text/html');\\n const text = e.clipboardData.getData('text/plain');\\n const pastedDelta = this.convert({ text, html });\\n debug.log('onPaste', pastedDelta, { text, html });\\n const delta = new _quillDelta2.default().retain(range.index).delete(range.length).concat(pastedDelta);\\n this.quill.updateContents(delta, _quill2.default.sources.USER);\\n // range.length contributes to delta.length()\\n this.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\\n this.quill.scrollIntoView();\\n }\\n\\n prepareMatching(container, nodeMatches) {\\n const elementMatchers = [];\\n const textMatchers = [];\\n this.matchers.forEach(pair => {\\n var _pair = _slicedToArray(pair, 2);\\n\\n const selector = _pair[0],\\n matcher = _pair[1];\\n\\n switch (selector) {\\n case Node.TEXT_NODE:\\n textMatchers.push(matcher);\\n break;\\n case Node.ELEMENT_NODE:\\n elementMatchers.push(matcher);\\n break;\\n default:\\n Array.from(container.querySelectorAll(selector)).forEach(node => {\\n if (nodeMatches.has(node)) {\\n const matches = nodeMatches.get(node);\\n matches.push(matcher);\\n } else {\\n nodeMatches.set(node, [matcher]);\\n }\\n });\\n break;\\n }\\n });\\n return [elementMatchers, textMatchers];\\n }\\n}\\nClipboard.DEFAULTS = {\\n matchers: []\\n};\\n\\nfunction applyFormat(delta, format, value) {\\n if (typeof format === 'object') {\\n return Object.keys(format).reduce((newDelta, key) => {\\n return applyFormat(newDelta, key, format[key]);\\n }, delta);\\n }\\n return delta.reduce((newDelta, op) => {\\n if (op.attributes && op.attributes[format]) {\\n return newDelta.push(op);\\n }\\n return newDelta.insert(op.insert, (0, _extend2.default)({}, { [format]: value }, op.attributes));\\n }, new _quillDelta2.default());\\n}\\n\\nfunction deltaEndsWith(delta, text) {\\n let endText = '';\\n for (let i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i // eslint-disable-line no-plusplus\\n ) {\\n const op = delta.ops[i];\\n if (typeof op.insert !== 'string') break;\\n endText = op.insert + endText;\\n }\\n return endText.slice(-1 * text.length) === text;\\n}\\n\\nfunction isLine(node) {\\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\\n return ['address', 'article', 'blockquote', 'canvas', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'main', 'nav', 'ol', 'output', 'p', 'pre', 'section', 'table', 'td', 'tr', 'ul', 'video'].includes(node.tagName.toLowerCase());\\n}\\n\\nconst preNodes = new WeakMap();\\nfunction isPre(node) {\\n if (node == null) return false;\\n if (!preNodes.has(node)) {\\n if (node.tagName === 'PRE') {\\n preNodes.set(node, true);\\n } else {\\n preNodes.set(node, isPre(node.parentNode));\\n }\\n }\\n return preNodes.get(node);\\n}\\n\\nfunction traverse(scroll, node, elementMatchers, textMatchers, nodeMatches) {\\n // Post-order\\n if (node.nodeType === node.TEXT_NODE) {\\n return textMatchers.reduce((delta, matcher) => {\\n return matcher(node, delta, scroll);\\n }, new _quillDelta2.default());\\n } else if (node.nodeType === node.ELEMENT_NODE) {\\n return Array.from(node.childNodes || []).reduce((delta, childNode) => {\\n let childrenDelta = traverse(scroll, childNode, elementMatchers, textMatchers, nodeMatches);\\n if (childNode.nodeType === node.ELEMENT_NODE) {\\n childrenDelta = elementMatchers.reduce((reducedDelta, matcher) => {\\n return matcher(childNode, reducedDelta, scroll);\\n }, childrenDelta);\\n childrenDelta = (nodeMatches.get(childNode) || []).reduce((reducedDelta, matcher) => {\\n return matcher(childNode, reducedDelta, scroll);\\n }, childrenDelta);\\n }\\n return delta.concat(childrenDelta);\\n }, new _quillDelta2.default());\\n }\\n return new _quillDelta2.default();\\n}\\n\\nfunction matchAlias(format, node, delta) {\\n return applyFormat(delta, format, true);\\n}\\n\\nfunction matchAttributor(node, delta, scroll) {\\n const attributes = _parchment.Attributor.keys(node);\\n const classes = _parchment.ClassAttributor.keys(node);\\n const styles = _parchment.StyleAttributor.keys(node);\\n const formats = {};\\n attributes.concat(classes).concat(styles).forEach(name => {\\n let attr = scroll.query(name, _parchment.Scope.ATTRIBUTE);\\n if (attr != null) {\\n formats[attr.attrName] = attr.value(node);\\n if (formats[attr.attrName]) return;\\n }\\n attr = ATTRIBUTE_ATTRIBUTORS[name];\\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\\n formats[attr.attrName] = attr.value(node) || undefined;\\n }\\n attr = STYLE_ATTRIBUTORS[name];\\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\\n attr = STYLE_ATTRIBUTORS[name];\\n formats[attr.attrName] = attr.value(node) || undefined;\\n }\\n });\\n if (Object.keys(formats).length > 0) {\\n return applyFormat(delta, formats);\\n }\\n return delta;\\n}\\n\\nfunction matchBlot(node, delta, scroll) {\\n const match = scroll.query(node);\\n if (match == null) return delta;\\n if (match.prototype instanceof _parchment.EmbedBlot) {\\n const embed = {};\\n const value = match.value(node);\\n if (value != null) {\\n embed[match.blotName] = value;\\n return new _quillDelta2.default().insert(embed, match.formats(node, scroll));\\n }\\n } else if (typeof match.formats === 'function') {\\n return applyFormat(delta, match.blotName, match.formats(node, scroll));\\n }\\n return delta;\\n}\\n\\nfunction matchBreak(node, delta) {\\n if (!deltaEndsWith(delta, '\\\\n')) {\\n delta.insert('\\\\n');\\n }\\n return delta;\\n}\\n\\nfunction matchCodeBlock(node, delta, scroll) {\\n const match = scroll.query('code-block');\\n const language = match ? match.formats(node, scroll) : true;\\n return applyFormat(delta, 'code-block', language);\\n}\\n\\nfunction matchIgnore() {\\n return new _quillDelta2.default();\\n}\\n\\nfunction matchIndent(node, delta, scroll) {\\n const match = scroll.query(node);\\n if (match == null || match.blotName !== 'list' || !deltaEndsWith(delta, '\\\\n')) {\\n return delta;\\n }\\n let indent = -1;\\n let parent = node.parentNode;\\n while (parent != null) {\\n if (['OL', 'UL'].includes(parent.tagName)) {\\n indent += 1;\\n }\\n parent = parent.parentNode;\\n }\\n if (indent <= 0) return delta;\\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent }));\\n}\\n\\nfunction matchList(node, delta) {\\n const list = node.tagName === 'OL' ? 'ordered' : 'bullet';\\n return applyFormat(delta, 'list', list);\\n}\\n\\nfunction matchNewline(node, delta) {\\n if (!deltaEndsWith(delta, '\\\\n')) {\\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\\n delta.insert('\\\\n');\\n }\\n }\\n return delta;\\n}\\n\\nfunction matchStyles(node, delta) {\\n const formats = {};\\n const style = node.style || {};\\n if (style.fontStyle === 'italic') {\\n formats.italic = true;\\n }\\n if (style.fontWeight.startsWith('bold') || parseInt(style.fontWeight, 10) >= 700) {\\n formats.bold = true;\\n }\\n if (Object.keys(formats).length > 0) {\\n delta = applyFormat(delta, formats);\\n }\\n if (parseFloat(style.textIndent || 0) > 0) {\\n // Could be 0.5in\\n return new _quillDelta2.default().insert('\\\\t').concat(delta);\\n }\\n return delta;\\n}\\n\\nfunction matchTable(node, delta) {\\n const table = node.parentNode.tagName === 'TABLE' ? node.parentNode : node.parentNode.parentNode;\\n const rows = Array.from(table.querySelectorAll('tr'));\\n const row = rows.indexOf(node) + 1;\\n return applyFormat(delta, 'table', row);\\n}\\n\\nfunction matchText(node, delta) {\\n let text = node.data;\\n // Word represents empty line with  \\n if (node.parentNode.tagName === 'O:P') {\\n return delta.insert(text.trim());\\n }\\n if (text.trim().length === 0 && node.parentNode == null) {\\n return delta;\\n }\\n if (!isPre(node)) {\\n const replacer = (collapse, match) => {\\n const replaced = match.replace(/[^\\\\u00a0]/g, ''); // \\\\u00a0 is nbsp;\\n return replaced.length < 1 && collapse ? ' ' : replaced;\\n };\\n text = text.replace(/\\\\r\\\\n/g, ' ').replace(/\\\\n/g, ' ');\\n text = text.replace(/\\\\s\\\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\\n text = text.replace(/^\\\\s+/, replacer.bind(replacer, false));\\n }\\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\\n text = text.replace(/\\\\s+$/, replacer.bind(replacer, false));\\n }\\n }\\n return delta.insert(text);\\n}\\n\\nexports.default = Clipboard;\\nexports.matchAttributor = matchAttributor;\\nexports.matchBlot = matchBlot;\\nexports.matchNewline = matchNewline;\\nexports.matchText = matchText;\\nexports.traverse = traverse;\\n\\n//# sourceURL=webpack://Quill/./modules/clipboard.js?\");\n\n/***/ }),\n\n/***/ \"./modules/history.js\":\n/*!****************************!*\\\n !*** ./modules/history.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.getLastChangeIndex = exports.default = undefined;\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _quill = __webpack_require__(/*! ../core/quill */ \\\"./core/quill.js\\\");\\n\\nvar _quill2 = _interopRequireDefault(_quill);\\n\\nvar _module = __webpack_require__(/*! ../core/module */ \\\"./core/module.js\\\");\\n\\nvar _module2 = _interopRequireDefault(_module);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass History extends _module2.default {\\n constructor(quill, options) {\\n super(quill, options);\\n this.lastRecorded = 0;\\n this.ignoreChange = false;\\n this.clear();\\n this.quill.on(_quill2.default.events.EDITOR_CHANGE, (eventName, delta, oldDelta, source) => {\\n if (eventName !== _quill2.default.events.TEXT_CHANGE || this.ignoreChange) return;\\n if (!this.options.userOnly || source === _quill2.default.sources.USER) {\\n this.record(delta, oldDelta);\\n } else {\\n this.transform(delta);\\n }\\n });\\n this.quill.keyboard.addBinding({ key: 'z', shortKey: true }, this.undo.bind(this));\\n this.quill.keyboard.addBinding({ key: 'z', shortKey: true, shiftKey: true }, this.redo.bind(this));\\n if (/Win/i.test(navigator.platform)) {\\n this.quill.keyboard.addBinding({ key: 'y', shortKey: true }, this.redo.bind(this));\\n }\\n }\\n\\n change(source, dest) {\\n if (this.stack[source].length === 0) return;\\n const delta = this.stack[source].pop();\\n this.stack[dest].push(delta);\\n this.lastRecorded = 0;\\n this.ignoreChange = true;\\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\\n this.ignoreChange = false;\\n const index = getLastChangeIndex(this.quill.scroll, delta[source]);\\n this.quill.setSelection(index);\\n }\\n\\n clear() {\\n this.stack = { undo: [], redo: [] };\\n }\\n\\n cutoff() {\\n this.lastRecorded = 0;\\n }\\n\\n record(changeDelta, oldDelta) {\\n if (changeDelta.ops.length === 0) return;\\n this.stack.redo = [];\\n let undoDelta = this.quill.getContents().diff(oldDelta);\\n const timestamp = Date.now();\\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\\n const delta = this.stack.undo.pop();\\n undoDelta = undoDelta.compose(delta.undo);\\n changeDelta = delta.redo.compose(changeDelta);\\n } else {\\n this.lastRecorded = timestamp;\\n }\\n this.stack.undo.push({\\n redo: changeDelta,\\n undo: undoDelta\\n });\\n if (this.stack.undo.length > this.options.maxStack) {\\n this.stack.undo.shift();\\n }\\n }\\n\\n redo() {\\n this.change('redo', 'undo');\\n }\\n\\n transform(delta) {\\n this.stack.undo.forEach(change => {\\n change.undo = delta.transform(change.undo, true);\\n change.redo = delta.transform(change.redo, true);\\n });\\n this.stack.redo.forEach(change => {\\n change.undo = delta.transform(change.undo, true);\\n change.redo = delta.transform(change.redo, true);\\n });\\n }\\n\\n undo() {\\n this.change('undo', 'redo');\\n }\\n}\\nHistory.DEFAULTS = {\\n delay: 1000,\\n maxStack: 100,\\n userOnly: false\\n};\\n\\nfunction endsWithNewlineChange(scroll, delta) {\\n const lastOp = delta.ops[delta.ops.length - 1];\\n if (lastOp == null) return false;\\n if (lastOp.insert != null) {\\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\\\n');\\n }\\n if (lastOp.attributes != null) {\\n return Object.keys(lastOp.attributes).some(attr => {\\n return scroll.query(attr, _parchment.Scope.BLOCK) != null;\\n });\\n }\\n return false;\\n}\\n\\nfunction getLastChangeIndex(scroll, delta) {\\n const deleteLength = delta.reduce((length, op) => {\\n return length + (op.delete || 0);\\n }, 0);\\n let changeIndex = delta.length() - deleteLength;\\n if (endsWithNewlineChange(scroll, delta)) {\\n changeIndex -= 1;\\n }\\n return changeIndex;\\n}\\n\\nexports.default = History;\\nexports.getLastChangeIndex = getLastChangeIndex;\\n\\n//# sourceURL=webpack://Quill/./modules/history.js?\");\n\n/***/ }),\n\n/***/ \"./modules/keyboard.js\":\n/*!*****************************!*\\\n !*** ./modules/keyboard.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.normalize = exports.SHORTKEY = exports.default = undefined;\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _clone = __webpack_require__(/*! clone */ \\\"./node_modules/clone/clone.js\\\");\\n\\nvar _clone2 = _interopRequireDefault(_clone);\\n\\nvar _deepEqual = __webpack_require__(/*! deep-equal */ \\\"./node_modules/deep-equal/index.js\\\");\\n\\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\\n\\nvar _extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\n\\nvar _extend2 = _interopRequireDefault(_extend);\\n\\nvar _quillDelta = __webpack_require__(/*! quill-delta */ \\\"./node_modules/quill-delta/lib/delta.js\\\");\\n\\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\\n\\nvar _op = __webpack_require__(/*! quill-delta/lib/op */ \\\"./node_modules/quill-delta/lib/op.js\\\");\\n\\nvar _op2 = _interopRequireDefault(_op);\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _quill = __webpack_require__(/*! ../core/quill */ \\\"./core/quill.js\\\");\\n\\nvar _quill2 = _interopRequireDefault(_quill);\\n\\nvar _logger = __webpack_require__(/*! ../core/logger */ \\\"./core/logger.js\\\");\\n\\nvar _logger2 = _interopRequireDefault(_logger);\\n\\nvar _module = __webpack_require__(/*! ../core/module */ \\\"./core/module.js\\\");\\n\\nvar _module2 = _interopRequireDefault(_module);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst debug = (0, _logger2.default)('quill:keyboard');\\n\\nconst SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\\n\\nclass Keyboard extends _module2.default {\\n static match(evt, binding) {\\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(key => {\\n return !!binding[key] !== evt[key] && binding[key] !== null;\\n })) {\\n return false;\\n }\\n return binding.key === evt.key || binding.key === evt.which;\\n }\\n\\n constructor(quill, options) {\\n super(quill, options);\\n this.bindings = {};\\n Object.keys(this.options.bindings).forEach(name => {\\n if (this.options.bindings[name]) {\\n this.addBinding(this.options.bindings[name]);\\n }\\n });\\n this.addBinding({ key: 'Enter', shiftKey: null }, handleEnter);\\n this.addBinding({ key: 'Enter', metaKey: null, ctrlKey: null, altKey: null }, () => {});\\n if (/Firefox/i.test(navigator.userAgent)) {\\n // Need to handle delete and backspace for Firefox in the general case #1171\\n this.addBinding({ key: 'Backspace' }, { collapsed: true }, handleBackspace);\\n this.addBinding({ key: 'Delete' }, { collapsed: true }, handleDelete);\\n } else {\\n this.addBinding({ key: 'Backspace' }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\\n this.addBinding({ key: 'Delete' }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\\n }\\n this.addBinding({ key: 'Backspace' }, { collapsed: false }, handleDeleteRange);\\n this.addBinding({ key: 'Delete' }, { collapsed: false }, handleDeleteRange);\\n this.addBinding({\\n key: 'Backspace',\\n altKey: null,\\n ctrlKey: null,\\n metaKey: null,\\n shiftKey: null\\n }, { collapsed: true, offset: 0 }, handleBackspace);\\n this.listen();\\n }\\n\\n addBinding(keyBinding, context = {}, handler = {}) {\\n const binding = normalize(keyBinding);\\n if (binding == null) {\\n debug.warn('Attempted to add invalid keyboard binding', binding);\\n return;\\n }\\n if (typeof context === 'function') {\\n context = { handler: context };\\n }\\n if (typeof handler === 'function') {\\n handler = { handler };\\n }\\n const keys = Array.isArray(binding.key) ? binding.key : [binding.key];\\n keys.forEach(key => {\\n const singleBinding = (0, _extend2.default)({}, binding, { key }, context, handler);\\n this.bindings[singleBinding.key] = this.bindings[singleBinding.key] || [];\\n this.bindings[singleBinding.key].push(singleBinding);\\n });\\n }\\n\\n listen() {\\n this.quill.root.addEventListener('keydown', evt => {\\n if (evt.defaultPrevented) return;\\n const bindings = (this.bindings[evt.key] || []).concat(this.bindings[evt.which] || []);\\n const matches = bindings.filter(binding => Keyboard.match(evt, binding));\\n if (matches.length === 0) return;\\n const range = this.quill.getSelection();\\n if (range == null || !this.quill.hasFocus()) return;\\n\\n var _quill$getLine = this.quill.getLine(range.index),\\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2);\\n\\n const line = _quill$getLine2[0],\\n offset = _quill$getLine2[1];\\n\\n var _quill$getLeaf = this.quill.getLeaf(range.index),\\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2);\\n\\n const leafStart = _quill$getLeaf2[0],\\n offsetStart = _quill$getLeaf2[1];\\n\\n var _ref = range.length === 0 ? [leafStart, offsetStart] : this.quill.getLeaf(range.index + range.length),\\n _ref2 = _slicedToArray(_ref, 2);\\n\\n const leafEnd = _ref2[0],\\n offsetEnd = _ref2[1];\\n\\n const prefixText = leafStart instanceof _parchment.TextBlot ? leafStart.value().slice(0, offsetStart) : '';\\n const suffixText = leafEnd instanceof _parchment.TextBlot ? leafEnd.value().slice(offsetEnd) : '';\\n const curContext = {\\n collapsed: range.length === 0,\\n empty: range.length === 0 && line.length() <= 1,\\n format: this.quill.getFormat(range),\\n line,\\n offset,\\n prefix: prefixText,\\n suffix: suffixText,\\n event: evt\\n };\\n const prevented = matches.some(binding => {\\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) {\\n return false;\\n }\\n if (binding.empty != null && binding.empty !== curContext.empty) {\\n return false;\\n }\\n if (binding.offset != null && binding.offset !== curContext.offset) {\\n return false;\\n }\\n if (Array.isArray(binding.format)) {\\n // any format is present\\n if (binding.format.every(name => curContext.format[name] == null)) {\\n return false;\\n }\\n } else if (typeof binding.format === 'object') {\\n // all formats must match\\n if (!Object.keys(binding.format).every(name => {\\n if (binding.format[name] === true) return curContext.format[name] != null;\\n if (binding.format[name] === false) return curContext.format[name] == null;\\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\\n })) {\\n return false;\\n }\\n }\\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) {\\n return false;\\n }\\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) {\\n return false;\\n }\\n return binding.handler.call(this, range, curContext, binding) !== true;\\n });\\n if (prevented) {\\n evt.preventDefault();\\n }\\n });\\n }\\n}\\n\\nKeyboard.DEFAULTS = {\\n bindings: {\\n bold: makeFormatHandler('bold'),\\n italic: makeFormatHandler('italic'),\\n underline: makeFormatHandler('underline'),\\n indent: {\\n // highlight tab or tab at beginning of list, indent or blockquote\\n key: 'Tab',\\n format: ['blockquote', 'indent', 'list'],\\n handler(range, context) {\\n if (context.collapsed && context.offset !== 0) return true;\\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\\n return false;\\n }\\n },\\n outdent: {\\n key: 'Tab',\\n shiftKey: true,\\n format: ['blockquote', 'indent', 'list'],\\n // highlight tab or tab at beginning of list, indent or blockquote\\n handler(range, context) {\\n if (context.collapsed && context.offset !== 0) return true;\\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\\n return false;\\n }\\n },\\n 'outdent backspace': {\\n key: 'Backspace',\\n collapsed: true,\\n shiftKey: null,\\n metaKey: null,\\n ctrlKey: null,\\n altKey: null,\\n format: ['indent', 'list'],\\n offset: 0,\\n handler(range, context) {\\n if (context.format.indent != null) {\\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\\n } else if (context.format.list != null) {\\n this.quill.format('list', false, _quill2.default.sources.USER);\\n }\\n }\\n },\\n 'indent code-block': makeCodeBlockHandler(true),\\n 'outdent code-block': makeCodeBlockHandler(false),\\n 'remove tab': {\\n key: 'Tab',\\n shiftKey: true,\\n collapsed: true,\\n prefix: /\\\\t$/,\\n handler(range) {\\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\\n }\\n },\\n tab: {\\n key: 'Tab',\\n handler(range, context) {\\n if (context.format.table) return true;\\n this.quill.history.cutoff();\\n const delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\\\t');\\n this.quill.updateContents(delta, _quill2.default.sources.USER);\\n this.quill.history.cutoff();\\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\\n return false;\\n }\\n },\\n 'blockquote empty enter': {\\n key: 'Enter',\\n collapsed: true,\\n format: ['blockquote'],\\n empty: true,\\n handler() {\\n this.quill.format('blockquote', false, _quill2.default.sources.USER);\\n }\\n },\\n 'list empty enter': {\\n key: 'Enter',\\n collapsed: true,\\n format: ['list'],\\n empty: true,\\n handler(range, context) {\\n this.quill.format('list', false, _quill2.default.sources.USER);\\n if (context.format.indent) {\\n this.quill.format('indent', false, _quill2.default.sources.USER);\\n }\\n }\\n },\\n 'checklist enter': {\\n key: 'Enter',\\n collapsed: true,\\n format: { list: 'checked' },\\n handler(range) {\\n var _quill$getLine3 = this.quill.getLine(range.index),\\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2);\\n\\n const line = _quill$getLine4[0],\\n offset = _quill$getLine4[1];\\n\\n const formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\\n const delta = new _quillDelta2.default().retain(range.index).insert('\\\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\\n this.quill.updateContents(delta, _quill2.default.sources.USER);\\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\\n this.quill.scrollIntoView();\\n }\\n },\\n 'header enter': {\\n key: 'Enter',\\n collapsed: true,\\n format: ['header'],\\n suffix: /^$/,\\n handler(range, context) {\\n var _quill$getLine5 = this.quill.getLine(range.index),\\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2);\\n\\n const line = _quill$getLine6[0],\\n offset = _quill$getLine6[1];\\n\\n const delta = new _quillDelta2.default().retain(range.index).insert('\\\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\\n this.quill.updateContents(delta, _quill2.default.sources.USER);\\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\\n this.quill.scrollIntoView();\\n }\\n },\\n 'table backspace': {\\n key: 'Backspace',\\n format: ['table'],\\n collapsed: true,\\n offset: 0,\\n handler() {}\\n },\\n 'table delete': {\\n key: 'Delete',\\n format: ['table'],\\n collapsed: true,\\n suffix: /^$/,\\n handler() {}\\n },\\n 'table enter': {\\n key: 'Enter',\\n shiftKey: null,\\n format: ['table'],\\n handler(range) {\\n const module = this.quill.getModule('table');\\n if (module) {\\n var _module$getTable = module.getTable(range),\\n _module$getTable2 = _slicedToArray(_module$getTable, 4);\\n\\n const table = _module$getTable2[0],\\n row = _module$getTable2[1],\\n cell = _module$getTable2[2],\\n offset = _module$getTable2[3];\\n\\n const shift = tableSide(table, row, cell, offset);\\n if (shift == null) return;\\n let index = table.offset();\\n if (shift < 0) {\\n const delta = new _quillDelta2.default().retain(index).insert('\\\\n');\\n this.quill.updateContents(delta, _quill2.default.sources.USER);\\n this.quill.setSelection(range.index + 1, range.length, _quill2.default.sources.SILENT);\\n } else if (shift > 0) {\\n index += table.length();\\n const delta = new _quillDelta2.default().retain(index).insert('\\\\n');\\n this.quill.updateContents(delta, _quill2.default.sources.USER);\\n this.quill.setSelection(index, _quill2.default.sources.USER);\\n }\\n }\\n }\\n },\\n 'table tab': {\\n key: 'Tab',\\n shiftKey: null,\\n format: ['table'],\\n handler(range, context) {\\n const event = context.event,\\n cell = context.line;\\n\\n const offset = cell.offset(this.quill.scroll);\\n if (event.shiftKey) {\\n this.quill.setSelection(offset - 1, _quill2.default.sources.USER);\\n } else {\\n this.quill.setSelection(offset + cell.length(), _quill2.default.sources.USER);\\n }\\n }\\n },\\n 'list autofill': {\\n key: ' ',\\n collapsed: true,\\n format: {\\n list: false,\\n 'code-block': false,\\n blockquote: false,\\n header: false,\\n table: false\\n },\\n prefix: /^\\\\s*?(\\\\d+\\\\.|-|\\\\*|\\\\[ ?\\\\]|\\\\[x\\\\])$/,\\n handler(range, context) {\\n if (this.quill.scroll.query('list') == null) return true;\\n const length = context.prefix.length;\\n\\n var _quill$getLine7 = this.quill.getLine(range.index),\\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2);\\n\\n const line = _quill$getLine8[0],\\n offset = _quill$getLine8[1];\\n\\n if (offset > length) return true;\\n let value;\\n switch (context.prefix.trim()) {\\n case '[]':\\n case '[ ]':\\n value = 'unchecked';\\n break;\\n case '[x]':\\n value = 'checked';\\n break;\\n case '-':\\n case '*':\\n value = 'bullet';\\n break;\\n default:\\n value = 'ordered';\\n }\\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\\n this.quill.history.cutoff();\\n const delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\\n this.quill.updateContents(delta, _quill2.default.sources.USER);\\n this.quill.history.cutoff();\\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\\n return false;\\n }\\n },\\n 'code exit': {\\n key: 'Enter',\\n collapsed: true,\\n format: ['code-block'],\\n prefix: /^$/,\\n suffix: /^\\\\s*$/,\\n handler(range) {\\n var _quill$getLine9 = this.quill.getLine(range.index),\\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2);\\n\\n const line = _quill$getLine10[0],\\n offset = _quill$getLine10[1];\\n\\n let numLines = 2;\\n let cur = line;\\n while (cur != null && cur.length() <= 1 && cur.formats()['code-block']) {\\n cur = cur.prev;\\n numLines -= 1;\\n // Requisite prev lines are empty\\n if (numLines <= 0) {\\n const delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\\n this.quill.updateContents(delta, _quill2.default.sources.USER);\\n this.quill.setSelection(range.index - 1, _quill2.default.sources.SILENT);\\n return false;\\n }\\n }\\n return true;\\n }\\n },\\n 'embed left': makeEmbedArrowHandler('ArrowLeft', false),\\n 'embed left shift': makeEmbedArrowHandler('ArrowLeft', true),\\n 'embed right': makeEmbedArrowHandler('ArrowRight', false),\\n 'embed right shift': makeEmbedArrowHandler('ArrowRight', true),\\n 'table down': makeTableArrowHandler(false),\\n 'table up': makeTableArrowHandler(true)\\n }\\n};\\n\\nfunction handleBackspace(range, context) {\\n if (range.index === 0 || this.quill.getLength() <= 1) return;\\n\\n var _quill$getLine11 = this.quill.getLine(range.index),\\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1);\\n\\n const line = _quill$getLine12[0];\\n\\n let formats = {};\\n if (context.offset === 0) {\\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1);\\n\\n const prev = _quill$getLine14[0];\\n\\n if (prev != null) {\\n if (prev.length() > 1 || prev.statics.blotName === 'table') {\\n const curFormats = line.formats();\\n const prevFormats = this.quill.getFormat(range.index - 1, 1);\\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\\n }\\n }\\n }\\n // Check for astral symbols\\n const length = /[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]$/.test(context.prefix) ? 2 : 1;\\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\\n if (Object.keys(formats).length > 0) {\\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\\n }\\n this.quill.focus();\\n}\\n\\nfunction handleDelete(range, context) {\\n // Check for astral symbols\\n const length = /^[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]/.test(context.suffix) ? 2 : 1;\\n if (range.index >= this.quill.getLength() - length) return;\\n let formats = {};\\n let nextLength = 0;\\n\\n var _quill$getLine15 = this.quill.getLine(range.index),\\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1);\\n\\n const line = _quill$getLine16[0];\\n\\n if (context.offset >= line.length() - 1) {\\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1);\\n\\n const next = _quill$getLine18[0];\\n\\n if (next) {\\n const curFormats = line.formats();\\n const nextFormats = this.quill.getFormat(range.index, 1);\\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\\n nextLength = next.length();\\n }\\n }\\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\\n if (Object.keys(formats).length > 0) {\\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\\n }\\n}\\n\\nfunction handleDeleteRange(range) {\\n const lines = this.quill.getLines(range);\\n let formats = {};\\n if (lines.length > 1) {\\n const firstFormats = lines[0].formats();\\n const lastFormats = lines[lines.length - 1].formats();\\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\\n }\\n this.quill.deleteText(range, _quill2.default.sources.USER);\\n if (Object.keys(formats).length > 0) {\\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\\n }\\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\\n this.quill.focus();\\n}\\n\\n// TODO use just updateContents()\\nfunction handleEnter(range, context) {\\n if (range.length > 0) {\\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\\n }\\n const lineFormats = Object.keys(context.format).reduce((formats, format) => {\\n if (this.quill.scroll.query(format, _parchment.Scope.BLOCK) && !Array.isArray(context.format[format])) {\\n formats[format] = context.format[format];\\n }\\n return formats;\\n }, {});\\n this.quill.insertText(range.index, '\\\\n', lineFormats, _quill2.default.sources.USER);\\n // Earlier scroll.deleteAt might have messed up our selection,\\n // so insertText's built in selection preservation is not reliable\\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\\n this.quill.focus();\\n Object.keys(context.format).forEach(name => {\\n if (lineFormats[name] != null) return;\\n if (Array.isArray(context.format[name])) return;\\n if (name === 'link') return;\\n this.quill.format(name, context.format[name], _quill2.default.sources.USER);\\n });\\n}\\n\\nfunction makeCodeBlockHandler(indent) {\\n return {\\n key: 'Tab',\\n shiftKey: !indent,\\n format: { 'code-block': true },\\n handler(range) {\\n const CodeBlock = this.quill.scroll.query('code-block');\\n const lines = range.length === 0 ? this.quill.getLines(range.index, 1) : this.quill.getLines(range);\\n let index = range.index,\\n length = range.length;\\n\\n lines.forEach((line, i) => {\\n if (indent) {\\n line.insertAt(0, CodeBlock.TAB);\\n if (i === 0) {\\n index += CodeBlock.TAB.length;\\n } else {\\n length += CodeBlock.TAB.length;\\n }\\n } else if (line.domNode.textContent.startsWith(CodeBlock.TAB)) {\\n line.deleteAt(0, CodeBlock.TAB.length);\\n if (i === 0) {\\n index -= CodeBlock.TAB.length;\\n } else {\\n length -= CodeBlock.TAB.length;\\n }\\n }\\n });\\n this.quill.update(_quill2.default.sources.USER);\\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\\n }\\n };\\n}\\n\\nfunction makeEmbedArrowHandler(key, shiftKey) {\\n const where = key === 'ArrowLeft' ? 'prefix' : 'suffix';\\n return {\\n key,\\n shiftKey,\\n altKey: null,\\n [where]: /^$/,\\n handler(range) {\\n let index = range.index;\\n\\n if (key === 'ArrowRight') {\\n index += range.length + 1;\\n }\\n\\n var _quill$getLeaf3 = this.quill.getLeaf(index),\\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1);\\n\\n const leaf = _quill$getLeaf4[0];\\n\\n if (!(leaf instanceof _parchment.EmbedBlot)) return true;\\n if (key === 'ArrowLeft') {\\n if (shiftKey) {\\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\\n } else {\\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\\n }\\n } else if (shiftKey) {\\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\\n } else {\\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\\n }\\n return false;\\n }\\n };\\n}\\n\\nfunction makeFormatHandler(format) {\\n return {\\n key: format[0],\\n shortKey: true,\\n handler(range, context) {\\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\\n }\\n };\\n}\\n\\nfunction makeTableArrowHandler(up) {\\n return {\\n key: up ? 'ArrowUp' : 'ArrowDown',\\n collapsed: true,\\n format: ['table'],\\n handler(range, context) {\\n // TODO move to table module\\n const key = up ? 'prev' : 'next';\\n const cell = context.line;\\n const targetRow = cell.parent[key];\\n if (targetRow != null) {\\n if (targetRow.statics.blotName === 'table-row') {\\n let targetCell = targetRow.children.head;\\n let cur = cell;\\n while (cur.prev != null) {\\n cur = cur.prev;\\n targetCell = targetCell.next;\\n }\\n const index = targetCell.offset(this.quill.scroll) + Math.min(context.offset, targetCell.length() - 1);\\n this.quill.setSelection(index, 0, _quill2.default.sources.USER);\\n }\\n } else {\\n const targetLine = cell.table()[key];\\n if (targetLine != null) {\\n if (up) {\\n this.quill.setSelection(targetLine.offset(this.quill.scroll) + targetLine.length() - 1, 0, _quill2.default.sources.USER);\\n } else {\\n this.quill.setSelection(targetLine.offset(this.quill.scroll), 0, _quill2.default.sources.USER);\\n }\\n }\\n }\\n return false;\\n }\\n };\\n}\\n\\nfunction normalize(binding) {\\n if (typeof binding === 'string' || typeof binding === 'number') {\\n binding = { key: binding };\\n } else if (typeof binding === 'object') {\\n binding = (0, _clone2.default)(binding, false);\\n } else {\\n return null;\\n }\\n if (binding.shortKey) {\\n binding[SHORTKEY] = binding.shortKey;\\n delete binding.shortKey;\\n }\\n return binding;\\n}\\n\\nfunction tableSide(table, row, cell, offset) {\\n if (row.prev == null && row.next == null) {\\n if (cell.prev == null && cell.next == null) {\\n return offset === 0 ? -1 : 1;\\n }\\n return cell.prev == null ? -1 : 1;\\n } else if (row.prev == null) {\\n return -1;\\n } else if (row.next == null) {\\n return 1;\\n }\\n return null;\\n}\\n\\nexports.default = Keyboard;\\nexports.SHORTKEY = SHORTKEY;\\nexports.normalize = normalize;\\n\\n//# sourceURL=webpack://Quill/./modules/keyboard.js?\");\n\n/***/ }),\n\n/***/ \"./modules/syntax.js\":\n/*!***************************!*\\\n !*** ./modules/syntax.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\\n\\nvar _quillDelta = __webpack_require__(/*! quill-delta */ \\\"./node_modules/quill-delta/lib/delta.js\\\");\\n\\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _inline = __webpack_require__(/*! ../blots/inline */ \\\"./blots/inline.js\\\");\\n\\nvar _inline2 = _interopRequireDefault(_inline);\\n\\nvar _quill = __webpack_require__(/*! ../core/quill */ \\\"./core/quill.js\\\");\\n\\nvar _quill2 = _interopRequireDefault(_quill);\\n\\nvar _module = __webpack_require__(/*! ../core/module */ \\\"./core/module.js\\\");\\n\\nvar _module2 = _interopRequireDefault(_module);\\n\\nvar _block = __webpack_require__(/*! ../blots/block */ \\\"./blots/block.js\\\");\\n\\nvar _break = __webpack_require__(/*! ../blots/break */ \\\"./blots/break.js\\\");\\n\\nvar _break2 = _interopRequireDefault(_break);\\n\\nvar _cursor = __webpack_require__(/*! ../blots/cursor */ \\\"./blots/cursor.js\\\");\\n\\nvar _cursor2 = _interopRequireDefault(_cursor);\\n\\nvar _text = __webpack_require__(/*! ../blots/text */ \\\"./blots/text.js\\\");\\n\\nvar _text2 = _interopRequireDefault(_text);\\n\\nvar _code = __webpack_require__(/*! ../formats/code */ \\\"./formats/code.js\\\");\\n\\nvar _code2 = _interopRequireDefault(_code);\\n\\nvar _clipboard = __webpack_require__(/*! ../modules/clipboard */ \\\"./modules/clipboard.js\\\");\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst TokenAttributor = new _parchment.ClassAttributor('code-token', 'hljs', {\\n scope: _parchment.Scope.INLINE\\n});\\nclass CodeToken extends _inline2.default {\\n static formats(node, scroll) {\\n while (node != null && node !== scroll.domNode) {\\n if (node.classList.contains(_code2.default.className)) {\\n return super.formats(node, scroll);\\n }\\n node = node.parentNode;\\n }\\n return undefined;\\n }\\n\\n constructor(scroll, domNode, value) {\\n super(scroll, domNode, value);\\n TokenAttributor.add(this.domNode, value);\\n }\\n\\n format(format, value) {\\n if (format !== CodeToken.blotName) {\\n super.format(format, value);\\n } else if (value) {\\n TokenAttributor.add(this.domNode, value);\\n } else {\\n TokenAttributor.remove(this.domNode);\\n this.domNode.classList.remove(this.statics.className);\\n }\\n }\\n\\n optimize(...args) {\\n super.optimize(...args);\\n if (!TokenAttributor.value(this.domNode)) {\\n this.unwrap();\\n }\\n }\\n}\\nCodeToken.blotName = 'code-token';\\nCodeToken.className = 'ql-token';\\n\\nclass SyntaxCodeBlock extends _code2.default {\\n static create(value) {\\n const domNode = super.create(value);\\n if (typeof value === 'string') {\\n domNode.setAttribute('data-language', value);\\n }\\n return domNode;\\n }\\n\\n static formats(domNode) {\\n return domNode.getAttribute('data-language') || 'plain';\\n }\\n\\n static register() {} // Syntax module will register\\n\\n delta() {\\n if (this.cache.delta == null) {\\n const delta = super.delta();\\n this.cache.delta = delta.compose(new _quillDelta2.default().retain(delta.length(), {\\n [CodeToken.blotName]: null\\n }));\\n }\\n return this.cache.delta;\\n }\\n\\n format(name, value) {\\n if (name === this.statics.blotName && value) {\\n this.domNode.setAttribute('data-language', value);\\n } else {\\n super.format(name, value);\\n }\\n }\\n\\n replaceWith(name, value) {\\n this.formatAt(0, this.length(), CodeToken.blotName, false);\\n return super.replaceWith(name, value);\\n }\\n}\\n\\nclass SyntaxCodeBlockContainer extends _code.CodeBlockContainer {\\n attach() {\\n super.attach();\\n this.forceNext = false;\\n this.scroll.emitMount(this);\\n }\\n\\n format(name, value) {\\n if (name === SyntaxCodeBlock.blotName) {\\n this.forceNext = true;\\n this.children.forEach(child => {\\n child.format(name, value);\\n });\\n }\\n }\\n\\n formatAt(index, length, name, value) {\\n if (name === SyntaxCodeBlock.blotName) {\\n this.forceNext = true;\\n }\\n super.formatAt(index, length, name, value);\\n }\\n\\n highlight(highlight, forced = false) {\\n if (this.children.head == null) return;\\n const nodes = Array.from(this.domNode.childNodes).filter(node => node !== this.uiNode);\\n const text = `${nodes.map(node => node.textContent).join('\\\\n')}\\\\n`;\\n const language = SyntaxCodeBlock.formats(this.children.head.domNode);\\n if (forced || this.forceNext || this.cachedText !== text) {\\n if (text.trim().length > 0 || this.cachedText == null) {\\n const oldDelta = this.children.reduce((delta, child) => {\\n return delta.concat((0, _block.blockDelta)(child));\\n }, new _quillDelta2.default());\\n const delta = highlight(text, language);\\n oldDelta.diff(delta).reduce((index, { retain, attributes }) => {\\n // Should be all retains\\n if (!retain) return index;\\n if (attributes) {\\n Object.keys(attributes).forEach(format => {\\n if ([SyntaxCodeBlock.blotName, CodeToken.blotName].includes(format)) {\\n this.formatAt(index, retain, format, attributes[format]);\\n }\\n });\\n }\\n return index + retain;\\n }, 0);\\n }\\n this.cachedText = text;\\n this.forceNext = false;\\n }\\n }\\n\\n optimize(context) {\\n super.optimize(context);\\n if (this.parent != null && this.children.head != null && this.uiNode != null) {\\n const language = SyntaxCodeBlock.formats(this.children.head.domNode);\\n if (language !== this.uiNode.value) {\\n this.uiNode.value = language;\\n }\\n }\\n }\\n}\\nSyntaxCodeBlockContainer.allowedChildren = [SyntaxCodeBlock];\\nSyntaxCodeBlock.requiredContainer = SyntaxCodeBlockContainer;\\nSyntaxCodeBlock.allowedChildren = [CodeToken, _cursor2.default, _text2.default, _break2.default];\\n\\nclass Syntax extends _module2.default {\\n static register() {\\n _quill2.default.register(CodeToken, true);\\n _quill2.default.register(SyntaxCodeBlock, true);\\n _quill2.default.register(SyntaxCodeBlockContainer, true);\\n }\\n\\n constructor(quill, options) {\\n super(quill, options);\\n if (this.options.hljs == null) {\\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\\n }\\n this.highlightBlot = this.highlightBlot.bind(this);\\n this.initListener();\\n this.initTimer();\\n }\\n\\n initListener() {\\n this.quill.on(_quill2.default.events.SCROLL_BLOT_MOUNT, blot => {\\n if (!(blot instanceof SyntaxCodeBlockContainer)) return;\\n const select = this.quill.root.ownerDocument.createElement('select');\\n this.options.languages.forEach(({ key, label }) => {\\n const option = select.ownerDocument.createElement('option');\\n option.textContent = label;\\n option.setAttribute('value', key);\\n select.appendChild(option);\\n });\\n select.addEventListener('change', () => {\\n blot.format(SyntaxCodeBlock.blotName, select.value);\\n this.quill.root.focus(); // Prevent scrolling\\n this.highlight(blot, true);\\n });\\n if (blot.uiNode == null) {\\n blot.attachUI(select);\\n if (blot.children.head) {\\n select.value = SyntaxCodeBlock.formats(blot.children.head.domNode);\\n }\\n }\\n });\\n }\\n\\n initTimer() {\\n let timer = null;\\n this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, () => {\\n clearTimeout(timer);\\n timer = setTimeout(() => {\\n this.highlight();\\n timer = null;\\n }, this.options.interval);\\n });\\n }\\n\\n highlight(blot = null, force = false) {\\n if (this.quill.selection.composing) return;\\n this.quill.update(_quill2.default.sources.USER);\\n const range = this.quill.getSelection();\\n const blots = blot == null ? this.quill.scroll.descendants(SyntaxCodeBlockContainer) : [blot];\\n blots.forEach(container => {\\n container.highlight(this.highlightBlot, force);\\n });\\n this.quill.update(_quill2.default.sources.SILENT);\\n if (range != null) {\\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\\n }\\n }\\n\\n highlightBlot(text, language = 'plain') {\\n if (language === 'plain') {\\n return text.replace(/[&<>\\\"']/g, s => {\\n // https://lodash.com/docs#escape\\n const entityMap = {\\n '&': '&',\\n '<': '<',\\n '>': '>',\\n '\\\"': '"',\\n \\\"'\\\": '''\\n };\\n return entityMap[s];\\n }).split('\\\\n').reduce((delta, line, i) => {\\n if (i !== 0) {\\n delta.insert('\\\\n', { [_code2.default.blotName]: language });\\n }\\n return delta.insert(line);\\n }, new _quillDelta2.default());\\n }\\n const container = this.quill.root.ownerDocument.createElement('div');\\n container.classList.add(_code2.default.className);\\n container.innerHTML = this.options.hljs.highlight(language, text).value;\\n return (0, _clipboard.traverse)(this.quill.scroll, container, [(node, delta) => {\\n const value = TokenAttributor.value(node);\\n if (value) {\\n return delta.compose(new _quillDelta2.default().retain(delta.length(), {\\n [CodeToken.blotName]: value\\n }));\\n }\\n return delta;\\n }], [(node, delta) => {\\n return node.data.split('\\\\n').reduce((memo, nodeText, i) => {\\n if (i !== 0) memo.insert('\\\\n', { [_code2.default.blotName]: language });\\n return memo.insert(nodeText);\\n }, delta);\\n }], new WeakMap());\\n }\\n}\\nSyntax.DEFAULTS = {\\n hljs: (() => {\\n return window.hljs;\\n })(),\\n interval: 1000,\\n languages: [{ key: 'plain', label: 'Plain' }, { key: 'bash', label: 'Bash' }, { key: 'cpp', label: 'C++' }, { key: 'cs', label: 'C#' }, { key: 'css', label: 'CSS' }, { key: 'diff', label: 'Diff' }, { key: 'xml', label: 'HTML/XML' }, { key: 'java', label: 'Java' }, { key: 'javascript', label: 'Javascript' }, { key: 'markdown', label: 'Markdown' }, { key: 'php', label: 'PHP' }, { key: 'python', label: 'Python' }, { key: 'ruby', label: 'Ruby' }, { key: 'sql', label: 'SQL' }]\\n};\\n\\nexports.CodeBlock = SyntaxCodeBlock;\\nexports.CodeToken = CodeToken;\\nexports.default = Syntax;\\n\\n//# sourceURL=webpack://Quill/./modules/syntax.js?\");\n\n/***/ }),\n\n/***/ \"./modules/table.js\":\n/*!**************************!*\\\n !*** ./modules/table.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _quillDelta = __webpack_require__(/*! quill-delta */ \\\"./node_modules/quill-delta/lib/delta.js\\\");\\n\\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\\n\\nvar _quill = __webpack_require__(/*! ../core/quill */ \\\"./core/quill.js\\\");\\n\\nvar _quill2 = _interopRequireDefault(_quill);\\n\\nvar _module = __webpack_require__(/*! ../core/module */ \\\"./core/module.js\\\");\\n\\nvar _module2 = _interopRequireDefault(_module);\\n\\nvar _table = __webpack_require__(/*! ../formats/table */ \\\"./formats/table.js\\\");\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Table extends _module2.default {\\n static register() {\\n _quill2.default.register(_table.TableCell);\\n _quill2.default.register(_table.TableRow);\\n _quill2.default.register(_table.TableBody);\\n _quill2.default.register(_table.TableContainer);\\n }\\n\\n constructor(...args) {\\n super(...args);\\n this.listenBalanceCells();\\n }\\n\\n balanceTables() {\\n this.quill.scroll.descendants(_table.TableContainer).forEach(table => {\\n table.balanceCells();\\n });\\n }\\n\\n deleteColumn() {\\n var _getTable = this.getTable(),\\n _getTable2 = _slicedToArray(_getTable, 3);\\n\\n const table = _getTable2[0],\\n row = _getTable2[1],\\n cell = _getTable2[2];\\n\\n if (cell == null) return;\\n const column = row.children.indexOf(cell);\\n table.deleteColumn(column);\\n this.quill.update(_quill2.default.sources.USER);\\n }\\n\\n deleteRow() {\\n var _getTable3 = this.getTable(),\\n _getTable4 = _slicedToArray(_getTable3, 2);\\n\\n const row = _getTable4[1];\\n\\n if (row == null) return;\\n row.remove();\\n this.quill.update(_quill2.default.sources.USER);\\n }\\n\\n deleteTable() {\\n var _getTable5 = this.getTable(),\\n _getTable6 = _slicedToArray(_getTable5, 1);\\n\\n const table = _getTable6[0];\\n\\n if (table == null) return;\\n const offset = table.offset();\\n table.remove();\\n this.quill.update(_quill2.default.sources.USER);\\n this.quill.setSelection(offset, _quill2.default.sources.SILENT);\\n }\\n\\n getTable(range = this.quill.getSelection()) {\\n if (range == null) return [null, null, null, -1];\\n\\n var _quill$getLine = this.quill.getLine(range.index),\\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2);\\n\\n const cell = _quill$getLine2[0],\\n offset = _quill$getLine2[1];\\n\\n if (cell == null || cell.statics.blotName !== _table.TableCell.blotName) {\\n return [null, null, null, -1];\\n }\\n const row = cell.parent;\\n const table = row.parent.parent;\\n return [table, row, cell, offset];\\n }\\n\\n insertColumn(offset) {\\n const range = this.quill.getSelection();\\n\\n var _getTable7 = this.getTable(range),\\n _getTable8 = _slicedToArray(_getTable7, 3);\\n\\n const table = _getTable8[0],\\n row = _getTable8[1],\\n cell = _getTable8[2];\\n\\n if (cell == null) return;\\n const column = row.children.offset(cell);\\n table.insertColumn(column + offset);\\n this.quill.update(_quill2.default.sources.USER);\\n let shift = row.parent.children.indexOf(row);\\n if (offset === 0) {\\n shift += 1;\\n }\\n this.quill.setSelection(range.index + shift, range.length, _quill2.default.sources.SILENT);\\n }\\n\\n insertColumnLeft() {\\n this.insertColumn(0);\\n }\\n\\n insertColumnRight() {\\n this.insertColumn(1);\\n }\\n\\n insertRow(offset) {\\n const range = this.quill.getSelection();\\n\\n var _getTable9 = this.getTable(range),\\n _getTable10 = _slicedToArray(_getTable9, 3);\\n\\n const table = _getTable10[0],\\n row = _getTable10[1],\\n cell = _getTable10[2];\\n\\n if (cell == null) return;\\n const index = row.parent.children.indexOf(row);\\n table.insertRow(index + offset);\\n this.quill.update(_quill2.default.sources.USER);\\n if (offset > 0) {\\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\\n } else {\\n this.quill.setSelection(range.index + row.children.length, range.length, _quill2.default.sources.SILENT);\\n }\\n }\\n\\n insertRowAbove() {\\n this.insertRow(0);\\n }\\n\\n insertRowBelow() {\\n this.insertRow(1);\\n }\\n\\n insertTable(rows, columns) {\\n const range = this.quill.getSelection();\\n if (range == null) return;\\n const delta = new Array(rows).fill(0).reduce(memo => {\\n const text = new Array(columns).fill('\\\\n').join('');\\n return memo.insert(text, { table: (0, _table.tableId)() });\\n }, new _quillDelta2.default().retain(range.index));\\n this.quill.updateContents(delta, _quill2.default.sources.USER);\\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\\n this.balanceTables();\\n }\\n\\n listenBalanceCells() {\\n this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, mutations => {\\n mutations.some(mutation => {\\n if (mutation.target.tagName === 'TABLE') {\\n this.quill.once(_quill2.default.events.TEXT_CHANGE, (delta, old, source) => {\\n if (source !== _quill2.default.sources.USER) return;\\n this.balanceTables();\\n });\\n return true;\\n }\\n return false;\\n });\\n });\\n }\\n}\\n\\nexports.default = Table;\\n\\n//# sourceURL=webpack://Quill/./modules/table.js?\");\n\n/***/ }),\n\n/***/ \"./modules/toolbar.js\":\n/*!****************************!*\\\n !*** ./modules/toolbar.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.addControls = exports.default = undefined;\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _quillDelta = __webpack_require__(/*! quill-delta */ \\\"./node_modules/quill-delta/lib/delta.js\\\");\\n\\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\\n\\nvar _parchment = __webpack_require__(/*! parchment */ \\\"./node_modules/parchment/src/parchment.ts\\\");\\n\\nvar _quill = __webpack_require__(/*! ../core/quill */ \\\"./core/quill.js\\\");\\n\\nvar _quill2 = _interopRequireDefault(_quill);\\n\\nvar _logger = __webpack_require__(/*! ../core/logger */ \\\"./core/logger.js\\\");\\n\\nvar _logger2 = _interopRequireDefault(_logger);\\n\\nvar _module = __webpack_require__(/*! ../core/module */ \\\"./core/module.js\\\");\\n\\nvar _module2 = _interopRequireDefault(_module);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst debug = (0, _logger2.default)('quill:toolbar');\\n\\nclass Toolbar extends _module2.default {\\n constructor(quill, options) {\\n super(quill, options);\\n if (Array.isArray(this.options.container)) {\\n const container = document.createElement('div');\\n addControls(container, this.options.container);\\n quill.container.parentNode.insertBefore(container, quill.container);\\n this.container = container;\\n } else if (typeof this.options.container === 'string') {\\n this.container = document.querySelector(this.options.container);\\n } else {\\n this.container = this.options.container;\\n }\\n if (!(this.container instanceof HTMLElement)) {\\n return debug.error('Container required for toolbar', this.options);\\n }\\n this.container.classList.add('ql-toolbar');\\n this.controls = [];\\n this.handlers = {};\\n Object.keys(this.options.handlers).forEach(format => {\\n this.addHandler(format, this.options.handlers[format]);\\n });\\n Array.from(this.container.querySelectorAll('button, select')).forEach(input => {\\n this.attach(input);\\n });\\n this.quill.on(_quill2.default.events.EDITOR_CHANGE, (type, range) => {\\n if (type === _quill2.default.events.SELECTION_CHANGE) {\\n this.update(range);\\n }\\n });\\n this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, () => {\\n var _quill$selection$getR = this.quill.selection.getRange(),\\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1);\\n\\n const range = _quill$selection$getR2[0]; // quill.getSelection triggers update\\n\\n this.update(range);\\n });\\n }\\n\\n addHandler(format, handler) {\\n this.handlers[format] = handler;\\n }\\n\\n attach(input) {\\n let format = Array.from(input.classList).find(className => {\\n return className.indexOf('ql-') === 0;\\n });\\n if (!format) return;\\n format = format.slice('ql-'.length);\\n if (input.tagName === 'BUTTON') {\\n input.setAttribute('type', 'button');\\n }\\n if (this.handlers[format] == null && this.quill.scroll.query(format) == null) {\\n debug.warn('ignoring attaching to nonexistent format', format, input);\\n return;\\n }\\n const eventName = input.tagName === 'SELECT' ? 'change' : 'click';\\n input.addEventListener(eventName, e => {\\n let value;\\n if (input.tagName === 'SELECT') {\\n if (input.selectedIndex < 0) return;\\n const selected = input.options[input.selectedIndex];\\n if (selected.hasAttribute('selected')) {\\n value = false;\\n } else {\\n value = selected.value || false;\\n }\\n } else {\\n if (input.classList.contains('ql-active')) {\\n value = false;\\n } else {\\n value = input.value || !input.hasAttribute('value');\\n }\\n e.preventDefault();\\n }\\n this.quill.focus();\\n\\n var _quill$selection$getR3 = this.quill.selection.getRange(),\\n _quill$selection$getR4 = _slicedToArray(_quill$selection$getR3, 1);\\n\\n const range = _quill$selection$getR4[0];\\n\\n if (this.handlers[format] != null) {\\n this.handlers[format].call(this, value);\\n } else if (this.quill.scroll.query(format).prototype instanceof _parchment.EmbedBlot) {\\n value = prompt(`Enter ${format}`); // eslint-disable-line no-alert\\n if (!value) return;\\n this.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ [format]: value }), _quill2.default.sources.USER);\\n } else {\\n this.quill.format(format, value, _quill2.default.sources.USER);\\n }\\n this.update(range);\\n });\\n this.controls.push([format, input]);\\n }\\n\\n update(range) {\\n const formats = range == null ? {} : this.quill.getFormat(range);\\n this.controls.forEach(pair => {\\n var _pair = _slicedToArray(pair, 2);\\n\\n const format = _pair[0],\\n input = _pair[1];\\n\\n if (input.tagName === 'SELECT') {\\n let option;\\n if (range == null) {\\n option = null;\\n } else if (formats[format] == null) {\\n option = input.querySelector('option[selected]');\\n } else if (!Array.isArray(formats[format])) {\\n let value = formats[format];\\n if (typeof value === 'string') {\\n value = value.replace(/\\\"/g, '\\\\\\\\\\\"');\\n }\\n option = input.querySelector(`option[value=\\\"${value}\\\"]`);\\n }\\n if (option == null) {\\n input.value = ''; // TODO make configurable?\\n input.selectedIndex = -1;\\n } else {\\n option.selected = true;\\n }\\n } else if (range == null) {\\n input.classList.remove('ql-active');\\n } else if (input.hasAttribute('value')) {\\n // both being null should match (default values)\\n // '1' should match with 1 (headers)\\n const isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\\n input.classList.toggle('ql-active', isActive);\\n } else {\\n input.classList.toggle('ql-active', formats[format] != null);\\n }\\n });\\n }\\n}\\nToolbar.DEFAULTS = {};\\n\\nfunction addButton(container, format, value) {\\n const input = document.createElement('button');\\n input.setAttribute('type', 'button');\\n input.classList.add(`ql-${format}`);\\n if (value != null) {\\n input.value = value;\\n }\\n container.appendChild(input);\\n}\\n\\nfunction addControls(container, groups) {\\n if (!Array.isArray(groups[0])) {\\n groups = [groups];\\n }\\n groups.forEach(controls => {\\n const group = document.createElement('span');\\n group.classList.add('ql-formats');\\n controls.forEach(control => {\\n if (typeof control === 'string') {\\n addButton(group, control);\\n } else {\\n const format = Object.keys(control)[0];\\n const value = control[format];\\n if (Array.isArray(value)) {\\n addSelect(group, format, value);\\n } else {\\n addButton(group, format, value);\\n }\\n }\\n });\\n container.appendChild(group);\\n });\\n}\\n\\nfunction addSelect(container, format, values) {\\n const input = document.createElement('select');\\n input.classList.add(`ql-${format}`);\\n values.forEach(value => {\\n const option = document.createElement('option');\\n if (value !== false) {\\n option.setAttribute('value', value);\\n } else {\\n option.setAttribute('selected', 'selected');\\n }\\n input.appendChild(option);\\n });\\n container.appendChild(input);\\n}\\n\\nToolbar.DEFAULTS = {\\n container: null,\\n handlers: {\\n clean() {\\n const range = this.quill.getSelection();\\n if (range == null) return;\\n if (range.length === 0) {\\n const formats = this.quill.getFormat();\\n Object.keys(formats).forEach(name => {\\n // Clean functionality in existing apps only clean inline formats\\n if (this.quill.scroll.query(name, _parchment.Scope.INLINE) != null) {\\n this.quill.format(name, false, _quill2.default.sources.USER);\\n }\\n });\\n } else {\\n this.quill.removeFormat(range, _quill2.default.sources.USER);\\n }\\n },\\n direction(value) {\\n var _quill$getFormat = this.quill.getFormat();\\n\\n const align = _quill$getFormat.align;\\n\\n if (value === 'rtl' && align == null) {\\n this.quill.format('align', 'right', _quill2.default.sources.USER);\\n } else if (!value && align === 'right') {\\n this.quill.format('align', false, _quill2.default.sources.USER);\\n }\\n this.quill.format('direction', value, _quill2.default.sources.USER);\\n },\\n indent(value) {\\n const range = this.quill.getSelection();\\n const formats = this.quill.getFormat(range);\\n const indent = parseInt(formats.indent || 0, 10);\\n if (value === '+1' || value === '-1') {\\n let modifier = value === '+1' ? 1 : -1;\\n if (formats.direction === 'rtl') modifier *= -1;\\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\\n }\\n },\\n link(value) {\\n if (value === true) {\\n value = prompt('Enter link URL:'); // eslint-disable-line no-alert\\n }\\n this.quill.format('link', value, _quill2.default.sources.USER);\\n },\\n list(value) {\\n const range = this.quill.getSelection();\\n const formats = this.quill.getFormat(range);\\n if (value === 'check') {\\n if (formats.list === 'checked' || formats.list === 'unchecked') {\\n this.quill.format('list', false, _quill2.default.sources.USER);\\n } else {\\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\\n }\\n } else {\\n this.quill.format('list', value, _quill2.default.sources.USER);\\n }\\n }\\n }\\n};\\n\\nexports.default = Toolbar;\\nexports.addControls = addControls;\\n\\n//# sourceURL=webpack://Quill/./modules/toolbar.js?\");\n\n/***/ }),\n\n/***/ \"./modules/uploader.js\":\n/*!*****************************!*\\\n !*** ./modules/uploader.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _quillDelta = __webpack_require__(/*! quill-delta */ \\\"./node_modules/quill-delta/lib/delta.js\\\");\\n\\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\\n\\nvar _emitter = __webpack_require__(/*! ../core/emitter */ \\\"./core/emitter.js\\\");\\n\\nvar _emitter2 = _interopRequireDefault(_emitter);\\n\\nvar _module = __webpack_require__(/*! ../core/module */ \\\"./core/module.js\\\");\\n\\nvar _module2 = _interopRequireDefault(_module);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass Uploader extends _module2.default {\\n constructor(quill, options) {\\n super(quill, options);\\n quill.root.addEventListener('drop', e => {\\n e.preventDefault();\\n let native;\\n if (document.caretRangeFromPoint) {\\n native = document.caretRangeFromPoint(e.clientX, e.clientY);\\n } else if (document.caretPositionFromPoint) {\\n const position = document.caretPositionFromPoint(e.clientX, e.clientY);\\n native = document.createRange();\\n native.setStart(position.offsetNode, position.offset);\\n native.setEnd(position.offsetNode, position.offset);\\n } else {\\n return;\\n }\\n const normalized = quill.selection.normalizeNative(native);\\n const range = quill.selection.normalizedToRange(normalized);\\n this.upload(range, e.dataTransfer.files);\\n });\\n }\\n\\n upload(range, files) {\\n const uploads = [];\\n Array.from(files).forEach(file => {\\n if (file && this.options.mimetypes.includes(file.type)) {\\n uploads.push(file);\\n }\\n });\\n if (uploads.length > 0) {\\n this.options.handler.call(this, range, uploads);\\n }\\n }\\n}\\n\\nUploader.DEFAULTS = {\\n mimetypes: ['image/png', 'image/jpeg'],\\n handler(range, files) {\\n const promises = files.map(file => {\\n return new Promise(resolve => {\\n const reader = new FileReader();\\n reader.onload = e => {\\n resolve(e.target.result);\\n };\\n reader.readAsDataURL(file);\\n });\\n });\\n Promise.all(promises).then(images => {\\n const update = images.reduce((delta, image) => {\\n return delta.insert({ image });\\n }, new _quillDelta2.default().retain(range.index).delete(range.length));\\n this.quill.updateContents(update, _emitter2.default.sources.USER);\\n this.quill.setSelection(range.index + images.length, _emitter2.default.sources.SILENT);\\n });\\n }\\n};\\n\\nexports.default = Uploader;\\n\\n//# sourceURL=webpack://Quill/./modules/uploader.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/clone/clone.js\":\n/*!*************************************!*\\\n !*** ./node_modules/clone/clone.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"var clone = (function() {\\n'use strict';\\n\\nfunction _instanceof(obj, type) {\\n return type != null && obj instanceof type;\\n}\\n\\nvar nativeMap;\\ntry {\\n nativeMap = Map;\\n} catch(_) {\\n // maybe a reference error because no `Map`. Give it a dummy value that no\\n // value will ever be an instanceof.\\n nativeMap = function() {};\\n}\\n\\nvar nativeSet;\\ntry {\\n nativeSet = Set;\\n} catch(_) {\\n nativeSet = function() {};\\n}\\n\\nvar nativePromise;\\ntry {\\n nativePromise = Promise;\\n} catch(_) {\\n nativePromise = function() {};\\n}\\n\\n/**\\n * Clones (copies) an Object using deep copying.\\n *\\n * This function supports circular references by default, but if you are certain\\n * there are no circular references in your object, you can save some CPU time\\n * by calling clone(obj, false).\\n *\\n * Caution: if `circular` is false and `parent` contains circular references,\\n * your program may enter an infinite loop and crash.\\n *\\n * @param `parent` - the object to be cloned\\n * @param `circular` - set to true if the object to be cloned may contain\\n * circular references. (optional - true by default)\\n * @param `depth` - set to a number if the object is only to be cloned to\\n * a particular depth. (optional - defaults to Infinity)\\n * @param `prototype` - sets the prototype to be used when cloning an object.\\n * (optional - defaults to parent prototype).\\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\\n * should be cloned as well. Non-enumerable properties on the prototype\\n * chain will be ignored. (optional - false by default)\\n*/\\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\\n if (typeof circular === 'object') {\\n depth = circular.depth;\\n prototype = circular.prototype;\\n includeNonEnumerable = circular.includeNonEnumerable;\\n circular = circular.circular;\\n }\\n // maintain two arrays for circular references, where corresponding parents\\n // and children have the same index\\n var allParents = [];\\n var allChildren = [];\\n\\n var useBuffer = typeof Buffer != 'undefined';\\n\\n if (typeof circular == 'undefined')\\n circular = true;\\n\\n if (typeof depth == 'undefined')\\n depth = Infinity;\\n\\n // recurse this function so we don't reset allParents and allChildren\\n function _clone(parent, depth) {\\n // cloning null always returns null\\n if (parent === null)\\n return null;\\n\\n if (depth === 0)\\n return parent;\\n\\n var child;\\n var proto;\\n if (typeof parent != 'object') {\\n return parent;\\n }\\n\\n if (_instanceof(parent, nativeMap)) {\\n child = new nativeMap();\\n } else if (_instanceof(parent, nativeSet)) {\\n child = new nativeSet();\\n } else if (_instanceof(parent, nativePromise)) {\\n child = new nativePromise(function (resolve, reject) {\\n parent.then(function(value) {\\n resolve(_clone(value, depth - 1));\\n }, function(err) {\\n reject(_clone(err, depth - 1));\\n });\\n });\\n } else if (clone.__isArray(parent)) {\\n child = [];\\n } else if (clone.__isRegExp(parent)) {\\n child = new RegExp(parent.source, __getRegExpFlags(parent));\\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\\n } else if (clone.__isDate(parent)) {\\n child = new Date(parent.getTime());\\n } else if (useBuffer && Buffer.isBuffer(parent)) {\\n if (Buffer.allocUnsafe) {\\n // Node.js >= 4.5.0\\n child = Buffer.allocUnsafe(parent.length);\\n } else {\\n // Older Node.js versions\\n child = new Buffer(parent.length);\\n }\\n parent.copy(child);\\n return child;\\n } else if (_instanceof(parent, Error)) {\\n child = Object.create(parent);\\n } else {\\n if (typeof prototype == 'undefined') {\\n proto = Object.getPrototypeOf(parent);\\n child = Object.create(proto);\\n }\\n else {\\n child = Object.create(prototype);\\n proto = prototype;\\n }\\n }\\n\\n if (circular) {\\n var index = allParents.indexOf(parent);\\n\\n if (index != -1) {\\n return allChildren[index];\\n }\\n allParents.push(parent);\\n allChildren.push(child);\\n }\\n\\n if (_instanceof(parent, nativeMap)) {\\n parent.forEach(function(value, key) {\\n var keyChild = _clone(key, depth - 1);\\n var valueChild = _clone(value, depth - 1);\\n child.set(keyChild, valueChild);\\n });\\n }\\n if (_instanceof(parent, nativeSet)) {\\n parent.forEach(function(value) {\\n var entryChild = _clone(value, depth - 1);\\n child.add(entryChild);\\n });\\n }\\n\\n for (var i in parent) {\\n var attrs;\\n if (proto) {\\n attrs = Object.getOwnPropertyDescriptor(proto, i);\\n }\\n\\n if (attrs && attrs.set == null) {\\n continue;\\n }\\n child[i] = _clone(parent[i], depth - 1);\\n }\\n\\n if (Object.getOwnPropertySymbols) {\\n var symbols = Object.getOwnPropertySymbols(parent);\\n for (var i = 0; i < symbols.length; i++) {\\n // Don't need to worry about cloning a symbol because it is a primitive,\\n // like a number or string.\\n var symbol = symbols[i];\\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\\n continue;\\n }\\n child[symbol] = _clone(parent[symbol], depth - 1);\\n if (!descriptor.enumerable) {\\n Object.defineProperty(child, symbol, {\\n enumerable: false\\n });\\n }\\n }\\n }\\n\\n if (includeNonEnumerable) {\\n var allPropertyNames = Object.getOwnPropertyNames(parent);\\n for (var i = 0; i < allPropertyNames.length; i++) {\\n var propertyName = allPropertyNames[i];\\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\\n if (descriptor && descriptor.enumerable) {\\n continue;\\n }\\n child[propertyName] = _clone(parent[propertyName], depth - 1);\\n Object.defineProperty(child, propertyName, {\\n enumerable: false\\n });\\n }\\n }\\n\\n return child;\\n }\\n\\n return _clone(parent, depth);\\n}\\n\\n/**\\n * Simple flat clone using prototype, accepts only objects, usefull for property\\n * override on FLAT configuration object (no nested props).\\n *\\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\\n * works.\\n */\\nclone.clonePrototype = function clonePrototype(parent) {\\n if (parent === null)\\n return null;\\n\\n var c = function () {};\\n c.prototype = parent;\\n return new c();\\n};\\n\\n// private utility functions\\n\\nfunction __objToStr(o) {\\n return Object.prototype.toString.call(o);\\n}\\nclone.__objToStr = __objToStr;\\n\\nfunction __isDate(o) {\\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\\n}\\nclone.__isDate = __isDate;\\n\\nfunction __isArray(o) {\\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\\n}\\nclone.__isArray = __isArray;\\n\\nfunction __isRegExp(o) {\\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\\n}\\nclone.__isRegExp = __isRegExp;\\n\\nfunction __getRegExpFlags(re) {\\n var flags = '';\\n if (re.global) flags += 'g';\\n if (re.ignoreCase) flags += 'i';\\n if (re.multiline) flags += 'm';\\n return flags;\\n}\\nclone.__getRegExpFlags = __getRegExpFlags;\\n\\nreturn clone;\\n})();\\n\\nif (typeof module === 'object' && module.exports) {\\n module.exports = clone;\\n}\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/clone/clone.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/deep-equal/index.js\":\n/*!******************************************!*\\\n !*** ./node_modules/deep-equal/index.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"var pSlice = Array.prototype.slice;\\nvar objectKeys = __webpack_require__(/*! ./lib/keys.js */ \\\"./node_modules/deep-equal/lib/keys.js\\\");\\nvar isArguments = __webpack_require__(/*! ./lib/is_arguments.js */ \\\"./node_modules/deep-equal/lib/is_arguments.js\\\");\\n\\nvar deepEqual = module.exports = function (actual, expected, opts) {\\n if (!opts) opts = {};\\n // 7.1. All identical values are equivalent, as determined by ===.\\n if (actual === expected) {\\n return true;\\n\\n } else if (actual instanceof Date && expected instanceof Date) {\\n return actual.getTime() === expected.getTime();\\n\\n // 7.3. Other pairs that do not both pass typeof value == 'object',\\n // equivalence is determined by ==.\\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\\n return opts.strict ? actual === expected : actual == expected;\\n\\n // 7.4. For all other Object pairs, including Array objects, equivalence is\\n // determined by having the same number of owned properties (as verified\\n // with Object.prototype.hasOwnProperty.call), the same set of keys\\n // (although not necessarily the same order), equivalent values for every\\n // corresponding key, and an identical 'prototype' property. Note: this\\n // accounts for both named and indexed properties on Arrays.\\n } else {\\n return objEquiv(actual, expected, opts);\\n }\\n}\\n\\nfunction isUndefinedOrNull(value) {\\n return value === null || value === undefined;\\n}\\n\\nfunction isBuffer (x) {\\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\\n return false;\\n }\\n if (x.length > 0 && typeof x[0] !== 'number') return false;\\n return true;\\n}\\n\\nfunction objEquiv(a, b, opts) {\\n var i, key;\\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\\n return false;\\n // an identical 'prototype' property.\\n if (a.prototype !== b.prototype) return false;\\n //~~~I've managed to break Object.keys through screwy arguments passing.\\n // Converting to array solves the problem.\\n if (isArguments(a)) {\\n if (!isArguments(b)) {\\n return false;\\n }\\n a = pSlice.call(a);\\n b = pSlice.call(b);\\n return deepEqual(a, b, opts);\\n }\\n if (isBuffer(a)) {\\n if (!isBuffer(b)) {\\n return false;\\n }\\n if (a.length !== b.length) return false;\\n for (i = 0; i < a.length; i++) {\\n if (a[i] !== b[i]) return false;\\n }\\n return true;\\n }\\n try {\\n var ka = objectKeys(a),\\n kb = objectKeys(b);\\n } catch (e) {//happens when one is a string literal and the other isn't\\n return false;\\n }\\n // having the same number of owned properties (keys incorporates\\n // hasOwnProperty)\\n if (ka.length != kb.length)\\n return false;\\n //the same set of keys (although not necessarily the same order),\\n ka.sort();\\n kb.sort();\\n //~~~cheap key test\\n for (i = ka.length - 1; i >= 0; i--) {\\n if (ka[i] != kb[i])\\n return false;\\n }\\n //equivalent values for every corresponding key, and\\n //~~~possibly expensive deep test\\n for (i = ka.length - 1; i >= 0; i--) {\\n key = ka[i];\\n if (!deepEqual(a[key], b[key], opts)) return false;\\n }\\n return typeof a === typeof b;\\n}\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/deep-equal/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/deep-equal/lib/is_arguments.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/deep-equal/lib/is_arguments.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"var supportsArgumentsClass = (function(){\\n return Object.prototype.toString.call(arguments)\\n})() == '[object Arguments]';\\n\\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\\n\\nexports.supported = supported;\\nfunction supported(object) {\\n return Object.prototype.toString.call(object) == '[object Arguments]';\\n};\\n\\nexports.unsupported = unsupported;\\nfunction unsupported(object){\\n return object &&\\n typeof object == 'object' &&\\n typeof object.length == 'number' &&\\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\\n false;\\n};\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/deep-equal/lib/is_arguments.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/deep-equal/lib/keys.js\":\n/*!*********************************************!*\\\n !*** ./node_modules/deep-equal/lib/keys.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"exports = module.exports = typeof Object.keys === 'function'\\n ? Object.keys : shim;\\n\\nexports.shim = shim;\\nfunction shim (obj) {\\n var keys = [];\\n for (var key in obj) keys.push(key);\\n return keys;\\n}\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/deep-equal/lib/keys.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/eventemitter3/index.js\":\n/*!*********************************************!*\\\n !*** ./node_modules/eventemitter3/index.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"'use strict';\\n\\nvar has = Object.prototype.hasOwnProperty\\n , prefix = '~';\\n\\n/**\\n * Constructor to create a storage for our `EE` objects.\\n * An `Events` instance is a plain object whose properties are event names.\\n *\\n * @constructor\\n * @private\\n */\\nfunction Events() {}\\n\\n//\\n// We try to not inherit from `Object.prototype`. In some engines creating an\\n// instance in this way is faster than calling `Object.create(null)` directly.\\n// If `Object.create(null)` is not supported we prefix the event names with a\\n// character to make sure that the built-in object properties are not\\n// overridden or used as an attack vector.\\n//\\nif (Object.create) {\\n Events.prototype = Object.create(null);\\n\\n //\\n // This hack is needed because the `__proto__` property is still inherited in\\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\\n //\\n if (!new Events().__proto__) prefix = false;\\n}\\n\\n/**\\n * Representation of a single event listener.\\n *\\n * @param {Function} fn The listener function.\\n * @param {*} context The context to invoke the listener with.\\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\\n * @constructor\\n * @private\\n */\\nfunction EE(fn, context, once) {\\n this.fn = fn;\\n this.context = context;\\n this.once = once || false;\\n}\\n\\n/**\\n * Add a listener for a given event.\\n *\\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\\n * @param {(String|Symbol)} event The event name.\\n * @param {Function} fn The listener function.\\n * @param {*} context The context to invoke the listener with.\\n * @param {Boolean} once Specify if the listener is a one-time listener.\\n * @returns {EventEmitter}\\n * @private\\n */\\nfunction addListener(emitter, event, fn, context, once) {\\n if (typeof fn !== 'function') {\\n throw new TypeError('The listener must be a function');\\n }\\n\\n var listener = new EE(fn, context || emitter, once)\\n , evt = prefix ? prefix + event : event;\\n\\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\\n else emitter._events[evt] = [emitter._events[evt], listener];\\n\\n return emitter;\\n}\\n\\n/**\\n * Clear event by name.\\n *\\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\\n * @param {(String|Symbol)} evt The Event name.\\n * @private\\n */\\nfunction clearEvent(emitter, evt) {\\n if (--emitter._eventsCount === 0) emitter._events = new Events();\\n else delete emitter._events[evt];\\n}\\n\\n/**\\n * Minimal `EventEmitter` interface that is molded against the Node.js\\n * `EventEmitter` interface.\\n *\\n * @constructor\\n * @public\\n */\\nfunction EventEmitter() {\\n this._events = new Events();\\n this._eventsCount = 0;\\n}\\n\\n/**\\n * Return an array listing the events for which the emitter has registered\\n * listeners.\\n *\\n * @returns {Array}\\n * @public\\n */\\nEventEmitter.prototype.eventNames = function eventNames() {\\n var names = []\\n , events\\n , name;\\n\\n if (this._eventsCount === 0) return names;\\n\\n for (name in (events = this._events)) {\\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\\n }\\n\\n if (Object.getOwnPropertySymbols) {\\n return names.concat(Object.getOwnPropertySymbols(events));\\n }\\n\\n return names;\\n};\\n\\n/**\\n * Return the listeners registered for a given event.\\n *\\n * @param {(String|Symbol)} event The event name.\\n * @returns {Array} The registered listeners.\\n * @public\\n */\\nEventEmitter.prototype.listeners = function listeners(event) {\\n var evt = prefix ? prefix + event : event\\n , handlers = this._events[evt];\\n\\n if (!handlers) return [];\\n if (handlers.fn) return [handlers.fn];\\n\\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\\n ee[i] = handlers[i].fn;\\n }\\n\\n return ee;\\n};\\n\\n/**\\n * Return the number of listeners listening to a given event.\\n *\\n * @param {(String|Symbol)} event The event name.\\n * @returns {Number} The number of listeners.\\n * @public\\n */\\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\\n var evt = prefix ? prefix + event : event\\n , listeners = this._events[evt];\\n\\n if (!listeners) return 0;\\n if (listeners.fn) return 1;\\n return listeners.length;\\n};\\n\\n/**\\n * Calls each of the listeners registered for a given event.\\n *\\n * @param {(String|Symbol)} event The event name.\\n * @returns {Boolean} `true` if the event had listeners, else `false`.\\n * @public\\n */\\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\\n var evt = prefix ? prefix + event : event;\\n\\n if (!this._events[evt]) return false;\\n\\n var listeners = this._events[evt]\\n , len = arguments.length\\n , args\\n , i;\\n\\n if (listeners.fn) {\\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\\n\\n switch (len) {\\n case 1: return listeners.fn.call(listeners.context), true;\\n case 2: return listeners.fn.call(listeners.context, a1), true;\\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\\n }\\n\\n for (i = 1, args = new Array(len -1); i < len; i++) {\\n args[i - 1] = arguments[i];\\n }\\n\\n listeners.fn.apply(listeners.context, args);\\n } else {\\n var length = listeners.length\\n , j;\\n\\n for (i = 0; i < length; i++) {\\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\\n\\n switch (len) {\\n case 1: listeners[i].fn.call(listeners[i].context); break;\\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\\n default:\\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\\n args[j - 1] = arguments[j];\\n }\\n\\n listeners[i].fn.apply(listeners[i].context, args);\\n }\\n }\\n }\\n\\n return true;\\n};\\n\\n/**\\n * Add a listener for a given event.\\n *\\n * @param {(String|Symbol)} event The event name.\\n * @param {Function} fn The listener function.\\n * @param {*} [context=this] The context to invoke the listener with.\\n * @returns {EventEmitter} `this`.\\n * @public\\n */\\nEventEmitter.prototype.on = function on(event, fn, context) {\\n return addListener(this, event, fn, context, false);\\n};\\n\\n/**\\n * Add a one-time listener for a given event.\\n *\\n * @param {(String|Symbol)} event The event name.\\n * @param {Function} fn The listener function.\\n * @param {*} [context=this] The context to invoke the listener with.\\n * @returns {EventEmitter} `this`.\\n * @public\\n */\\nEventEmitter.prototype.once = function once(event, fn, context) {\\n return addListener(this, event, fn, context, true);\\n};\\n\\n/**\\n * Remove the listeners of a given event.\\n *\\n * @param {(String|Symbol)} event The event name.\\n * @param {Function} fn Only remove the listeners that match this function.\\n * @param {*} context Only remove the listeners that have this context.\\n * @param {Boolean} once Only remove one-time listeners.\\n * @returns {EventEmitter} `this`.\\n * @public\\n */\\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\\n var evt = prefix ? prefix + event : event;\\n\\n if (!this._events[evt]) return this;\\n if (!fn) {\\n clearEvent(this, evt);\\n return this;\\n }\\n\\n var listeners = this._events[evt];\\n\\n if (listeners.fn) {\\n if (\\n listeners.fn === fn &&\\n (!once || listeners.once) &&\\n (!context || listeners.context === context)\\n ) {\\n clearEvent(this, evt);\\n }\\n } else {\\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\\n if (\\n listeners[i].fn !== fn ||\\n (once && !listeners[i].once) ||\\n (context && listeners[i].context !== context)\\n ) {\\n events.push(listeners[i]);\\n }\\n }\\n\\n //\\n // Reset the array, or remove it completely if we have no more listeners.\\n //\\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\\n else clearEvent(this, evt);\\n }\\n\\n return this;\\n};\\n\\n/**\\n * Remove all listeners, or those of the specified event.\\n *\\n * @param {(String|Symbol)} [event] The event name.\\n * @returns {EventEmitter} `this`.\\n * @public\\n */\\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\\n var evt;\\n\\n if (event) {\\n evt = prefix ? prefix + event : event;\\n if (this._events[evt]) clearEvent(this, evt);\\n } else {\\n this._events = new Events();\\n this._eventsCount = 0;\\n }\\n\\n return this;\\n};\\n\\n//\\n// Alias methods names because people roll like that.\\n//\\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\\n\\n//\\n// Expose the prefix.\\n//\\nEventEmitter.prefixed = prefix;\\n\\n//\\n// Allow `EventEmitter` to be imported as module namespace.\\n//\\nEventEmitter.EventEmitter = EventEmitter;\\n\\n//\\n// Expose the module.\\n//\\nif ('undefined' !== typeof module) {\\n module.exports = EventEmitter;\\n}\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/eventemitter3/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/extend/index.js\":\n/*!**************************************!*\\\n !*** ./node_modules/extend/index.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"'use strict';\\n\\nvar hasOwn = Object.prototype.hasOwnProperty;\\nvar toStr = Object.prototype.toString;\\n\\nvar isArray = function isArray(arr) {\\n\\tif (typeof Array.isArray === 'function') {\\n\\t\\treturn Array.isArray(arr);\\n\\t}\\n\\n\\treturn toStr.call(arr) === '[object Array]';\\n};\\n\\nvar isPlainObject = function isPlainObject(obj) {\\n\\tif (!obj || toStr.call(obj) !== '[object Object]') {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\\n\\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\\n\\t// Not own constructor property must be Object\\n\\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\t// Own properties are enumerated firstly, so to speed up,\\n\\t// if last one is own, then all properties are own.\\n\\tvar key;\\n\\tfor (key in obj) { /**/ }\\n\\n\\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\\n};\\n\\nmodule.exports = function extend() {\\n\\tvar options, name, src, copy, copyIsArray, clone;\\n\\tvar target = arguments[0];\\n\\tvar i = 1;\\n\\tvar length = arguments.length;\\n\\tvar deep = false;\\n\\n\\t// Handle a deep copy situation\\n\\tif (typeof target === 'boolean') {\\n\\t\\tdeep = target;\\n\\t\\ttarget = arguments[1] || {};\\n\\t\\t// skip the boolean and the target\\n\\t\\ti = 2;\\n\\t}\\n\\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\\n\\t\\ttarget = {};\\n\\t}\\n\\n\\tfor (; i < length; ++i) {\\n\\t\\toptions = arguments[i];\\n\\t\\t// Only deal with non-null/undefined values\\n\\t\\tif (options != null) {\\n\\t\\t\\t// Extend the base object\\n\\t\\t\\tfor (name in options) {\\n\\t\\t\\t\\tsrc = target[name];\\n\\t\\t\\t\\tcopy = options[name];\\n\\n\\t\\t\\t\\t// Prevent never-ending loop\\n\\t\\t\\t\\tif (target !== copy) {\\n\\t\\t\\t\\t\\t// Recurse if we're merging plain objects or arrays\\n\\t\\t\\t\\t\\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\\n\\t\\t\\t\\t\\t\\tif (copyIsArray) {\\n\\t\\t\\t\\t\\t\\t\\tcopyIsArray = false;\\n\\t\\t\\t\\t\\t\\t\\tclone = src && isArray(src) ? src : [];\\n\\t\\t\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\t\\t\\tclone = src && isPlainObject(src) ? src : {};\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t\\t// Never move original objects, clone them\\n\\t\\t\\t\\t\\t\\ttarget[name] = extend(deep, clone, copy);\\n\\n\\t\\t\\t\\t\\t// Don't bring in undefined values\\n\\t\\t\\t\\t\\t} else if (typeof copy !== 'undefined') {\\n\\t\\t\\t\\t\\t\\ttarget[name] = copy;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// Return the modified object\\n\\treturn target;\\n};\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/extend/index.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/fast-diff/diff.js\":\n/*!****************************************!*\\\n !*** ./node_modules/fast-diff/diff.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\neval(\"/**\\n * This library modifies the diff-patch-match library by Neil Fraser\\n * by removing the patch and match functionality and certain advanced\\n * options in the diff function. The original license is as follows:\\n *\\n * ===\\n *\\n * Diff Match and Patch\\n *\\n * Copyright 2006 Google Inc.\\n * http://code.google.com/p/google-diff-match-patch/\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\\n/**\\n * The data structure representing a diff is an array of tuples:\\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\\n */\\nvar DIFF_DELETE = -1;\\nvar DIFF_INSERT = 1;\\nvar DIFF_EQUAL = 0;\\n\\n\\n/**\\n * Find the differences between two texts. Simplifies the problem by stripping\\n * any common prefix or suffix off the texts before diffing.\\n * @param {string} text1 Old string to be diffed.\\n * @param {string} text2 New string to be diffed.\\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\\n * @return {Array} Array of diff tuples.\\n */\\nfunction diff_main(text1, text2, cursor_pos) {\\n // Check for equality (speedup).\\n if (text1 == text2) {\\n if (text1) {\\n return [[DIFF_EQUAL, text1]];\\n }\\n return [];\\n }\\n\\n // Check cursor_pos within bounds\\n if (cursor_pos < 0 || text1.length < cursor_pos) {\\n cursor_pos = null;\\n }\\n\\n // Trim off common prefix (speedup).\\n var commonlength = diff_commonPrefix(text1, text2);\\n var commonprefix = text1.substring(0, commonlength);\\n text1 = text1.substring(commonlength);\\n text2 = text2.substring(commonlength);\\n\\n // Trim off common suffix (speedup).\\n commonlength = diff_commonSuffix(text1, text2);\\n var commonsuffix = text1.substring(text1.length - commonlength);\\n text1 = text1.substring(0, text1.length - commonlength);\\n text2 = text2.substring(0, text2.length - commonlength);\\n\\n // Compute the diff on the middle block.\\n var diffs = diff_compute_(text1, text2);\\n\\n // Restore the prefix and suffix.\\n if (commonprefix) {\\n diffs.unshift([DIFF_EQUAL, commonprefix]);\\n }\\n if (commonsuffix) {\\n diffs.push([DIFF_EQUAL, commonsuffix]);\\n }\\n diff_cleanupMerge(diffs);\\n if (cursor_pos != null) {\\n diffs = fix_cursor(diffs, cursor_pos);\\n }\\n diffs = fix_emoji(diffs);\\n return diffs;\\n};\\n\\n\\n/**\\n * Find the differences between two texts. Assumes that the texts do not\\n * have any common prefix or suffix.\\n * @param {string} text1 Old string to be diffed.\\n * @param {string} text2 New string to be diffed.\\n * @return {Array} Array of diff tuples.\\n */\\nfunction diff_compute_(text1, text2) {\\n var diffs;\\n\\n if (!text1) {\\n // Just add some text (speedup).\\n return [[DIFF_INSERT, text2]];\\n }\\n\\n if (!text2) {\\n // Just delete some text (speedup).\\n return [[DIFF_DELETE, text1]];\\n }\\n\\n var longtext = text1.length > text2.length ? text1 : text2;\\n var shorttext = text1.length > text2.length ? text2 : text1;\\n var i = longtext.indexOf(shorttext);\\n if (i != -1) {\\n // Shorter text is inside the longer text (speedup).\\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\\n [DIFF_EQUAL, shorttext],\\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\\n // Swap insertions for deletions if diff is reversed.\\n if (text1.length > text2.length) {\\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\\n }\\n return diffs;\\n }\\n\\n if (shorttext.length == 1) {\\n // Single character string.\\n // After the previous speedup, the character can't be an equality.\\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\\n }\\n\\n // Check to see if the problem can be split in two.\\n var hm = diff_halfMatch_(text1, text2);\\n if (hm) {\\n // A half-match was found, sort out the return data.\\n var text1_a = hm[0];\\n var text1_b = hm[1];\\n var text2_a = hm[2];\\n var text2_b = hm[3];\\n var mid_common = hm[4];\\n // Send both pairs off for separate processing.\\n var diffs_a = diff_main(text1_a, text2_a);\\n var diffs_b = diff_main(text1_b, text2_b);\\n // Merge the results.\\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\\n }\\n\\n return diff_bisect_(text1, text2);\\n};\\n\\n\\n/**\\n * Find the 'middle snake' of a diff, split the problem in two\\n * and return the recursively constructed diff.\\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\\n * @param {string} text1 Old string to be diffed.\\n * @param {string} text2 New string to be diffed.\\n * @return {Array} Array of diff tuples.\\n * @private\\n */\\nfunction diff_bisect_(text1, text2) {\\n // Cache the text lengths to prevent multiple calls.\\n var text1_length = text1.length;\\n var text2_length = text2.length;\\n var max_d = Math.ceil((text1_length + text2_length) / 2);\\n var v_offset = max_d;\\n var v_length = 2 * max_d;\\n var v1 = new Array(v_length);\\n var v2 = new Array(v_length);\\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\\n // integers and undefined.\\n for (var x = 0; x < v_length; x++) {\\n v1[x] = -1;\\n v2[x] = -1;\\n }\\n v1[v_offset + 1] = 0;\\n v2[v_offset + 1] = 0;\\n var delta = text1_length - text2_length;\\n // If the total number of characters is odd, then the front path will collide\\n // with the reverse path.\\n var front = (delta % 2 != 0);\\n // Offsets for start and end of k loop.\\n // Prevents mapping of space beyond the grid.\\n var k1start = 0;\\n var k1end = 0;\\n var k2start = 0;\\n var k2end = 0;\\n for (var d = 0; d < max_d; d++) {\\n // Walk the front path one step.\\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\\n var k1_offset = v_offset + k1;\\n var x1;\\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\\n x1 = v1[k1_offset + 1];\\n } else {\\n x1 = v1[k1_offset - 1] + 1;\\n }\\n var y1 = x1 - k1;\\n while (x1 < text1_length && y1 < text2_length &&\\n text1.charAt(x1) == text2.charAt(y1)) {\\n x1++;\\n y1++;\\n }\\n v1[k1_offset] = x1;\\n if (x1 > text1_length) {\\n // Ran off the right of the graph.\\n k1end += 2;\\n } else if (y1 > text2_length) {\\n // Ran off the bottom of the graph.\\n k1start += 2;\\n } else if (front) {\\n var k2_offset = v_offset + delta - k1;\\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\\n // Mirror x2 onto top-left coordinate system.\\n var x2 = text1_length - v2[k2_offset];\\n if (x1 >= x2) {\\n // Overlap detected.\\n return diff_bisectSplit_(text1, text2, x1, y1);\\n }\\n }\\n }\\n }\\n\\n // Walk the reverse path one step.\\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\\n var k2_offset = v_offset + k2;\\n var x2;\\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\\n x2 = v2[k2_offset + 1];\\n } else {\\n x2 = v2[k2_offset - 1] + 1;\\n }\\n var y2 = x2 - k2;\\n while (x2 < text1_length && y2 < text2_length &&\\n text1.charAt(text1_length - x2 - 1) ==\\n text2.charAt(text2_length - y2 - 1)) {\\n x2++;\\n y2++;\\n }\\n v2[k2_offset] = x2;\\n if (x2 > text1_length) {\\n // Ran off the left of the graph.\\n k2end += 2;\\n } else if (y2 > text2_length) {\\n // Ran off the top of the graph.\\n k2start += 2;\\n } else if (!front) {\\n var k1_offset = v_offset + delta - k2;\\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\\n var x1 = v1[k1_offset];\\n var y1 = v_offset + x1 - k1_offset;\\n // Mirror x2 onto top-left coordinate system.\\n x2 = text1_length - x2;\\n if (x1 >= x2) {\\n // Overlap detected.\\n return diff_bisectSplit_(text1, text2, x1, y1);\\n }\\n }\\n }\\n }\\n }\\n // Diff took too long and hit the deadline or\\n // number of diffs equals number of characters, no commonality at all.\\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\\n};\\n\\n\\n/**\\n * Given the location of the 'middle snake', split the diff in two parts\\n * and recurse.\\n * @param {string} text1 Old string to be diffed.\\n * @param {string} text2 New string to be diffed.\\n * @param {number} x Index of split point in text1.\\n * @param {number} y Index of split point in text2.\\n * @return {Array} Array of diff tuples.\\n */\\nfunction diff_bisectSplit_(text1, text2, x, y) {\\n var text1a = text1.substring(0, x);\\n var text2a = text2.substring(0, y);\\n var text1b = text1.substring(x);\\n var text2b = text2.substring(y);\\n\\n // Compute both diffs serially.\\n var diffs = diff_main(text1a, text2a);\\n var diffsb = diff_main(text1b, text2b);\\n\\n return diffs.concat(diffsb);\\n};\\n\\n\\n/**\\n * Determine the common prefix of two strings.\\n * @param {string} text1 First string.\\n * @param {string} text2 Second string.\\n * @return {number} The number of characters common to the start of each\\n * string.\\n */\\nfunction diff_commonPrefix(text1, text2) {\\n // Quick check for common null cases.\\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\\n return 0;\\n }\\n // Binary search.\\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\\n var pointermin = 0;\\n var pointermax = Math.min(text1.length, text2.length);\\n var pointermid = pointermax;\\n var pointerstart = 0;\\n while (pointermin < pointermid) {\\n if (text1.substring(pointerstart, pointermid) ==\\n text2.substring(pointerstart, pointermid)) {\\n pointermin = pointermid;\\n pointerstart = pointermin;\\n } else {\\n pointermax = pointermid;\\n }\\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\\n }\\n return pointermid;\\n};\\n\\n\\n/**\\n * Determine the common suffix of two strings.\\n * @param {string} text1 First string.\\n * @param {string} text2 Second string.\\n * @return {number} The number of characters common to the end of each string.\\n */\\nfunction diff_commonSuffix(text1, text2) {\\n // Quick check for common null cases.\\n if (!text1 || !text2 ||\\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\\n return 0;\\n }\\n // Binary search.\\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\\n var pointermin = 0;\\n var pointermax = Math.min(text1.length, text2.length);\\n var pointermid = pointermax;\\n var pointerend = 0;\\n while (pointermin < pointermid) {\\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\\n pointermin = pointermid;\\n pointerend = pointermin;\\n } else {\\n pointermax = pointermid;\\n }\\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\\n }\\n return pointermid;\\n};\\n\\n\\n/**\\n * Do the two texts share a substring which is at least half the length of the\\n * longer text?\\n * This speedup can produce non-minimal diffs.\\n * @param {string} text1 First string.\\n * @param {string} text2 Second string.\\n * @return {Array.} Five element Array, containing the prefix of\\n * text1, the suffix of text1, the prefix of text2, the suffix of\\n * text2 and the common middle. Or null if there was no match.\\n */\\nfunction diff_halfMatch_(text1, text2) {\\n var longtext = text1.length > text2.length ? text1 : text2;\\n var shorttext = text1.length > text2.length ? text2 : text1;\\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\\n return null; // Pointless.\\n }\\n\\n /**\\n * Does a substring of shorttext exist within longtext such that the substring\\n * is at least half the length of longtext?\\n * Closure, but does not reference any external variables.\\n * @param {string} longtext Longer string.\\n * @param {string} shorttext Shorter string.\\n * @param {number} i Start index of quarter length substring within longtext.\\n * @return {Array.} Five element Array, containing the prefix of\\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\\n * of shorttext and the common middle. Or null if there was no match.\\n * @private\\n */\\n function diff_halfMatchI_(longtext, shorttext, i) {\\n // Start with a 1/4 length substring at position i as a seed.\\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\\n var j = -1;\\n var best_common = '';\\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\\n var prefixLength = diff_commonPrefix(longtext.substring(i),\\n shorttext.substring(j));\\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\\n shorttext.substring(0, j));\\n if (best_common.length < suffixLength + prefixLength) {\\n best_common = shorttext.substring(j - suffixLength, j) +\\n shorttext.substring(j, j + prefixLength);\\n best_longtext_a = longtext.substring(0, i - suffixLength);\\n best_longtext_b = longtext.substring(i + prefixLength);\\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\\n best_shorttext_b = shorttext.substring(j + prefixLength);\\n }\\n }\\n if (best_common.length * 2 >= longtext.length) {\\n return [best_longtext_a, best_longtext_b,\\n best_shorttext_a, best_shorttext_b, best_common];\\n } else {\\n return null;\\n }\\n }\\n\\n // First check if the second quarter is the seed for a half-match.\\n var hm1 = diff_halfMatchI_(longtext, shorttext,\\n Math.ceil(longtext.length / 4));\\n // Check again based on the third quarter.\\n var hm2 = diff_halfMatchI_(longtext, shorttext,\\n Math.ceil(longtext.length / 2));\\n var hm;\\n if (!hm1 && !hm2) {\\n return null;\\n } else if (!hm2) {\\n hm = hm1;\\n } else if (!hm1) {\\n hm = hm2;\\n } else {\\n // Both matched. Select the longest.\\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\\n }\\n\\n // A half-match was found, sort out the return data.\\n var text1_a, text1_b, text2_a, text2_b;\\n if (text1.length > text2.length) {\\n text1_a = hm[0];\\n text1_b = hm[1];\\n text2_a = hm[2];\\n text2_b = hm[3];\\n } else {\\n text2_a = hm[0];\\n text2_b = hm[1];\\n text1_a = hm[2];\\n text1_b = hm[3];\\n }\\n var mid_common = hm[4];\\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\\n};\\n\\n\\n/**\\n * Reorder and merge like edit sections. Merge equalities.\\n * Any edit section can move as long as it doesn't cross an equality.\\n * @param {Array} diffs Array of diff tuples.\\n */\\nfunction diff_cleanupMerge(diffs) {\\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\\n var pointer = 0;\\n var count_delete = 0;\\n var count_insert = 0;\\n var text_delete = '';\\n var text_insert = '';\\n var commonlength;\\n while (pointer < diffs.length) {\\n switch (diffs[pointer][0]) {\\n case DIFF_INSERT:\\n count_insert++;\\n text_insert += diffs[pointer][1];\\n pointer++;\\n break;\\n case DIFF_DELETE:\\n count_delete++;\\n text_delete += diffs[pointer][1];\\n pointer++;\\n break;\\n case DIFF_EQUAL:\\n // Upon reaching an equality, check for prior redundancies.\\n if (count_delete + count_insert > 1) {\\n if (count_delete !== 0 && count_insert !== 0) {\\n // Factor out any common prefixies.\\n commonlength = diff_commonPrefix(text_insert, text_delete);\\n if (commonlength !== 0) {\\n if ((pointer - count_delete - count_insert) > 0 &&\\n diffs[pointer - count_delete - count_insert - 1][0] ==\\n DIFF_EQUAL) {\\n diffs[pointer - count_delete - count_insert - 1][1] +=\\n text_insert.substring(0, commonlength);\\n } else {\\n diffs.splice(0, 0, [DIFF_EQUAL,\\n text_insert.substring(0, commonlength)]);\\n pointer++;\\n }\\n text_insert = text_insert.substring(commonlength);\\n text_delete = text_delete.substring(commonlength);\\n }\\n // Factor out any common suffixies.\\n commonlength = diff_commonSuffix(text_insert, text_delete);\\n if (commonlength !== 0) {\\n diffs[pointer][1] = text_insert.substring(text_insert.length -\\n commonlength) + diffs[pointer][1];\\n text_insert = text_insert.substring(0, text_insert.length -\\n commonlength);\\n text_delete = text_delete.substring(0, text_delete.length -\\n commonlength);\\n }\\n }\\n // Delete the offending records and add the merged ones.\\n if (count_delete === 0) {\\n diffs.splice(pointer - count_insert,\\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\\n } else if (count_insert === 0) {\\n diffs.splice(pointer - count_delete,\\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\\n } else {\\n diffs.splice(pointer - count_delete - count_insert,\\n count_delete + count_insert, [DIFF_DELETE, text_delete],\\n [DIFF_INSERT, text_insert]);\\n }\\n pointer = pointer - count_delete - count_insert +\\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\\n // Merge this equality with the previous one.\\n diffs[pointer - 1][1] += diffs[pointer][1];\\n diffs.splice(pointer, 1);\\n } else {\\n pointer++;\\n }\\n count_insert = 0;\\n count_delete = 0;\\n text_delete = '';\\n text_insert = '';\\n break;\\n }\\n }\\n if (diffs[diffs.length - 1][1] === '') {\\n diffs.pop(); // Remove the dummy entry at the end.\\n }\\n\\n // Second pass: look for single edits surrounded on both sides by equalities\\n // which can be shifted sideways to eliminate an equality.\\n // e.g: ABAC -> ABAC\\n var changes = false;\\n pointer = 1;\\n // Intentionally ignore the first and last element (don't need checking).\\n while (pointer < diffs.length - 1) {\\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\\n diffs[pointer + 1][0] == DIFF_EQUAL) {\\n // This is a single edit surrounded by equalities.\\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\\n // Shift the edit over the previous equality.\\n diffs[pointer][1] = diffs[pointer - 1][1] +\\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\\n diffs[pointer - 1][1].length);\\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\\n diffs.splice(pointer - 1, 1);\\n changes = true;\\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\\n diffs[pointer + 1][1]) {\\n // Shift the edit over the next equality.\\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\\n diffs[pointer][1] =\\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\\n diffs[pointer + 1][1];\\n diffs.splice(pointer + 1, 1);\\n changes = true;\\n }\\n }\\n pointer++;\\n }\\n // If shifts were made, the diff needs reordering and another shift sweep.\\n if (changes) {\\n diff_cleanupMerge(diffs);\\n }\\n};\\n\\n\\nvar diff = diff_main;\\ndiff.INSERT = DIFF_INSERT;\\ndiff.DELETE = DIFF_DELETE;\\ndiff.EQUAL = DIFF_EQUAL;\\n\\nmodule.exports = diff;\\n\\n/*\\n * Modify a diff such that the cursor position points to the start of a change:\\n * E.g.\\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\\n *\\n * @param {Array} diffs Array of diff tuples\\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\\n */\\nfunction cursor_normalize_diff (diffs, cursor_pos) {\\n if (cursor_pos === 0) {\\n return [DIFF_EQUAL, diffs];\\n }\\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\\n var d = diffs[i];\\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\\n var next_pos = current_pos + d[1].length;\\n if (cursor_pos === next_pos) {\\n return [i + 1, diffs];\\n } else if (cursor_pos < next_pos) {\\n // copy to prevent side effects\\n diffs = diffs.slice();\\n // split d into two diff changes\\n var split_pos = cursor_pos - current_pos;\\n var d_left = [d[0], d[1].slice(0, split_pos)];\\n var d_right = [d[0], d[1].slice(split_pos)];\\n diffs.splice(i, 1, d_left, d_right);\\n return [i + 1, diffs];\\n } else {\\n current_pos = next_pos;\\n }\\n }\\n }\\n throw new Error('cursor_pos is out of bounds!')\\n}\\n\\n/*\\n * Modify a diff such that the edit position is \\\"shifted\\\" to the proposed edit location (cursor_position).\\n *\\n * Case 1)\\n * Check if a naive shift is possible:\\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\\n * Case 2)\\n * Check if the following shifts are possible:\\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\\n * ^ ^\\n * d d_next\\n *\\n * @param {Array} diffs Array of diff tuples\\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\\n * @return {Array} Array of diff tuples\\n */\\nfunction fix_cursor (diffs, cursor_pos) {\\n var norm = cursor_normalize_diff(diffs, cursor_pos);\\n var ndiffs = norm[1];\\n var cursor_pointer = norm[0];\\n var d = ndiffs[cursor_pointer];\\n var d_next = ndiffs[cursor_pointer + 1];\\n\\n if (d == null) {\\n // Text was deleted from end of original string,\\n // cursor is now out of bounds in new string\\n return diffs;\\n } else if (d[0] !== DIFF_EQUAL) {\\n // A modification happened at the cursor location.\\n // This is the expected outcome, so we can return the original diff.\\n return diffs;\\n } else {\\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\\n // Case 1)\\n // It is possible to perform a naive shift\\n ndiffs.splice(cursor_pointer, 2, d_next, d)\\n return merge_tuples(ndiffs, cursor_pointer, 2)\\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\\n // Case 2)\\n // d[1] is a prefix of d_next[1]\\n // We can assume that d_next[0] !== 0, since d[0] === 0\\n // Shift edit locations..\\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\\n var suffix = d_next[1].slice(d[1].length);\\n if (suffix.length > 0) {\\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\\n }\\n return merge_tuples(ndiffs, cursor_pointer, 3)\\n } else {\\n // Not possible to perform any modification\\n return diffs;\\n }\\n }\\n}\\n\\n/*\\n * Check diff did not split surrogate pairs.\\n * Ex. [0, '\\\\uD83D'], [-1, '\\\\uDC36'], [1, '\\\\uDC2F'] -> [-1, '\\\\uD83D\\\\uDC36'], [1, '\\\\uD83D\\\\uDC2F']\\n * '\\\\uD83D\\\\uDC36' === '🐶', '\\\\uD83D\\\\uDC2F' === '🐯'\\n *\\n * @param {Array} diffs Array of diff tuples\\n * @return {Array} Array of diff tuples\\n */\\nfunction fix_emoji (diffs) {\\n var compact = false;\\n var starts_with_pair_end = function(str) {\\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\\n }\\n var ends_with_pair_start = function(str) {\\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\\n }\\n for (var i = 2; i < diffs.length; i += 1) {\\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\\n compact = true;\\n\\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\\n\\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\\n }\\n }\\n if (!compact) {\\n return diffs;\\n }\\n var fixed_diffs = [];\\n for (var i = 0; i < diffs.length; i += 1) {\\n if (diffs[i][1].length > 0) {\\n fixed_diffs.push(diffs[i]);\\n }\\n }\\n return fixed_diffs;\\n}\\n\\n/*\\n * Try to merge tuples with their neigbors in a given range.\\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\\n *\\n * @param {Array} diffs Array of diff tuples.\\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\\n * @param {Int} length Number of consecutive elements to check.\\n * @return {Array} Array of merged diff tuples.\\n */\\nfunction merge_tuples (diffs, start, length) {\\n // Check from (start-1) to (start+length).\\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\\n if (i + 1 < diffs.length) {\\n var left_d = diffs[i];\\n var right_d = diffs[i+1];\\n if (left_d[0] === right_d[1]) {\\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\\n }\\n }\\n }\\n return diffs;\\n}\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/fast-diff/diff.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/attributor/attributor.ts\":\n/*!*************************************************************!*\\\n !*** ./node_modules/parchment/src/attributor/attributor.ts ***!\n \\*************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"default\\\", function() { return Attributor; });\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\nclass Attributor {\\n static keys(node) {\\n return Array.from(node.attributes).map(function (item) {\\n return item.name;\\n });\\n }\\n constructor(attrName, keyName, options = {}) {\\n this.attrName = attrName;\\n this.keyName = keyName;\\n let attributeBit = _scope__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"].TYPE & _scope__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"].ATTRIBUTE;\\n if (options.scope != null) {\\n // Ignore type bits, force attribute bit\\n this.scope = (options.scope & _scope__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"].LEVEL) | attributeBit;\\n }\\n else {\\n this.scope = _scope__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"].ATTRIBUTE;\\n }\\n if (options.whitelist != null)\\n this.whitelist = options.whitelist;\\n }\\n add(node, value) {\\n if (!this.canAdd(node, value))\\n return false;\\n node.setAttribute(this.keyName, value);\\n return true;\\n }\\n canAdd(node, value) {\\n if (this.whitelist == null)\\n return true;\\n if (typeof value === 'string') {\\n return this.whitelist.indexOf(value.replace(/[\\\"']/g, '')) > -1;\\n }\\n else {\\n return this.whitelist.indexOf(value) > -1;\\n }\\n }\\n remove(node) {\\n node.removeAttribute(this.keyName);\\n }\\n value(node) {\\n let value = node.getAttribute(this.keyName);\\n if (this.canAdd(node, value) && value) {\\n return value;\\n }\\n return '';\\n }\\n}\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/attributor/attributor.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/attributor/class.ts\":\n/*!********************************************************!*\\\n !*** ./node_modules/parchment/src/attributor/class.ts ***!\n \\********************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./attributor */ \\\"./node_modules/parchment/src/attributor/attributor.ts\\\");\\n\\nfunction match(node, prefix) {\\n let className = node.getAttribute('class') || '';\\n return className.split(/\\\\s+/).filter(function (name) {\\n return name.indexOf(`${prefix}-`) === 0;\\n });\\n}\\nclass ClassAttributor extends _attributor__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"] {\\n static keys(node) {\\n return (node.getAttribute('class') || '').split(/\\\\s+/).map(function (name) {\\n return name\\n .split('-')\\n .slice(0, -1)\\n .join('-');\\n });\\n }\\n add(node, value) {\\n if (!this.canAdd(node, value))\\n return false;\\n this.remove(node);\\n node.classList.add(`${this.keyName}-${value}`);\\n return true;\\n }\\n remove(node) {\\n let matches = match(node, this.keyName);\\n matches.forEach(function (name) {\\n node.classList.remove(name);\\n });\\n if (node.classList.length === 0) {\\n node.removeAttribute('class');\\n }\\n }\\n value(node) {\\n let result = match(node, this.keyName)[0] || '';\\n let value = result.slice(this.keyName.length + 1); // +1 for hyphen\\n return this.canAdd(node, value) ? value : '';\\n }\\n}\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (ClassAttributor);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/attributor/class.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/attributor/store.ts\":\n/*!********************************************************!*\\\n !*** ./node_modules/parchment/src/attributor/store.ts ***!\n \\********************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./attributor */ \\\"./node_modules/parchment/src/attributor/attributor.ts\\\");\\n/* harmony import */ var _class__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./class */ \\\"./node_modules/parchment/src/attributor/class.ts\\\");\\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./style */ \\\"./node_modules/parchment/src/attributor/style.ts\\\");\\n/* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../registry */ \\\"./node_modules/parchment/src/registry.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\n\\n\\n\\n\\nclass AttributorStore {\\n constructor(domNode) {\\n this.attributes = {};\\n this.domNode = domNode;\\n this.build();\\n }\\n attribute(attribute, value) {\\n // verb\\n if (value) {\\n if (attribute.add(this.domNode, value)) {\\n if (attribute.value(this.domNode) != null) {\\n this.attributes[attribute.attrName] = attribute;\\n }\\n else {\\n delete this.attributes[attribute.attrName];\\n }\\n }\\n }\\n else {\\n attribute.remove(this.domNode);\\n delete this.attributes[attribute.attrName];\\n }\\n }\\n build() {\\n this.attributes = {};\\n const blot = _registry__WEBPACK_IMPORTED_MODULE_3__[\\\"default\\\"].find(this.domNode);\\n if (blot == null)\\n return;\\n let attributes = _attributor__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"].keys(this.domNode);\\n let classes = _class__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].keys(this.domNode);\\n let styles = _style__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"].keys(this.domNode);\\n attributes\\n .concat(classes)\\n .concat(styles)\\n .forEach(name => {\\n let attr = blot.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_4__[\\\"default\\\"].ATTRIBUTE);\\n if (attr instanceof _attributor__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]) {\\n this.attributes[attr.attrName] = attr;\\n }\\n });\\n }\\n copy(target) {\\n Object.keys(this.attributes).forEach(key => {\\n let value = this.attributes[key].value(this.domNode);\\n target.format(key, value);\\n });\\n }\\n move(target) {\\n this.copy(target);\\n Object.keys(this.attributes).forEach(key => {\\n this.attributes[key].remove(this.domNode);\\n });\\n this.attributes = {};\\n }\\n values() {\\n return Object.keys(this.attributes).reduce((attributes, name) => {\\n attributes[name] = this.attributes[name].value(this.domNode);\\n return attributes;\\n }, {});\\n }\\n}\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (AttributorStore);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/attributor/store.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/attributor/style.ts\":\n/*!********************************************************!*\\\n !*** ./node_modules/parchment/src/attributor/style.ts ***!\n \\********************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./attributor */ \\\"./node_modules/parchment/src/attributor/attributor.ts\\\");\\n\\nfunction camelize(name) {\\n let parts = name.split('-');\\n let rest = parts\\n .slice(1)\\n .map(function (part) {\\n return part[0].toUpperCase() + part.slice(1);\\n })\\n .join('');\\n return parts[0] + rest;\\n}\\nclass StyleAttributor extends _attributor__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"] {\\n static keys(node) {\\n return (node.getAttribute('style') || '').split(';').map(function (value) {\\n let arr = value.split(':');\\n return arr[0].trim();\\n });\\n }\\n add(node, value) {\\n if (!this.canAdd(node, value))\\n return false;\\n // @ts-ignore\\n node.style[camelize(this.keyName)] = value;\\n return true;\\n }\\n remove(node) {\\n // @ts-ignore\\n node.style[camelize(this.keyName)] = '';\\n if (!node.getAttribute('style')) {\\n node.removeAttribute('style');\\n }\\n }\\n value(node) {\\n // @ts-ignore\\n let value = node.style[camelize(this.keyName)];\\n return this.canAdd(node, value) ? value : '';\\n }\\n}\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (StyleAttributor);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/attributor/style.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/blot/abstract/container.ts\":\n/*!***************************************************************!*\\\n !*** ./node_modules/parchment/src/blot/abstract/container.ts ***!\n \\***************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _parent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parent */ \\\"./node_modules/parchment/src/blot/abstract/parent.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\n\\nclass ContainerBlot extends _parent__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"] {\\n checkMerge() {\\n return (this.next !== null && this.next.statics.blotName === this.statics.blotName);\\n }\\n deleteAt(index, length) {\\n super.deleteAt(index, length);\\n this.enforceAllowedChildren();\\n }\\n formatAt(index, length, name, value) {\\n super.formatAt(index, length, name, value);\\n this.enforceAllowedChildren();\\n }\\n insertAt(index, value, def) {\\n super.insertAt(index, value, def);\\n this.enforceAllowedChildren();\\n }\\n optimize(context) {\\n super.optimize(context);\\n if (this.children.length > 0 && this.next != null && this.checkMerge()) {\\n this.next.moveChildren(this);\\n this.next.remove();\\n }\\n }\\n}\\nContainerBlot.blotName = 'container';\\nContainerBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].BLOCK_BLOT;\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (ContainerBlot);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/blot/abstract/container.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/blot/abstract/leaf.ts\":\n/*!**********************************************************!*\\\n !*** ./node_modules/parchment/src/blot/abstract/leaf.ts ***!\n \\**********************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _shadow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shadow */ \\\"./node_modules/parchment/src/blot/abstract/shadow.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\n\\nclass LeafBlot extends _shadow__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"] {\\n static value(domNode) {\\n return true;\\n }\\n index(node, offset) {\\n if (this.domNode === node ||\\n this.domNode.compareDocumentPosition(node) &\\n Node.DOCUMENT_POSITION_CONTAINED_BY) {\\n return Math.min(offset, 1);\\n }\\n return -1;\\n }\\n position(index, inclusive) {\\n const childNodes = Array.from(this.parent.domNode.childNodes);\\n let offset = childNodes.indexOf(this.domNode);\\n if (index > 0)\\n offset += 1;\\n return [this.parent.domNode, offset];\\n }\\n value() {\\n return {\\n [this.statics.blotName]: this.statics.value(this.domNode) || true,\\n };\\n }\\n}\\nLeafBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].INLINE_BLOT;\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (LeafBlot);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/blot/abstract/leaf.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/blot/abstract/parent.ts\":\n/*!************************************************************!*\\\n !*** ./node_modules/parchment/src/blot/abstract/parent.ts ***!\n \\************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _collection_linked_list__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../collection/linked-list */ \\\"./node_modules/parchment/src/collection/linked-list.ts\\\");\\n/* harmony import */ var _shadow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./shadow */ \\\"./node_modules/parchment/src/blot/abstract/shadow.ts\\\");\\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../error */ \\\"./node_modules/parchment/src/error.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\n\\n\\n\\nclass ParentBlot extends _shadow__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"] {\\n constructor(scroll, domNode) {\\n super(scroll, domNode);\\n this.uiNode = null;\\n this.build();\\n }\\n appendChild(other) {\\n this.insertBefore(other);\\n }\\n attach() {\\n super.attach();\\n this.children.forEach(child => {\\n child.attach();\\n });\\n }\\n attachUI(node) {\\n if (this.uiNode != null) {\\n this.uiNode.remove();\\n }\\n this.uiNode = node;\\n this.uiNode.setAttribute('contenteditable', 'false');\\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\\n }\\n build() {\\n this.children = new _collection_linked_list__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]();\\n // Need to be reversed for if DOM nodes already in order\\n Array.from(this.domNode.childNodes)\\n .filter((node) => node !== this.uiNode)\\n .reverse()\\n .forEach((node) => {\\n try {\\n let child = makeAttachedBlot(node, this.scroll);\\n this.insertBefore(child, this.children.head || undefined);\\n }\\n catch (err) {\\n if (err instanceof _error__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"])\\n return;\\n else\\n throw err;\\n }\\n });\\n }\\n deleteAt(index, length) {\\n if (index === 0 && length === this.length()) {\\n return this.remove();\\n }\\n this.children.forEachAt(index, length, function (child, offset, length) {\\n child.deleteAt(offset, length);\\n });\\n }\\n descendant(criteria, index = 0) {\\n let [child, offset] = this.children.find(index);\\n if ((criteria.blotName == null && criteria(child)) ||\\n (criteria.blotName != null && child instanceof criteria)) {\\n return [child, offset];\\n }\\n else if (child instanceof ParentBlot) {\\n return child.descendant(criteria, offset);\\n }\\n else {\\n return [null, -1];\\n }\\n }\\n descendants(criteria, index = 0, length = Number.MAX_VALUE) {\\n let descendants = [];\\n let lengthLeft = length;\\n this.children.forEachAt(index, length, function (child, index, length) {\\n if ((criteria.blotName == null && criteria(child)) ||\\n (criteria.blotName != null && child instanceof criteria)) {\\n descendants.push(child);\\n }\\n if (child instanceof ParentBlot) {\\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\\n }\\n lengthLeft -= length;\\n });\\n return descendants;\\n }\\n detach() {\\n this.children.forEach(function (child) {\\n child.detach();\\n });\\n super.detach();\\n }\\n enforceAllowedChildren() {\\n let done = false;\\n const children = this.children.forEach((child) => {\\n if (done)\\n return;\\n const allowed = this.statics.allowedChildren.some((def) => child instanceof def);\\n if (allowed)\\n return;\\n if (child.statics.scope === _scope__WEBPACK_IMPORTED_MODULE_3__[\\\"default\\\"].BLOCK_BLOT) {\\n if (child.next != null) {\\n this.splitAfter(child);\\n }\\n if (child.prev != null) {\\n this.splitAfter(child.prev);\\n }\\n child.parent.unwrap();\\n done = true;\\n }\\n else if (child instanceof ParentBlot) {\\n child.unwrap();\\n }\\n else {\\n child.remove();\\n }\\n });\\n }\\n formatAt(index, length, name, value) {\\n this.children.forEachAt(index, length, function (child, offset, length) {\\n child.formatAt(offset, length, name, value);\\n });\\n }\\n insertAt(index, value, def) {\\n let [child, offset] = this.children.find(index);\\n if (child) {\\n child.insertAt(offset, value, def);\\n }\\n else {\\n let blot = def == null\\n ? this.scroll.create('text', value)\\n : this.scroll.create(value, def);\\n this.appendChild(blot);\\n }\\n }\\n insertBefore(childBlot, refBlot) {\\n if (childBlot.parent != null) {\\n childBlot.parent.children.remove(childBlot);\\n }\\n let refDomNode = null;\\n this.children.insertBefore(childBlot, refBlot || null);\\n if (refBlot != null) {\\n refDomNode = refBlot.domNode;\\n }\\n if (this.domNode.parentNode != childBlot.domNode ||\\n this.domNode.nextSibling != refDomNode) {\\n this.domNode.insertBefore(childBlot.domNode, refDomNode);\\n }\\n childBlot.parent = this;\\n childBlot.attach();\\n }\\n length() {\\n return this.children.reduce(function (memo, child) {\\n return memo + child.length();\\n }, 0);\\n }\\n moveChildren(targetParent, refNode) {\\n this.children.forEach(function (child) {\\n targetParent.insertBefore(child, refNode);\\n });\\n }\\n optimize(context) {\\n super.optimize(context);\\n this.enforceAllowedChildren();\\n if (this.uiNode != null && this.uiNode !== this.domNode.firstChild) {\\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\\n }\\n if (this.children.length === 0) {\\n if (this.statics.defaultChild != null) {\\n let child = this.scroll.create(this.statics.defaultChild.blotName);\\n this.appendChild(child);\\n // TODO double check if necessary\\n // child.optimize(context);\\n }\\n else {\\n this.remove();\\n }\\n }\\n }\\n path(index, inclusive = false) {\\n let [child, offset] = this.children.find(index, inclusive);\\n let position = [[this, index]];\\n if (child instanceof ParentBlot) {\\n return position.concat(child.path(offset, inclusive));\\n }\\n else if (child != null) {\\n position.push([child, offset]);\\n }\\n return position;\\n }\\n removeChild(child) {\\n this.children.remove(child);\\n }\\n replaceWith(name, value) {\\n const replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\\n if (replacement instanceof ParentBlot) {\\n this.moveChildren(replacement);\\n }\\n return super.replaceWith(replacement);\\n }\\n split(index, force = false) {\\n if (!force) {\\n if (index === 0)\\n return this;\\n if (index === this.length())\\n return this.next;\\n }\\n let after = this.clone();\\n if (this.parent) {\\n this.parent.insertBefore(after, this.next || undefined);\\n }\\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\\n const split = child.split(offset, force);\\n if (split != null) {\\n after.appendChild(split);\\n }\\n });\\n return after;\\n }\\n splitAfter(child) {\\n let after = this.clone();\\n while (child.next != null) {\\n after.appendChild(child.next);\\n }\\n if (this.parent) {\\n this.parent.insertBefore(after, this.next || undefined);\\n }\\n return after;\\n }\\n unwrap() {\\n if (this.parent) {\\n this.moveChildren(this.parent, this.next || undefined);\\n }\\n this.remove();\\n }\\n update(mutations, context) {\\n let addedNodes = [];\\n let removedNodes = [];\\n mutations.forEach(mutation => {\\n if (mutation.target === this.domNode && mutation.type === 'childList') {\\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\\n }\\n });\\n removedNodes.forEach((node) => {\\n // Check node has actually been removed\\n // One exception is Chrome does not immediately remove IFRAMEs\\n // from DOM but MutationRecord is correct in its reported removal\\n if (node.parentNode != null &&\\n // @ts-ignore\\n node.tagName !== 'IFRAME' &&\\n document.body.compareDocumentPosition(node) &\\n Node.DOCUMENT_POSITION_CONTAINED_BY) {\\n return;\\n }\\n let blot = this.scroll.find(node);\\n if (blot == null)\\n return;\\n if (blot.domNode.parentNode == null ||\\n blot.domNode.parentNode === this.domNode) {\\n blot.detach();\\n }\\n });\\n addedNodes\\n .filter(node => {\\n return node.parentNode === this.domNode || node === this.uiNode;\\n })\\n .sort(function (a, b) {\\n if (a === b)\\n return 0;\\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\\n return 1;\\n }\\n return -1;\\n })\\n .forEach(node => {\\n let refBlot = null;\\n if (node.nextSibling != null) {\\n refBlot = this.scroll.find(node.nextSibling);\\n }\\n let blot = makeAttachedBlot(node, this.scroll);\\n if (blot.next != refBlot || blot.next == null) {\\n if (blot.parent != null) {\\n blot.parent.removeChild(this);\\n }\\n this.insertBefore(blot, refBlot || undefined);\\n }\\n });\\n this.enforceAllowedChildren();\\n }\\n}\\nfunction makeAttachedBlot(node, scroll) {\\n let blot = scroll.find(node);\\n if (blot == null) {\\n try {\\n blot = scroll.create(node);\\n }\\n catch (e) {\\n blot = scroll.create(_scope__WEBPACK_IMPORTED_MODULE_3__[\\\"default\\\"].INLINE);\\n Array.from(node.childNodes).forEach(function (child) {\\n // @ts-ignore\\n blot.domNode.appendChild(child);\\n });\\n if (node.parentNode) {\\n node.parentNode.replaceChild(blot.domNode, node);\\n }\\n blot.attach();\\n }\\n }\\n return blot;\\n}\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (ParentBlot);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/blot/abstract/parent.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/blot/abstract/shadow.ts\":\n/*!************************************************************!*\\\n !*** ./node_modules/parchment/src/blot/abstract/shadow.ts ***!\n \\************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../error */ \\\"./node_modules/parchment/src/error.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n/* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../registry */ \\\"./node_modules/parchment/src/registry.ts\\\");\\n\\n\\n\\nclass ShadowBlot {\\n constructor(scroll, domNode) {\\n this.scroll = scroll;\\n this.domNode = domNode;\\n _registry__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"].blots.set(domNode, this);\\n this.prev = null;\\n this.next = null;\\n }\\n // Hack for accessing inherited static methods\\n get statics() {\\n return this.constructor;\\n }\\n static create(value) {\\n if (this.tagName == null) {\\n throw new _error__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]('Blot definition missing tagName');\\n }\\n let node;\\n if (Array.isArray(this.tagName)) {\\n if (typeof value === 'string') {\\n value = value.toUpperCase();\\n if (parseInt(value).toString() === value) {\\n value = parseInt(value);\\n }\\n }\\n if (typeof value === 'number') {\\n node = document.createElement(this.tagName[value - 1]);\\n }\\n else if (this.tagName.indexOf(value) > -1) {\\n node = document.createElement(value);\\n }\\n else {\\n node = document.createElement(this.tagName[0]);\\n }\\n }\\n else {\\n node = document.createElement(this.tagName);\\n }\\n if (this.className) {\\n node.classList.add(this.className);\\n }\\n return node;\\n }\\n attach() {\\n // Nothing to do\\n }\\n clone() {\\n let domNode = this.domNode.cloneNode(false);\\n return this.scroll.create(domNode);\\n }\\n detach() {\\n if (this.parent != null)\\n this.parent.removeChild(this);\\n _registry__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"].blots.delete(this.domNode);\\n }\\n deleteAt(index, length) {\\n let blot = this.isolate(index, length);\\n blot.remove();\\n }\\n formatAt(index, length, name, value) {\\n let blot = this.isolate(index, length);\\n if (this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].BLOT) != null && value) {\\n blot.wrap(name, value);\\n }\\n else if (this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].ATTRIBUTE) != null) {\\n let parent = this.scroll.create(this.statics.scope);\\n blot.wrap(parent);\\n parent.format(name, value);\\n }\\n }\\n insertAt(index, value, def) {\\n let blot = def == null\\n ? this.scroll.create('text', value)\\n : this.scroll.create(value, def);\\n let ref = this.split(index);\\n this.parent.insertBefore(blot, ref || undefined);\\n }\\n isolate(index, length) {\\n let target = this.split(index);\\n if (target == null) {\\n throw new Error('Attempt to isolate at end');\\n }\\n target.split(length);\\n return target;\\n }\\n length() {\\n return 1;\\n }\\n offset(root = this.parent) {\\n if (this.parent == null || this == root)\\n return 0;\\n return this.parent.children.offset(this) + this.parent.offset(root);\\n }\\n optimize(context) {\\n if (this.statics.requiredContainer &&\\n !(this.parent instanceof this.statics.requiredContainer)) {\\n this.wrap(this.statics.requiredContainer.blotName);\\n }\\n }\\n remove() {\\n if (this.domNode.parentNode != null) {\\n this.domNode.parentNode.removeChild(this.domNode);\\n }\\n this.detach();\\n }\\n replaceWith(name, value) {\\n const replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\\n if (this.parent != null) {\\n this.parent.insertBefore(replacement, this.next || undefined);\\n this.remove();\\n }\\n return replacement;\\n }\\n split(index, force) {\\n return index === 0 ? this : this.next;\\n }\\n update(mutations, context) {\\n // Nothing to do by default\\n }\\n wrap(name, value) {\\n let wrapper = typeof name === 'string' ? this.scroll.create(name, value) : name;\\n if (this.parent != null) {\\n this.parent.insertBefore(wrapper, this.next || undefined);\\n }\\n wrapper.appendChild(this);\\n return wrapper;\\n }\\n}\\nShadowBlot.blotName = 'abstract';\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (ShadowBlot);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/blot/abstract/shadow.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/blot/block.ts\":\n/*!**************************************************!*\\\n !*** ./node_modules/parchment/src/blot/block.ts ***!\n \\**************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _attributor_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../attributor/attributor */ \\\"./node_modules/parchment/src/attributor/attributor.ts\\\");\\n/* harmony import */ var _attributor_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../attributor/store */ \\\"./node_modules/parchment/src/attributor/store.ts\\\");\\n/* harmony import */ var _abstract_parent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./abstract/parent */ \\\"./node_modules/parchment/src/blot/abstract/parent.ts\\\");\\n/* harmony import */ var _abstract_leaf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./abstract/leaf */ \\\"./node_modules/parchment/src/blot/abstract/leaf.ts\\\");\\n/* harmony import */ var _inline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./inline */ \\\"./node_modules/parchment/src/blot/inline.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\n\\n\\n\\n\\n\\nclass BlockBlot extends _abstract_parent__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"] {\\n constructor(scroll, domNode) {\\n super(scroll, domNode);\\n this.attributes = new _attributor_store__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"](this.domNode);\\n }\\n static formats(domNode, scroll) {\\n const match = scroll.query(BlockBlot.blotName);\\n if (match != null && domNode.tagName === match.tagName) {\\n return undefined;\\n }\\n else if (typeof this.tagName === 'string') {\\n return true;\\n }\\n else if (Array.isArray(this.tagName)) {\\n return domNode.tagName.toLowerCase();\\n }\\n }\\n format(name, value) {\\n const format = this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_5__[\\\"default\\\"].BLOCK);\\n if (format == null) {\\n return;\\n }\\n else if (format instanceof _attributor_attributor__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]) {\\n this.attributes.attribute(format, value);\\n }\\n else if (name === this.statics.blotName && !value) {\\n this.replaceWith(BlockBlot.blotName);\\n }\\n else if (value &&\\n (name !== this.statics.blotName || this.formats()[name] !== value)) {\\n this.replaceWith(name, value);\\n }\\n }\\n formats() {\\n const formats = this.attributes.values();\\n const format = this.statics.formats(this.domNode, this.scroll);\\n if (format != null) {\\n formats[this.statics.blotName] = format;\\n }\\n return formats;\\n }\\n formatAt(index, length, name, value) {\\n if (this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_5__[\\\"default\\\"].BLOCK) != null) {\\n this.format(name, value);\\n }\\n else {\\n super.formatAt(index, length, name, value);\\n }\\n }\\n insertAt(index, value, def) {\\n if (def == null || this.scroll.query(value, _scope__WEBPACK_IMPORTED_MODULE_5__[\\\"default\\\"].INLINE) != null) {\\n // Insert text or inline\\n super.insertAt(index, value, def);\\n }\\n else {\\n const after = this.split(index);\\n if (after != null) {\\n const blot = this.scroll.create(value, def);\\n after.parent.insertBefore(blot, after);\\n }\\n else {\\n throw new Error('Attempt to insertAt after block boundaries');\\n }\\n }\\n }\\n replaceWith(name, value) {\\n const replacement = super.replaceWith(name, value);\\n this.attributes.copy(replacement);\\n return replacement;\\n }\\n update(mutations, context) {\\n super.update(mutations, context);\\n const attributeChanged = mutations.some(mutation => mutation.target === this.domNode && mutation.type === 'attributes');\\n if (attributeChanged) {\\n this.attributes.build();\\n }\\n }\\n}\\nBlockBlot.allowedChildren = [_inline__WEBPACK_IMPORTED_MODULE_4__[\\\"default\\\"], BlockBlot, _abstract_leaf__WEBPACK_IMPORTED_MODULE_3__[\\\"default\\\"]];\\nBlockBlot.blotName = 'block';\\nBlockBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_5__[\\\"default\\\"].BLOCK_BLOT;\\nBlockBlot.tagName = 'P';\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (BlockBlot);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/blot/block.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/blot/embed.ts\":\n/*!**************************************************!*\\\n !*** ./node_modules/parchment/src/blot/embed.ts ***!\n \\**************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _abstract_leaf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstract/leaf */ \\\"./node_modules/parchment/src/blot/abstract/leaf.ts\\\");\\n\\nclass EmbedBlot extends _abstract_leaf__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"] {\\n static formats(domNode, scroll) {\\n return undefined;\\n }\\n format(name, value) {\\n // super.formatAt wraps, which is what we want in general,\\n // but this allows subclasses to overwrite for formats\\n // that just apply to particular embeds\\n super.formatAt(0, this.length(), name, value);\\n }\\n formatAt(index, length, name, value) {\\n if (index === 0 && length === this.length()) {\\n this.format(name, value);\\n }\\n else {\\n super.formatAt(index, length, name, value);\\n }\\n }\\n formats() {\\n return this.statics.formats(this.domNode, this.scroll);\\n }\\n}\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (EmbedBlot);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/blot/embed.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/blot/inline.ts\":\n/*!***************************************************!*\\\n !*** ./node_modules/parchment/src/blot/inline.ts ***!\n \\***************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _attributor_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../attributor/attributor */ \\\"./node_modules/parchment/src/attributor/attributor.ts\\\");\\n/* harmony import */ var _attributor_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../attributor/store */ \\\"./node_modules/parchment/src/attributor/store.ts\\\");\\n/* harmony import */ var _abstract_parent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./abstract/parent */ \\\"./node_modules/parchment/src/blot/abstract/parent.ts\\\");\\n/* harmony import */ var _abstract_leaf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./abstract/leaf */ \\\"./node_modules/parchment/src/blot/abstract/leaf.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\n\\n\\n\\n\\n// Shallow object comparison\\nfunction isEqual(obj1, obj2) {\\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\\n return false;\\n // @ts-ignore\\n for (let prop in obj1) {\\n // @ts-ignore\\n if (obj1[prop] !== obj2[prop])\\n return false;\\n }\\n return true;\\n}\\nclass InlineBlot extends _abstract_parent__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"] {\\n constructor(scroll, domNode) {\\n super(scroll, domNode);\\n this.attributes = new _attributor_store__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"](this.domNode);\\n }\\n static formats(domNode, scroll) {\\n const match = scroll.query(InlineBlot.blotName);\\n if (match != null && domNode.tagName === match.tagName) {\\n return undefined;\\n }\\n else if (typeof this.tagName === 'string') {\\n return true;\\n }\\n else if (Array.isArray(this.tagName)) {\\n return domNode.tagName.toLowerCase();\\n }\\n return undefined;\\n }\\n format(name, value) {\\n if (name === this.statics.blotName && !value) {\\n this.children.forEach(child => {\\n if (!(child instanceof InlineBlot)) {\\n child = child.wrap(InlineBlot.blotName, true);\\n }\\n this.attributes.copy(child);\\n });\\n this.unwrap();\\n }\\n else {\\n const format = this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_4__[\\\"default\\\"].INLINE);\\n if (format == null)\\n return;\\n if (format instanceof _attributor_attributor__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]) {\\n this.attributes.attribute(format, value);\\n }\\n else if (value &&\\n (name !== this.statics.blotName || this.formats()[name] !== value)) {\\n this.replaceWith(name, value);\\n }\\n }\\n }\\n formats() {\\n let formats = this.attributes.values();\\n let format = this.statics.formats(this.domNode, this.scroll);\\n if (format != null) {\\n formats[this.statics.blotName] = format;\\n }\\n return formats;\\n }\\n formatAt(index, length, name, value) {\\n if (this.formats()[name] != null ||\\n this.scroll.query(name, _scope__WEBPACK_IMPORTED_MODULE_4__[\\\"default\\\"].ATTRIBUTE)) {\\n let blot = this.isolate(index, length);\\n blot.format(name, value);\\n }\\n else {\\n super.formatAt(index, length, name, value);\\n }\\n }\\n optimize(context) {\\n super.optimize(context);\\n let formats = this.formats();\\n if (Object.keys(formats).length === 0) {\\n return this.unwrap(); // unformatted span\\n }\\n let next = this.next;\\n if (next instanceof InlineBlot &&\\n next.prev === this &&\\n isEqual(formats, next.formats())) {\\n next.moveChildren(this);\\n next.remove();\\n }\\n }\\n replaceWith(name, value) {\\n const replacement = super.replaceWith(name, value);\\n this.attributes.copy(replacement);\\n return replacement;\\n }\\n update(mutations, context) {\\n super.update(mutations, context);\\n const attributeChanged = mutations.some(mutation => mutation.target === this.domNode && mutation.type === 'attributes');\\n if (attributeChanged) {\\n this.attributes.build();\\n }\\n }\\n wrap(name, value) {\\n const wrapper = super.wrap(name, value);\\n if (wrapper instanceof InlineBlot) {\\n this.attributes.move(wrapper);\\n }\\n return wrapper;\\n }\\n}\\nInlineBlot.allowedChildren = [InlineBlot, _abstract_leaf__WEBPACK_IMPORTED_MODULE_3__[\\\"default\\\"]];\\nInlineBlot.blotName = 'inline';\\nInlineBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_4__[\\\"default\\\"].INLINE_BLOT;\\nInlineBlot.tagName = 'SPAN';\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (InlineBlot);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/blot/inline.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/blot/scroll.ts\":\n/*!***************************************************!*\\\n !*** ./node_modules/parchment/src/blot/scroll.ts ***!\n \\***************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _abstract_parent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstract/parent */ \\\"./node_modules/parchment/src/blot/abstract/parent.ts\\\");\\n/* harmony import */ var _abstract_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./abstract/container */ \\\"./node_modules/parchment/src/blot/abstract/container.ts\\\");\\n/* harmony import */ var _block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./block */ \\\"./node_modules/parchment/src/blot/block.ts\\\");\\n/* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../registry */ \\\"./node_modules/parchment/src/registry.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\n\\n\\n\\n\\nconst OBSERVER_CONFIG = {\\n attributes: true,\\n characterData: true,\\n characterDataOldValue: true,\\n childList: true,\\n subtree: true,\\n};\\nconst MAX_OPTIMIZE_ITERATIONS = 100;\\nclass ScrollBlot extends _abstract_parent__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"] {\\n constructor(registry, node) {\\n // @ts-ignore\\n super(null, node);\\n this.registry = registry;\\n this.scroll = this;\\n this.build();\\n this.observer = new MutationObserver((mutations) => {\\n this.update(mutations);\\n });\\n this.observer.observe(this.domNode, OBSERVER_CONFIG);\\n this.attach();\\n }\\n create(input, value) {\\n return this.registry.create(this, input, value);\\n }\\n find(node, bubble = false) {\\n return this.registry.find(node, bubble);\\n }\\n query(query, scope = _scope__WEBPACK_IMPORTED_MODULE_4__[\\\"default\\\"].ANY) {\\n return this.registry.query(query, scope);\\n }\\n register(...Definitions) {\\n return this.registry.register(...Definitions);\\n }\\n build() {\\n if (this.scroll == null)\\n return;\\n super.build();\\n }\\n detach() {\\n super.detach();\\n this.observer.disconnect();\\n }\\n deleteAt(index, length) {\\n this.update();\\n if (index === 0 && length === this.length()) {\\n this.children.forEach(function (child) {\\n child.remove();\\n });\\n }\\n else {\\n super.deleteAt(index, length);\\n }\\n }\\n formatAt(index, length, name, value) {\\n this.update();\\n super.formatAt(index, length, name, value);\\n }\\n insertAt(index, value, def) {\\n this.update();\\n super.insertAt(index, value, def);\\n }\\n optimize(mutations = [], context = {}) {\\n super.optimize(context);\\n const mutationsMap = context.mutationsMap || new WeakMap();\\n // We must modify mutations directly, cannot make copy and then modify\\n let records = Array.from(this.observer.takeRecords());\\n // Array.push currently seems to be implemented by a non-tail recursive function\\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\\n while (records.length > 0)\\n mutations.push(records.pop());\\n let mark = (blot, markParent = true) => {\\n if (blot == null || blot === this)\\n return;\\n if (blot.domNode.parentNode == null)\\n return;\\n if (!mutationsMap.has(blot.domNode)) {\\n mutationsMap.set(blot.domNode, []);\\n }\\n if (markParent)\\n mark(blot.parent);\\n };\\n let optimize = function (blot) {\\n // Post-order traversal\\n if (!mutationsMap.has(blot.domNode))\\n return;\\n if (blot instanceof _abstract_parent__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]) {\\n blot.children.forEach(optimize);\\n }\\n mutationsMap.delete(blot.domNode);\\n blot.optimize(context);\\n };\\n let remaining = mutations;\\n for (let i = 0; remaining.length > 0; i += 1) {\\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\\n throw new Error('[Parchment] Maximum optimize iterations reached');\\n }\\n remaining.forEach((mutation) => {\\n let blot = this.find(mutation.target, true);\\n if (blot == null)\\n return;\\n if (blot.domNode === mutation.target) {\\n if (mutation.type === 'childList') {\\n mark(this.find(mutation.previousSibling, false));\\n Array.from(mutation.addedNodes).forEach((node) => {\\n const child = this.find(node, false);\\n mark(child, false);\\n if (child instanceof _abstract_parent__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]) {\\n child.children.forEach(function (grandChild) {\\n mark(grandChild, false);\\n });\\n }\\n });\\n }\\n else if (mutation.type === 'attributes') {\\n mark(blot.prev);\\n }\\n }\\n mark(blot);\\n });\\n this.children.forEach(optimize);\\n remaining = Array.from(this.observer.takeRecords());\\n records = remaining.slice();\\n while (records.length > 0)\\n mutations.push(records.pop());\\n }\\n }\\n update(mutations, context = {}) {\\n mutations = mutations || this.observer.takeRecords();\\n const mutationsMap = new WeakMap();\\n mutations\\n .map((mutation) => {\\n let blot = _registry__WEBPACK_IMPORTED_MODULE_3__[\\\"default\\\"].find(mutation.target, true);\\n if (blot == null)\\n return null;\\n if (mutationsMap.has(blot.domNode)) {\\n mutationsMap.get(blot.domNode).push(mutation);\\n return null;\\n }\\n else {\\n mutationsMap.set(blot.domNode, [mutation]);\\n return blot;\\n }\\n })\\n .forEach((blot) => {\\n if (blot != null && blot !== this && mutationsMap.has(blot.domNode)) {\\n blot.update(mutationsMap.get(blot.domNode) || [], context);\\n }\\n });\\n context.mutationsMap = mutationsMap;\\n if (mutationsMap.has(this.domNode)) {\\n super.update(mutationsMap.get(this.domNode), context);\\n }\\n this.optimize(mutations, context);\\n }\\n}\\nScrollBlot.blotName = 'scroll';\\nScrollBlot.defaultChild = _block__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"];\\nScrollBlot.allowedChildren = [_block__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"], _abstract_container__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"]];\\nScrollBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_4__[\\\"default\\\"].BLOCK_BLOT;\\nScrollBlot.tagName = 'DIV';\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (ScrollBlot);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/blot/scroll.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/blot/text.ts\":\n/*!*************************************************!*\\\n !*** ./node_modules/parchment/src/blot/text.ts ***!\n \\*************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _abstract_leaf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstract/leaf */ \\\"./node_modules/parchment/src/blot/abstract/leaf.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\n\\nclass TextBlot extends _abstract_leaf__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"] {\\n constructor(scroll, node) {\\n super(scroll, node);\\n this.text = this.statics.value(this.domNode);\\n }\\n static create(value) {\\n return document.createTextNode(value);\\n }\\n static value(domNode) {\\n let text = domNode.data;\\n // @ts-ignore\\n if (text['normalize'])\\n text = text['normalize']();\\n return text;\\n }\\n deleteAt(index, length) {\\n this.domNode.data = this.text =\\n this.text.slice(0, index) + this.text.slice(index + length);\\n }\\n index(node, offset) {\\n if (this.domNode === node) {\\n return offset;\\n }\\n return -1;\\n }\\n insertAt(index, value, def) {\\n if (def == null) {\\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\\n this.domNode.data = this.text;\\n }\\n else {\\n super.insertAt(index, value, def);\\n }\\n }\\n length() {\\n return this.text.length;\\n }\\n optimize(context) {\\n super.optimize(context);\\n this.text = this.statics.value(this.domNode);\\n if (this.text.length === 0) {\\n this.remove();\\n }\\n else if (this.next instanceof TextBlot && this.next.prev === this) {\\n this.insertAt(this.length(), this.next.value());\\n this.next.remove();\\n }\\n }\\n position(index, inclusive = false) {\\n return [this.domNode, index];\\n }\\n split(index, force = false) {\\n if (!force) {\\n if (index === 0)\\n return this;\\n if (index === this.length())\\n return this.next;\\n }\\n let after = this.scroll.create(this.domNode.splitText(index));\\n this.parent.insertBefore(after, this.next || undefined);\\n this.text = this.statics.value(this.domNode);\\n return after;\\n }\\n update(mutations, context) {\\n if (mutations.some(mutation => {\\n return (mutation.type === 'characterData' && mutation.target === this.domNode);\\n })) {\\n this.text = this.statics.value(this.domNode);\\n }\\n }\\n value() {\\n return this.text;\\n }\\n}\\nTextBlot.blotName = 'text';\\nTextBlot.scope = _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].INLINE_BLOT;\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (TextBlot);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/blot/text.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/collection/linked-list.ts\":\n/*!**************************************************************!*\\\n !*** ./node_modules/parchment/src/collection/linked-list.ts ***!\n \\**************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\nclass LinkedList {\\n constructor() {\\n this.head = this.tail = null;\\n this.length = 0;\\n }\\n append(...nodes) {\\n this.insertBefore(nodes[0], null);\\n if (nodes.length > 1) {\\n this.append.apply(this, nodes.slice(1));\\n }\\n }\\n at(index) {\\n let cur, next = this.iterator();\\n while ((cur = next()) && index > 0) {\\n index -= 1;\\n }\\n return cur;\\n }\\n contains(node) {\\n let cur, next = this.iterator();\\n while ((cur = next())) {\\n if (cur === node)\\n return true;\\n }\\n return false;\\n }\\n indexOf(node) {\\n let cur, next = this.iterator(), index = 0;\\n while ((cur = next())) {\\n if (cur === node)\\n return index;\\n index += 1;\\n }\\n return -1;\\n }\\n insertBefore(node, refNode) {\\n if (!node)\\n return;\\n node.next = refNode;\\n if (refNode != null) {\\n node.prev = refNode.prev;\\n if (refNode.prev != null) {\\n refNode.prev.next = node;\\n }\\n refNode.prev = node;\\n if (refNode === this.head) {\\n this.head = node;\\n }\\n }\\n else if (this.tail != null) {\\n this.tail.next = node;\\n node.prev = this.tail;\\n this.tail = node;\\n }\\n else {\\n node.prev = null;\\n this.head = this.tail = node;\\n }\\n this.length += 1;\\n }\\n offset(target) {\\n let index = 0, cur = this.head;\\n while (cur != null) {\\n if (cur === target)\\n return index;\\n index += cur.length();\\n cur = cur.next;\\n }\\n return -1;\\n }\\n remove(node) {\\n if (!this.contains(node))\\n return;\\n if (node.prev != null)\\n node.prev.next = node.next;\\n if (node.next != null)\\n node.next.prev = node.prev;\\n if (node === this.head)\\n this.head = node.next;\\n if (node === this.tail)\\n this.tail = node.prev;\\n this.length -= 1;\\n }\\n iterator(curNode = this.head) {\\n // TODO use yield when we can\\n return function () {\\n let ret = curNode;\\n if (curNode != null)\\n curNode = curNode.next;\\n return ret;\\n };\\n }\\n find(index, inclusive = false) {\\n let cur, next = this.iterator();\\n while ((cur = next())) {\\n let length = cur.length();\\n if (index < length ||\\n (inclusive &&\\n index === length &&\\n (cur.next == null || cur.next.length() !== 0))) {\\n return [cur, index];\\n }\\n index -= length;\\n }\\n return [null, 0];\\n }\\n forEach(callback) {\\n let cur, next = this.iterator();\\n while ((cur = next())) {\\n callback(cur);\\n }\\n }\\n forEachAt(index, length, callback) {\\n if (length <= 0)\\n return;\\n let [startNode, offset] = this.find(index);\\n let cur, curIndex = index - offset, next = this.iterator(startNode);\\n while ((cur = next()) && curIndex < index + length) {\\n let curLength = cur.length();\\n if (index > curIndex) {\\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\\n }\\n else {\\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\\n }\\n curIndex += curLength;\\n }\\n }\\n map(callback) {\\n return this.reduce(function (memo, cur) {\\n memo.push(callback(cur));\\n return memo;\\n }, []);\\n }\\n reduce(callback, memo) {\\n let cur, next = this.iterator();\\n while ((cur = next())) {\\n memo = callback(memo, cur);\\n }\\n return memo;\\n }\\n}\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (LinkedList);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/collection/linked-list.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/error.ts\":\n/*!*********************************************!*\\\n !*** ./node_modules/parchment/src/error.ts ***!\n \\*********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"default\\\", function() { return ParchmentError; });\\nclass ParchmentError extends Error {\\n constructor(message) {\\n message = '[Parchment] ' + message;\\n super(message);\\n this.message = message;\\n this.name = this.constructor.name;\\n }\\n}\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/error.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/parchment.ts\":\n/*!*************************************************!*\\\n !*** ./node_modules/parchment/src/parchment.ts ***!\n \\*************************************************/\n/*! exports provided: ParentBlot, ContainerBlot, LeafBlot, EmbedBlot, ScrollBlot, BlockBlot, InlineBlot, TextBlot, Attributor, ClassAttributor, StyleAttributor, AttributorStore, Registry, Scope */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony import */ var _blot_abstract_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blot/abstract/container */ \\\"./node_modules/parchment/src/blot/abstract/container.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"ContainerBlot\\\", function() { return _blot_abstract_container__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _blot_abstract_parent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./blot/abstract/parent */ \\\"./node_modules/parchment/src/blot/abstract/parent.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"ParentBlot\\\", function() { return _blot_abstract_parent__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _blot_abstract_leaf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blot/abstract/leaf */ \\\"./node_modules/parchment/src/blot/abstract/leaf.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"LeafBlot\\\", function() { return _blot_abstract_leaf__WEBPACK_IMPORTED_MODULE_2__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _blot_scroll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./blot/scroll */ \\\"./node_modules/parchment/src/blot/scroll.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"ScrollBlot\\\", function() { return _blot_scroll__WEBPACK_IMPORTED_MODULE_3__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _blot_inline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./blot/inline */ \\\"./node_modules/parchment/src/blot/inline.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"InlineBlot\\\", function() { return _blot_inline__WEBPACK_IMPORTED_MODULE_4__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _blot_block__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./blot/block */ \\\"./node_modules/parchment/src/blot/block.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"BlockBlot\\\", function() { return _blot_block__WEBPACK_IMPORTED_MODULE_5__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _blot_embed__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blot/embed */ \\\"./node_modules/parchment/src/blot/embed.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"EmbedBlot\\\", function() { return _blot_embed__WEBPACK_IMPORTED_MODULE_6__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _blot_text__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./blot/text */ \\\"./node_modules/parchment/src/blot/text.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"TextBlot\\\", function() { return _blot_text__WEBPACK_IMPORTED_MODULE_7__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _attributor_attributor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./attributor/attributor */ \\\"./node_modules/parchment/src/attributor/attributor.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"Attributor\\\", function() { return _attributor_attributor__WEBPACK_IMPORTED_MODULE_8__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _attributor_class__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./attributor/class */ \\\"./node_modules/parchment/src/attributor/class.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"ClassAttributor\\\", function() { return _attributor_class__WEBPACK_IMPORTED_MODULE_9__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _attributor_style__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./attributor/style */ \\\"./node_modules/parchment/src/attributor/style.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"StyleAttributor\\\", function() { return _attributor_style__WEBPACK_IMPORTED_MODULE_10__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _attributor_store__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./attributor/store */ \\\"./node_modules/parchment/src/attributor/store.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"AttributorStore\\\", function() { return _attributor_store__WEBPACK_IMPORTED_MODULE_11__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./registry */ \\\"./node_modules/parchment/src/registry.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"Registry\\\", function() { return _registry__WEBPACK_IMPORTED_MODULE_12__[\\\"default\\\"]; });\\n\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \\\"Scope\\\", function() { return _scope__WEBPACK_IMPORTED_MODULE_13__[\\\"default\\\"]; });\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/parchment.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/registry.ts\":\n/*!************************************************!*\\\n !*** ./node_modules/parchment/src/registry.ts ***!\n \\************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \\\"default\\\", function() { return Registry; });\\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./error */ \\\"./node_modules/parchment/src/error.ts\\\");\\n/* harmony import */ var _scope__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scope */ \\\"./node_modules/parchment/src/scope.ts\\\");\\n\\n\\nclass Registry {\\n constructor() {\\n this.attributes = {};\\n this.classes = {};\\n this.tags = {};\\n this.types = {};\\n }\\n static find(node, bubble = false) {\\n if (node == null)\\n return null;\\n if (this.blots.has(node))\\n return this.blots.get(node) || null;\\n if (bubble)\\n return this.find(node.parentNode, bubble);\\n return null;\\n }\\n create(scroll, input, value) {\\n const match = this.query(input);\\n if (match == null) {\\n throw new _error__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"](`Unable to create ${input} blot`);\\n }\\n const BlotClass = match;\\n const node = \\n // @ts-ignore\\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE\\n ? input\\n : BlotClass.create(value);\\n const blot = new BlotClass(scroll, node, value);\\n Registry.blots.set(blot.domNode, blot);\\n return blot;\\n }\\n find(node, bubble = false) {\\n return Registry.find(node, bubble);\\n }\\n query(query, scope = _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].ANY) {\\n let match;\\n if (typeof query === 'string') {\\n match = this.types[query] || this.attributes[query];\\n // @ts-ignore\\n }\\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\\n match = this.types['text'];\\n }\\n else if (typeof query === 'number') {\\n if (query & _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].LEVEL & _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].BLOCK) {\\n match = this.types['block'];\\n }\\n else if (query & _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].LEVEL & _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].INLINE) {\\n match = this.types['inline'];\\n }\\n }\\n else if (query instanceof HTMLElement) {\\n let names = (query.getAttribute('class') || '').split(/\\\\s+/);\\n for (let i in names) {\\n match = this.classes[names[i]];\\n if (match)\\n break;\\n }\\n match = match || this.tags[query.tagName];\\n }\\n if (match == null)\\n return null;\\n // @ts-ignore\\n if (scope & _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].LEVEL & match.scope && scope & _scope__WEBPACK_IMPORTED_MODULE_1__[\\\"default\\\"].TYPE & match.scope)\\n return match;\\n return null;\\n }\\n register(...Definitions) {\\n if (Definitions.length > 1) {\\n return Definitions.map(d => {\\n return this.register(d);\\n });\\n }\\n let Definition = Definitions[0];\\n if (typeof Definition.blotName !== 'string' &&\\n typeof Definition.attrName !== 'string') {\\n throw new _error__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]('Invalid definition');\\n }\\n else if (Definition.blotName === 'abstract') {\\n throw new _error__WEBPACK_IMPORTED_MODULE_0__[\\\"default\\\"]('Cannot register abstract class');\\n }\\n this.types[Definition.blotName || Definition.attrName] = Definition;\\n if (typeof Definition.keyName === 'string') {\\n this.attributes[Definition.keyName] = Definition;\\n }\\n else {\\n if (Definition.className != null) {\\n this.classes[Definition.className] = Definition;\\n }\\n if (Definition.tagName != null) {\\n if (Array.isArray(Definition.tagName)) {\\n Definition.tagName = Definition.tagName.map(function (tagName) {\\n return tagName.toUpperCase();\\n });\\n }\\n else {\\n Definition.tagName = Definition.tagName.toUpperCase();\\n }\\n let tagNames = Array.isArray(Definition.tagName)\\n ? Definition.tagName\\n : [Definition.tagName];\\n tagNames.forEach((tag) => {\\n if (this.tags[tag] == null || Definition.className == null) {\\n this.tags[tag] = Definition;\\n }\\n });\\n }\\n }\\n return Definition;\\n }\\n}\\nRegistry.blots = new WeakMap();\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/registry.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/parchment/src/scope.ts\":\n/*!*********************************************!*\\\n !*** ./node_modules/parchment/src/scope.ts ***!\n \\*********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\neval(\"__webpack_require__.r(__webpack_exports__);\\nvar Scope;\\n(function (Scope) {\\n Scope[Scope[\\\"TYPE\\\"] = 3] = \\\"TYPE\\\";\\n Scope[Scope[\\\"LEVEL\\\"] = 12] = \\\"LEVEL\\\";\\n Scope[Scope[\\\"ATTRIBUTE\\\"] = 13] = \\\"ATTRIBUTE\\\";\\n Scope[Scope[\\\"BLOT\\\"] = 14] = \\\"BLOT\\\";\\n Scope[Scope[\\\"INLINE\\\"] = 7] = \\\"INLINE\\\";\\n Scope[Scope[\\\"BLOCK\\\"] = 11] = \\\"BLOCK\\\";\\n Scope[Scope[\\\"BLOCK_BLOT\\\"] = 10] = \\\"BLOCK_BLOT\\\";\\n Scope[Scope[\\\"INLINE_BLOT\\\"] = 6] = \\\"INLINE_BLOT\\\";\\n Scope[Scope[\\\"BLOCK_ATTRIBUTE\\\"] = 9] = \\\"BLOCK_ATTRIBUTE\\\";\\n Scope[Scope[\\\"INLINE_ATTRIBUTE\\\"] = 5] = \\\"INLINE_ATTRIBUTE\\\";\\n Scope[Scope[\\\"ANY\\\"] = 15] = \\\"ANY\\\";\\n})(Scope || (Scope = {}));\\n/* harmony default export */ __webpack_exports__[\\\"default\\\"] = (Scope);\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/parchment/src/scope.ts?\");\n\n/***/ }),\n\n/***/ \"./node_modules/quill-delta/lib/delta.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/quill-delta/lib/delta.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"var diff = __webpack_require__(/*! fast-diff */ \\\"./node_modules/fast-diff/diff.js\\\");\\nvar equal = __webpack_require__(/*! deep-equal */ \\\"./node_modules/deep-equal/index.js\\\");\\nvar extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\nvar op = __webpack_require__(/*! ./op */ \\\"./node_modules/quill-delta/lib/op.js\\\");\\n\\n\\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\\n\\n\\nvar Delta = function (ops) {\\n // Assume we are given a well formed ops\\n if (Array.isArray(ops)) {\\n this.ops = ops;\\n } else if (ops != null && Array.isArray(ops.ops)) {\\n this.ops = ops.ops;\\n } else {\\n this.ops = [];\\n }\\n};\\n\\n\\nDelta.prototype.insert = function (text, attributes) {\\n var newOp = {};\\n if (text.length === 0) return this;\\n newOp.insert = text;\\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\\n newOp.attributes = attributes;\\n }\\n return this.push(newOp);\\n};\\n\\nDelta.prototype['delete'] = function (length) {\\n if (length <= 0) return this;\\n return this.push({ 'delete': length });\\n};\\n\\nDelta.prototype.retain = function (length, attributes) {\\n if (length <= 0) return this;\\n var newOp = { retain: length };\\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\\n newOp.attributes = attributes;\\n }\\n return this.push(newOp);\\n};\\n\\nDelta.prototype.push = function (newOp) {\\n var index = this.ops.length;\\n var lastOp = this.ops[index - 1];\\n newOp = extend(true, {}, newOp);\\n if (typeof lastOp === 'object') {\\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\\n return this;\\n }\\n // Since it does not matter if we insert before or after deleting at the same index,\\n // always prefer to insert first\\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\\n index -= 1;\\n lastOp = this.ops[index - 1];\\n if (typeof lastOp !== 'object') {\\n this.ops.unshift(newOp);\\n return this;\\n }\\n }\\n if (equal(newOp.attributes, lastOp.attributes)) {\\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\\n return this;\\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\\n return this;\\n }\\n }\\n }\\n if (index === this.ops.length) {\\n this.ops.push(newOp);\\n } else {\\n this.ops.splice(index, 0, newOp);\\n }\\n return this;\\n};\\n\\nDelta.prototype.chop = function () {\\n var lastOp = this.ops[this.ops.length - 1];\\n if (lastOp && lastOp.retain && !lastOp.attributes) {\\n this.ops.pop();\\n }\\n return this;\\n};\\n\\nDelta.prototype.filter = function (predicate) {\\n return this.ops.filter(predicate);\\n};\\n\\nDelta.prototype.forEach = function (predicate) {\\n this.ops.forEach(predicate);\\n};\\n\\nDelta.prototype.map = function (predicate) {\\n return this.ops.map(predicate);\\n};\\n\\nDelta.prototype.partition = function (predicate) {\\n var passed = [], failed = [];\\n this.forEach(function(op) {\\n var target = predicate(op) ? passed : failed;\\n target.push(op);\\n });\\n return [passed, failed];\\n};\\n\\nDelta.prototype.reduce = function (predicate, initial) {\\n return this.ops.reduce(predicate, initial);\\n};\\n\\nDelta.prototype.changeLength = function () {\\n return this.reduce(function (length, elem) {\\n if (elem.insert) {\\n return length + op.length(elem);\\n } else if (elem.delete) {\\n return length - elem.delete;\\n }\\n return length;\\n }, 0);\\n};\\n\\nDelta.prototype.length = function () {\\n return this.reduce(function (length, elem) {\\n return length + op.length(elem);\\n }, 0);\\n};\\n\\nDelta.prototype.slice = function (start, end) {\\n start = start || 0;\\n if (typeof end !== 'number') end = Infinity;\\n var ops = [];\\n var iter = op.iterator(this.ops);\\n var index = 0;\\n while (index < end && iter.hasNext()) {\\n var nextOp;\\n if (index < start) {\\n nextOp = iter.next(start - index);\\n } else {\\n nextOp = iter.next(end - index);\\n ops.push(nextOp);\\n }\\n index += op.length(nextOp);\\n }\\n return new Delta(ops);\\n};\\n\\n\\nDelta.prototype.compose = function (other) {\\n var thisIter = op.iterator(this.ops);\\n var otherIter = op.iterator(other.ops);\\n var delta = new Delta();\\n while (thisIter.hasNext() || otherIter.hasNext()) {\\n if (otherIter.peekType() === 'insert') {\\n delta.push(otherIter.next());\\n } else if (thisIter.peekType() === 'delete') {\\n delta.push(thisIter.next());\\n } else {\\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\\n var thisOp = thisIter.next(length);\\n var otherOp = otherIter.next(length);\\n if (typeof otherOp.retain === 'number') {\\n var newOp = {};\\n if (typeof thisOp.retain === 'number') {\\n newOp.retain = length;\\n } else {\\n newOp.insert = thisOp.insert;\\n }\\n // Preserve null when composing with a retain, otherwise remove it for inserts\\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\\n if (attributes) newOp.attributes = attributes;\\n delta.push(newOp);\\n // Other op should be delete, we could be an insert or retain\\n // Insert + delete cancels out\\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\\n delta.push(otherOp);\\n }\\n }\\n }\\n return delta.chop();\\n};\\n\\nDelta.prototype.concat = function (other) {\\n var delta = new Delta(this.ops.slice());\\n if (other.ops.length > 0) {\\n delta.push(other.ops[0]);\\n delta.ops = delta.ops.concat(other.ops.slice(1));\\n }\\n return delta;\\n};\\n\\nDelta.prototype.diff = function (other, index) {\\n if (this.ops === other.ops) {\\n return new Delta();\\n }\\n var strings = [this, other].map(function (delta) {\\n return delta.map(function (op) {\\n if (op.insert != null) {\\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\\n }\\n var prep = (delta === other) ? 'on' : 'with';\\n throw new Error('diff() called ' + prep + ' non-document');\\n }).join('');\\n });\\n var delta = new Delta();\\n var diffResult = diff(strings[0], strings[1], index);\\n var thisIter = op.iterator(this.ops);\\n var otherIter = op.iterator(other.ops);\\n diffResult.forEach(function (component) {\\n var length = component[1].length;\\n while (length > 0) {\\n var opLength = 0;\\n switch (component[0]) {\\n case diff.INSERT:\\n opLength = Math.min(otherIter.peekLength(), length);\\n delta.push(otherIter.next(opLength));\\n break;\\n case diff.DELETE:\\n opLength = Math.min(length, thisIter.peekLength());\\n thisIter.next(opLength);\\n delta['delete'](opLength);\\n break;\\n case diff.EQUAL:\\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\\n var thisOp = thisIter.next(opLength);\\n var otherOp = otherIter.next(opLength);\\n if (equal(thisOp.insert, otherOp.insert)) {\\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\\n } else {\\n delta.push(otherOp)['delete'](opLength);\\n }\\n break;\\n }\\n length -= opLength;\\n }\\n });\\n return delta.chop();\\n};\\n\\nDelta.prototype.eachLine = function (predicate, newline) {\\n newline = newline || '\\\\n';\\n var iter = op.iterator(this.ops);\\n var line = new Delta();\\n var i = 0;\\n while (iter.hasNext()) {\\n if (iter.peekType() !== 'insert') return;\\n var thisOp = iter.peek();\\n var start = op.length(thisOp) - iter.peekLength();\\n var index = typeof thisOp.insert === 'string' ?\\n thisOp.insert.indexOf(newline, start) - start : -1;\\n if (index < 0) {\\n line.push(iter.next());\\n } else if (index > 0) {\\n line.push(iter.next(index));\\n } else {\\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\\n return;\\n }\\n i += 1;\\n line = new Delta();\\n }\\n }\\n if (line.length() > 0) {\\n predicate(line, {}, i);\\n }\\n};\\n\\nDelta.prototype.transform = function (other, priority) {\\n priority = !!priority;\\n if (typeof other === 'number') {\\n return this.transformPosition(other, priority);\\n }\\n var thisIter = op.iterator(this.ops);\\n var otherIter = op.iterator(other.ops);\\n var delta = new Delta();\\n while (thisIter.hasNext() || otherIter.hasNext()) {\\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\\n delta.retain(op.length(thisIter.next()));\\n } else if (otherIter.peekType() === 'insert') {\\n delta.push(otherIter.next());\\n } else {\\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\\n var thisOp = thisIter.next(length);\\n var otherOp = otherIter.next(length);\\n if (thisOp['delete']) {\\n // Our delete either makes their delete redundant or removes their retain\\n continue;\\n } else if (otherOp['delete']) {\\n delta.push(otherOp);\\n } else {\\n // We retain either their retain or insert\\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\\n }\\n }\\n }\\n return delta.chop();\\n};\\n\\nDelta.prototype.transformPosition = function (index, priority) {\\n priority = !!priority;\\n var thisIter = op.iterator(this.ops);\\n var offset = 0;\\n while (thisIter.hasNext() && offset <= index) {\\n var length = thisIter.peekLength();\\n var nextType = thisIter.peekType();\\n thisIter.next();\\n if (nextType === 'delete') {\\n index -= Math.min(length, index - offset);\\n continue;\\n } else if (nextType === 'insert' && (offset < index || !priority)) {\\n index += length;\\n }\\n offset += length;\\n }\\n return index;\\n};\\n\\n\\nmodule.exports = Delta;\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/quill-delta/lib/delta.js?\");\n\n/***/ }),\n\n/***/ \"./node_modules/quill-delta/lib/op.js\":\n/*!********************************************!*\\\n !*** ./node_modules/quill-delta/lib/op.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"var equal = __webpack_require__(/*! deep-equal */ \\\"./node_modules/deep-equal/index.js\\\");\\nvar extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\n\\n\\nvar lib = {\\n attributes: {\\n compose: function (a, b, keepNull) {\\n if (typeof a !== 'object') a = {};\\n if (typeof b !== 'object') b = {};\\n var attributes = extend(true, {}, b);\\n if (!keepNull) {\\n attributes = Object.keys(attributes).reduce(function (copy, key) {\\n if (attributes[key] != null) {\\n copy[key] = attributes[key];\\n }\\n return copy;\\n }, {});\\n }\\n for (var key in a) {\\n if (a[key] !== undefined && b[key] === undefined) {\\n attributes[key] = a[key];\\n }\\n }\\n return Object.keys(attributes).length > 0 ? attributes : undefined;\\n },\\n\\n diff: function(a, b) {\\n if (typeof a !== 'object') a = {};\\n if (typeof b !== 'object') b = {};\\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\\n if (!equal(a[key], b[key])) {\\n attributes[key] = b[key] === undefined ? null : b[key];\\n }\\n return attributes;\\n }, {});\\n return Object.keys(attributes).length > 0 ? attributes : undefined;\\n },\\n\\n transform: function (a, b, priority) {\\n if (typeof a !== 'object') return b;\\n if (typeof b !== 'object') return undefined;\\n if (!priority) return b; // b simply overwrites us without priority\\n var attributes = Object.keys(b).reduce(function (attributes, key) {\\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\\n return attributes;\\n }, {});\\n return Object.keys(attributes).length > 0 ? attributes : undefined;\\n }\\n },\\n\\n iterator: function (ops) {\\n return new Iterator(ops);\\n },\\n\\n length: function (op) {\\n if (typeof op['delete'] === 'number') {\\n return op['delete'];\\n } else if (typeof op.retain === 'number') {\\n return op.retain;\\n } else {\\n return typeof op.insert === 'string' ? op.insert.length : 1;\\n }\\n }\\n};\\n\\n\\nfunction Iterator(ops) {\\n this.ops = ops;\\n this.index = 0;\\n this.offset = 0;\\n};\\n\\nIterator.prototype.hasNext = function () {\\n return this.peekLength() < Infinity;\\n};\\n\\nIterator.prototype.next = function (length) {\\n if (!length) length = Infinity;\\n var nextOp = this.ops[this.index];\\n if (nextOp) {\\n var offset = this.offset;\\n var opLength = lib.length(nextOp)\\n if (length >= opLength - offset) {\\n length = opLength - offset;\\n this.index += 1;\\n this.offset = 0;\\n } else {\\n this.offset += length;\\n }\\n if (typeof nextOp['delete'] === 'number') {\\n return { 'delete': length };\\n } else {\\n var retOp = {};\\n if (nextOp.attributes) {\\n retOp.attributes = nextOp.attributes;\\n }\\n if (typeof nextOp.retain === 'number') {\\n retOp.retain = length;\\n } else if (typeof nextOp.insert === 'string') {\\n retOp.insert = nextOp.insert.substr(offset, length);\\n } else {\\n // offset should === 0, length should === 1\\n retOp.insert = nextOp.insert;\\n }\\n return retOp;\\n }\\n } else {\\n return { retain: Infinity };\\n }\\n};\\n\\nIterator.prototype.peek = function () {\\n return this.ops[this.index];\\n};\\n\\nIterator.prototype.peekLength = function () {\\n if (this.ops[this.index]) {\\n // Should never return 0 if our index is being managed correctly\\n return lib.length(this.ops[this.index]) - this.offset;\\n } else {\\n return Infinity;\\n }\\n};\\n\\nIterator.prototype.peekType = function () {\\n if (this.ops[this.index]) {\\n if (typeof this.ops[this.index]['delete'] === 'number') {\\n return 'delete';\\n } else if (typeof this.ops[this.index].retain === 'number') {\\n return 'retain';\\n } else {\\n return 'insert';\\n }\\n }\\n return 'retain';\\n};\\n\\n\\nmodule.exports = lib;\\n\\n\\n//# sourceURL=webpack://Quill/./node_modules/quill-delta/lib/op.js?\");\n\n/***/ }),\n\n/***/ \"./quill.js\":\n/*!******************!*\\\n !*** ./quill.js ***!\n \\******************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _core = __webpack_require__(/*! ./core */ \\\"./core.js\\\");\\n\\nvar _core2 = _interopRequireDefault(_core);\\n\\nvar _align = __webpack_require__(/*! ./formats/align */ \\\"./formats/align.js\\\");\\n\\nvar _direction = __webpack_require__(/*! ./formats/direction */ \\\"./formats/direction.js\\\");\\n\\nvar _indent = __webpack_require__(/*! ./formats/indent */ \\\"./formats/indent.js\\\");\\n\\nvar _indent2 = _interopRequireDefault(_indent);\\n\\nvar _blockquote = __webpack_require__(/*! ./formats/blockquote */ \\\"./formats/blockquote.js\\\");\\n\\nvar _blockquote2 = _interopRequireDefault(_blockquote);\\n\\nvar _header = __webpack_require__(/*! ./formats/header */ \\\"./formats/header.js\\\");\\n\\nvar _header2 = _interopRequireDefault(_header);\\n\\nvar _list = __webpack_require__(/*! ./formats/list */ \\\"./formats/list.js\\\");\\n\\nvar _list2 = _interopRequireDefault(_list);\\n\\nvar _background = __webpack_require__(/*! ./formats/background */ \\\"./formats/background.js\\\");\\n\\nvar _color = __webpack_require__(/*! ./formats/color */ \\\"./formats/color.js\\\");\\n\\nvar _font = __webpack_require__(/*! ./formats/font */ \\\"./formats/font.js\\\");\\n\\nvar _size = __webpack_require__(/*! ./formats/size */ \\\"./formats/size.js\\\");\\n\\nvar _bold = __webpack_require__(/*! ./formats/bold */ \\\"./formats/bold.js\\\");\\n\\nvar _bold2 = _interopRequireDefault(_bold);\\n\\nvar _italic = __webpack_require__(/*! ./formats/italic */ \\\"./formats/italic.js\\\");\\n\\nvar _italic2 = _interopRequireDefault(_italic);\\n\\nvar _link = __webpack_require__(/*! ./formats/link */ \\\"./formats/link.js\\\");\\n\\nvar _link2 = _interopRequireDefault(_link);\\n\\nvar _script = __webpack_require__(/*! ./formats/script */ \\\"./formats/script.js\\\");\\n\\nvar _script2 = _interopRequireDefault(_script);\\n\\nvar _strike = __webpack_require__(/*! ./formats/strike */ \\\"./formats/strike.js\\\");\\n\\nvar _strike2 = _interopRequireDefault(_strike);\\n\\nvar _underline = __webpack_require__(/*! ./formats/underline */ \\\"./formats/underline.js\\\");\\n\\nvar _underline2 = _interopRequireDefault(_underline);\\n\\nvar _formula = __webpack_require__(/*! ./formats/formula */ \\\"./formats/formula.js\\\");\\n\\nvar _formula2 = _interopRequireDefault(_formula);\\n\\nvar _image = __webpack_require__(/*! ./formats/image */ \\\"./formats/image.js\\\");\\n\\nvar _image2 = _interopRequireDefault(_image);\\n\\nvar _video = __webpack_require__(/*! ./formats/video */ \\\"./formats/video.js\\\");\\n\\nvar _video2 = _interopRequireDefault(_video);\\n\\nvar _code = __webpack_require__(/*! ./formats/code */ \\\"./formats/code.js\\\");\\n\\nvar _code2 = _interopRequireDefault(_code);\\n\\nvar _syntax = __webpack_require__(/*! ./modules/syntax */ \\\"./modules/syntax.js\\\");\\n\\nvar _syntax2 = _interopRequireDefault(_syntax);\\n\\nvar _table = __webpack_require__(/*! ./modules/table */ \\\"./modules/table.js\\\");\\n\\nvar _table2 = _interopRequireDefault(_table);\\n\\nvar _toolbar = __webpack_require__(/*! ./modules/toolbar */ \\\"./modules/toolbar.js\\\");\\n\\nvar _toolbar2 = _interopRequireDefault(_toolbar);\\n\\nvar _icons = __webpack_require__(/*! ./ui/icons */ \\\"./ui/icons.js\\\");\\n\\nvar _icons2 = _interopRequireDefault(_icons);\\n\\nvar _picker = __webpack_require__(/*! ./ui/picker */ \\\"./ui/picker.js\\\");\\n\\nvar _picker2 = _interopRequireDefault(_picker);\\n\\nvar _colorPicker = __webpack_require__(/*! ./ui/color-picker */ \\\"./ui/color-picker.js\\\");\\n\\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\\n\\nvar _iconPicker = __webpack_require__(/*! ./ui/icon-picker */ \\\"./ui/icon-picker.js\\\");\\n\\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\\n\\nvar _tooltip = __webpack_require__(/*! ./ui/tooltip */ \\\"./ui/tooltip.js\\\");\\n\\nvar _tooltip2 = _interopRequireDefault(_tooltip);\\n\\nvar _bubble = __webpack_require__(/*! ./themes/bubble */ \\\"./themes/bubble.js\\\");\\n\\nvar _bubble2 = _interopRequireDefault(_bubble);\\n\\nvar _snow = __webpack_require__(/*! ./themes/snow */ \\\"./themes/snow.js\\\");\\n\\nvar _snow2 = _interopRequireDefault(_snow);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\n_core2.default.register({\\n 'attributors/attribute/direction': _direction.DirectionAttribute,\\n\\n 'attributors/class/align': _align.AlignClass,\\n 'attributors/class/background': _background.BackgroundClass,\\n 'attributors/class/color': _color.ColorClass,\\n 'attributors/class/direction': _direction.DirectionClass,\\n 'attributors/class/font': _font.FontClass,\\n 'attributors/class/size': _size.SizeClass,\\n\\n 'attributors/style/align': _align.AlignStyle,\\n 'attributors/style/background': _background.BackgroundStyle,\\n 'attributors/style/color': _color.ColorStyle,\\n 'attributors/style/direction': _direction.DirectionStyle,\\n 'attributors/style/font': _font.FontStyle,\\n 'attributors/style/size': _size.SizeStyle\\n}, true);\\n\\n_core2.default.register({\\n 'formats/align': _align.AlignClass,\\n 'formats/direction': _direction.DirectionClass,\\n 'formats/indent': _indent2.default,\\n\\n 'formats/background': _background.BackgroundStyle,\\n 'formats/color': _color.ColorStyle,\\n 'formats/font': _font.FontClass,\\n 'formats/size': _size.SizeClass,\\n\\n 'formats/blockquote': _blockquote2.default,\\n 'formats/code-block': _code2.default,\\n 'formats/header': _header2.default,\\n 'formats/list': _list2.default,\\n\\n 'formats/bold': _bold2.default,\\n 'formats/code': _code.Code,\\n 'formats/italic': _italic2.default,\\n 'formats/link': _link2.default,\\n 'formats/script': _script2.default,\\n 'formats/strike': _strike2.default,\\n 'formats/underline': _underline2.default,\\n\\n 'formats/formula': _formula2.default,\\n 'formats/image': _image2.default,\\n 'formats/video': _video2.default,\\n\\n 'modules/syntax': _syntax2.default,\\n 'modules/table': _table2.default,\\n 'modules/toolbar': _toolbar2.default,\\n\\n 'themes/bubble': _bubble2.default,\\n 'themes/snow': _snow2.default,\\n\\n 'ui/icons': _icons2.default,\\n 'ui/picker': _picker2.default,\\n 'ui/icon-picker': _iconPicker2.default,\\n 'ui/color-picker': _colorPicker2.default,\\n 'ui/tooltip': _tooltip2.default\\n}, true);\\n\\nexports.default = _core2.default;\\n\\n//# sourceURL=webpack://Quill/./quill.js?\");\n\n/***/ }),\n\n/***/ \"./themes/base.js\":\n/*!************************!*\\\n !*** ./themes/base.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.default = exports.BaseTooltip = undefined;\\n\\nvar _extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\n\\nvar _extend2 = _interopRequireDefault(_extend);\\n\\nvar _emitter = __webpack_require__(/*! ../core/emitter */ \\\"./core/emitter.js\\\");\\n\\nvar _emitter2 = _interopRequireDefault(_emitter);\\n\\nvar _theme = __webpack_require__(/*! ../core/theme */ \\\"./core/theme.js\\\");\\n\\nvar _theme2 = _interopRequireDefault(_theme);\\n\\nvar _colorPicker = __webpack_require__(/*! ../ui/color-picker */ \\\"./ui/color-picker.js\\\");\\n\\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\\n\\nvar _iconPicker = __webpack_require__(/*! ../ui/icon-picker */ \\\"./ui/icon-picker.js\\\");\\n\\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\\n\\nvar _picker = __webpack_require__(/*! ../ui/picker */ \\\"./ui/picker.js\\\");\\n\\nvar _picker2 = _interopRequireDefault(_picker);\\n\\nvar _tooltip = __webpack_require__(/*! ../ui/tooltip */ \\\"./ui/tooltip.js\\\");\\n\\nvar _tooltip2 = _interopRequireDefault(_tooltip);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst ALIGNS = [false, 'center', 'right', 'justify'];\\n\\nconst COLORS = ['#000000', '#e60000', '#ff9900', '#ffff00', '#008a00', '#0066cc', '#9933ff', '#ffffff', '#facccc', '#ffebcc', '#ffffcc', '#cce8cc', '#cce0f5', '#ebd6ff', '#bbbbbb', '#f06666', '#ffc266', '#ffff66', '#66b966', '#66a3e0', '#c285ff', '#888888', '#a10000', '#b26b00', '#b2b200', '#006100', '#0047b2', '#6b24b2', '#444444', '#5c0000', '#663d00', '#666600', '#003700', '#002966', '#3d1466'];\\n\\nconst FONTS = [false, 'serif', 'monospace'];\\n\\nconst HEADERS = ['1', '2', '3', false];\\n\\nconst SIZES = ['small', false, 'large', 'huge'];\\n\\nclass BaseTheme extends _theme2.default {\\n constructor(quill, options) {\\n super(quill, options);\\n const listener = e => {\\n if (!document.body.contains(quill.root)) {\\n document.body.removeEventListener('click', listener);\\n return;\\n }\\n if (this.tooltip != null && !this.tooltip.root.contains(e.target) && document.activeElement !== this.tooltip.textbox && !this.quill.hasFocus()) {\\n this.tooltip.hide();\\n }\\n if (this.pickers != null) {\\n this.pickers.forEach(picker => {\\n if (!picker.container.contains(e.target)) {\\n picker.close();\\n }\\n });\\n }\\n };\\n quill.emitter.listenDOM('click', document.body, listener);\\n }\\n\\n addModule(name) {\\n const module = super.addModule(name);\\n if (name === 'toolbar') {\\n this.extendToolbar(module);\\n }\\n return module;\\n }\\n\\n buildButtons(buttons, icons) {\\n Array.from(buttons).forEach(button => {\\n const className = button.getAttribute('class') || '';\\n className.split(/\\\\s+/).forEach(name => {\\n if (!name.startsWith('ql-')) return;\\n name = name.slice('ql-'.length);\\n if (icons[name] == null) return;\\n if (name === 'direction') {\\n button.innerHTML = icons[name][''] + icons[name].rtl;\\n } else if (typeof icons[name] === 'string') {\\n button.innerHTML = icons[name];\\n } else {\\n const value = button.value || '';\\n if (value != null && icons[name][value]) {\\n button.innerHTML = icons[name][value];\\n }\\n }\\n });\\n });\\n }\\n\\n buildPickers(selects, icons) {\\n this.pickers = Array.from(selects).map(select => {\\n if (select.classList.contains('ql-align')) {\\n if (select.querySelector('option') == null) {\\n fillSelect(select, ALIGNS);\\n }\\n return new _iconPicker2.default(select, icons.align);\\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\\n const format = select.classList.contains('ql-background') ? 'background' : 'color';\\n if (select.querySelector('option') == null) {\\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\\n }\\n return new _colorPicker2.default(select, icons[format]);\\n }\\n if (select.querySelector('option') == null) {\\n if (select.classList.contains('ql-font')) {\\n fillSelect(select, FONTS);\\n } else if (select.classList.contains('ql-header')) {\\n fillSelect(select, HEADERS);\\n } else if (select.classList.contains('ql-size')) {\\n fillSelect(select, SIZES);\\n }\\n }\\n return new _picker2.default(select);\\n });\\n const update = () => {\\n this.pickers.forEach(picker => {\\n picker.update();\\n });\\n };\\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\\n }\\n}\\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\\n modules: {\\n toolbar: {\\n handlers: {\\n formula() {\\n this.quill.theme.tooltip.edit('formula');\\n },\\n image() {\\n let fileInput = this.container.querySelector('input.ql-image[type=file]');\\n if (fileInput == null) {\\n fileInput = document.createElement('input');\\n fileInput.setAttribute('type', 'file');\\n fileInput.setAttribute('accept', this.quill.uploader.options.mimetypes.join(', '));\\n fileInput.classList.add('ql-image');\\n fileInput.addEventListener('change', () => {\\n const range = this.quill.getSelection(true);\\n this.quill.uploader.upload(range, fileInput.files);\\n fileInput.value = '';\\n });\\n this.container.appendChild(fileInput);\\n }\\n fileInput.click();\\n },\\n video() {\\n this.quill.theme.tooltip.edit('video');\\n }\\n }\\n }\\n }\\n});\\n\\nclass BaseTooltip extends _tooltip2.default {\\n constructor(quill, boundsContainer) {\\n super(quill, boundsContainer);\\n this.textbox = this.root.querySelector('input[type=\\\"text\\\"]');\\n this.listen();\\n }\\n\\n listen() {\\n this.textbox.addEventListener('keydown', event => {\\n if (event.key === 'Enter') {\\n this.save();\\n event.preventDefault();\\n } else if (event.key === 'Escape') {\\n this.cancel();\\n event.preventDefault();\\n }\\n });\\n }\\n\\n cancel() {\\n this.hide();\\n }\\n\\n edit(mode = 'link', preview = null) {\\n this.root.classList.remove('ql-hidden');\\n this.root.classList.add('ql-editing');\\n if (preview != null) {\\n this.textbox.value = preview;\\n } else if (mode !== this.root.getAttribute('data-mode')) {\\n this.textbox.value = '';\\n }\\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\\n this.textbox.select();\\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute(`data-${mode}`) || '');\\n this.root.setAttribute('data-mode', mode);\\n }\\n\\n restoreFocus() {\\n const scrollTop = this.quill.scrollingContainer.scrollTop;\\n\\n this.quill.focus();\\n this.quill.scrollingContainer.scrollTop = scrollTop;\\n }\\n\\n save() {\\n let value = this.textbox.value;\\n\\n switch (this.root.getAttribute('data-mode')) {\\n case 'link':\\n {\\n const scrollTop = this.quill.root.scrollTop;\\n\\n if (this.linkRange) {\\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\\n delete this.linkRange;\\n } else {\\n this.restoreFocus();\\n this.quill.format('link', value, _emitter2.default.sources.USER);\\n }\\n this.quill.root.scrollTop = scrollTop;\\n break;\\n }\\n case 'video':\\n {\\n value = extractVideoUrl(value);\\n } // eslint-disable-next-line no-fallthrough\\n case 'formula':\\n {\\n if (!value) break;\\n const range = this.quill.getSelection(true);\\n if (range != null) {\\n const index = range.index + range.length;\\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\\n if (this.root.getAttribute('data-mode') === 'formula') {\\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\\n }\\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\\n }\\n break;\\n }\\n default:\\n }\\n this.textbox.value = '';\\n this.hide();\\n }\\n}\\n\\nfunction extractVideoUrl(url) {\\n let match = url.match(/^(?:(https?):\\\\/\\\\/)?(?:(?:www|m)\\\\.)?youtube\\\\.com\\\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\\\/\\\\/)?(?:(?:www|m)\\\\.)?youtu\\\\.be\\\\/([a-zA-Z0-9_-]+)/);\\n if (match) {\\n return `${match[1] || 'https'}://www.youtube.com/embed/${match[2]}?showinfo=0`;\\n }\\n // eslint-disable-next-line no-cond-assign\\n if (match = url.match(/^(?:(https?):\\\\/\\\\/)?(?:www\\\\.)?vimeo\\\\.com\\\\/(\\\\d+)/)) {\\n return `${match[1] || 'https'}://player.vimeo.com/video/${match[2]}/`;\\n }\\n return url;\\n}\\n\\nfunction fillSelect(select, values, defaultValue = false) {\\n values.forEach(value => {\\n const option = document.createElement('option');\\n if (value === defaultValue) {\\n option.setAttribute('selected', 'selected');\\n } else {\\n option.setAttribute('value', value);\\n }\\n select.appendChild(option);\\n });\\n}\\n\\nexports.BaseTooltip = BaseTooltip;\\nexports.default = BaseTheme;\\n\\n//# sourceURL=webpack://Quill/./themes/base.js?\");\n\n/***/ }),\n\n/***/ \"./themes/bubble.js\":\n/*!**************************!*\\\n !*** ./themes/bubble.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nexports.default = exports.BubbleTooltip = undefined;\\n\\nvar _extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\n\\nvar _extend2 = _interopRequireDefault(_extend);\\n\\nvar _emitter = __webpack_require__(/*! ../core/emitter */ \\\"./core/emitter.js\\\");\\n\\nvar _emitter2 = _interopRequireDefault(_emitter);\\n\\nvar _base = __webpack_require__(/*! ./base */ \\\"./themes/base.js\\\");\\n\\nvar _base2 = _interopRequireDefault(_base);\\n\\nvar _selection = __webpack_require__(/*! ../core/selection */ \\\"./core/selection.js\\\");\\n\\nvar _icons = __webpack_require__(/*! ../ui/icons */ \\\"./ui/icons.js\\\");\\n\\nvar _icons2 = _interopRequireDefault(_icons);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\\n\\nclass BubbleTooltip extends _base.BaseTooltip {\\n constructor(quill, bounds) {\\n super(quill, bounds);\\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, (type, range, oldRange, source) => {\\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\\n this.show();\\n // Lock our width so we will expand beyond our offsetParent boundaries\\n this.root.style.left = '0px';\\n this.root.style.width = '';\\n this.root.style.width = `${this.root.offsetWidth}px`;\\n const lines = this.quill.getLines(range.index, range.length);\\n if (lines.length === 1) {\\n this.position(this.quill.getBounds(range));\\n } else {\\n const lastLine = lines[lines.length - 1];\\n const index = this.quill.getIndex(lastLine);\\n const length = Math.min(lastLine.length() - 1, range.index + range.length - index);\\n const indexBounds = this.quill.getBounds(new _selection.Range(index, length));\\n this.position(indexBounds);\\n }\\n } else if (document.activeElement !== this.textbox && this.quill.hasFocus()) {\\n this.hide();\\n }\\n });\\n }\\n\\n listen() {\\n super.listen();\\n this.root.querySelector('.ql-close').addEventListener('click', () => {\\n this.root.classList.remove('ql-editing');\\n });\\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, () => {\\n // Let selection be restored by toolbar handlers before repositioning\\n setTimeout(() => {\\n if (this.root.classList.contains('ql-hidden')) return;\\n const range = this.quill.getSelection();\\n if (range != null) {\\n this.position(this.quill.getBounds(range));\\n }\\n }, 1);\\n });\\n }\\n\\n cancel() {\\n this.show();\\n }\\n\\n position(reference) {\\n const shift = super.position(reference);\\n const arrow = this.root.querySelector('.ql-tooltip-arrow');\\n arrow.style.marginLeft = '';\\n if (shift !== 0) {\\n arrow.style.marginLeft = `${-1 * shift - arrow.offsetWidth / 2}px`;\\n }\\n return shift;\\n }\\n}\\nBubbleTooltip.TEMPLATE = ['', '
    ', '', '', '
    '].join('');\\n\\nclass BubbleTheme extends _base2.default {\\n constructor(quill, options) {\\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\\n options.modules.toolbar.container = TOOLBAR_CONFIG;\\n }\\n super(quill, options);\\n this.quill.container.classList.add('ql-bubble');\\n }\\n\\n extendToolbar(toolbar) {\\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\\n this.tooltip.root.appendChild(toolbar.container);\\n this.buildButtons(toolbar.container.querySelectorAll('button'), _icons2.default);\\n this.buildPickers(toolbar.container.querySelectorAll('select'), _icons2.default);\\n }\\n}\\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\\n modules: {\\n toolbar: {\\n handlers: {\\n link(value) {\\n if (!value) {\\n this.quill.format('link', false);\\n } else {\\n this.quill.theme.tooltip.edit();\\n }\\n }\\n }\\n }\\n }\\n});\\n\\nexports.BubbleTooltip = BubbleTooltip;\\nexports.default = BubbleTheme;\\n\\n//# sourceURL=webpack://Quill/./themes/bubble.js?\");\n\n/***/ }),\n\n/***/ \"./themes/snow.js\":\n/*!************************!*\\\n !*** ./themes/snow.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\\\"return\\\"]) _i[\\\"return\\\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance\\\"); } }; }();\\n\\nvar _extend = __webpack_require__(/*! extend */ \\\"./node_modules/extend/index.js\\\");\\n\\nvar _extend2 = _interopRequireDefault(_extend);\\n\\nvar _emitter = __webpack_require__(/*! ../core/emitter */ \\\"./core/emitter.js\\\");\\n\\nvar _emitter2 = _interopRequireDefault(_emitter);\\n\\nvar _base = __webpack_require__(/*! ./base */ \\\"./themes/base.js\\\");\\n\\nvar _base2 = _interopRequireDefault(_base);\\n\\nvar _link = __webpack_require__(/*! ../formats/link */ \\\"./formats/link.js\\\");\\n\\nvar _link2 = _interopRequireDefault(_link);\\n\\nvar _selection = __webpack_require__(/*! ../core/selection */ \\\"./core/selection.js\\\");\\n\\nvar _icons = __webpack_require__(/*! ../ui/icons */ \\\"./ui/icons.js\\\");\\n\\nvar _icons2 = _interopRequireDefault(_icons);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nconst TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\\n\\nclass SnowTooltip extends _base.BaseTooltip {\\n constructor(quill, bounds) {\\n super(quill, bounds);\\n this.preview = this.root.querySelector('a.ql-preview');\\n }\\n\\n listen() {\\n super.listen();\\n this.root.querySelector('a.ql-action').addEventListener('click', event => {\\n if (this.root.classList.contains('ql-editing')) {\\n this.save();\\n } else {\\n this.edit('link', this.preview.textContent);\\n }\\n event.preventDefault();\\n });\\n this.root.querySelector('a.ql-remove').addEventListener('click', event => {\\n if (this.linkRange != null) {\\n const range = this.linkRange;\\n this.restoreFocus();\\n this.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\\n delete this.linkRange;\\n }\\n event.preventDefault();\\n this.hide();\\n });\\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, (range, oldRange, source) => {\\n if (range == null) return;\\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\\n var _quill$scroll$descend = this.quill.scroll.descendant(_link2.default, range.index),\\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2);\\n\\n const link = _quill$scroll$descend2[0],\\n offset = _quill$scroll$descend2[1];\\n\\n if (link != null) {\\n this.linkRange = new _selection.Range(range.index - offset, link.length());\\n const preview = _link2.default.formats(link.domNode);\\n this.preview.textContent = preview;\\n this.preview.setAttribute('href', preview);\\n this.show();\\n this.position(this.quill.getBounds(this.linkRange));\\n return;\\n }\\n } else {\\n delete this.linkRange;\\n }\\n this.hide();\\n });\\n }\\n\\n show() {\\n super.show();\\n this.root.removeAttribute('data-mode');\\n }\\n}\\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\\n\\nclass SnowTheme extends _base2.default {\\n constructor(quill, options) {\\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\\n options.modules.toolbar.container = TOOLBAR_CONFIG;\\n }\\n super(quill, options);\\n this.quill.container.classList.add('ql-snow');\\n }\\n\\n extendToolbar(toolbar) {\\n toolbar.container.classList.add('ql-snow');\\n this.buildButtons(toolbar.container.querySelectorAll('button'), _icons2.default);\\n this.buildPickers(toolbar.container.querySelectorAll('select'), _icons2.default);\\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\\n if (toolbar.container.querySelector('.ql-link')) {\\n this.quill.keyboard.addBinding({ key: 'k', shortKey: true }, (range, context) => {\\n toolbar.handlers.link.call(toolbar, !context.format.link);\\n });\\n }\\n }\\n}\\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\\n modules: {\\n toolbar: {\\n handlers: {\\n link(value) {\\n if (value) {\\n const range = this.quill.getSelection();\\n if (range == null || range.length === 0) return;\\n let preview = this.quill.getText(range);\\n if (/^\\\\S+@\\\\S+\\\\.\\\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\\n preview = `mailto:${preview}`;\\n }\\n const tooltip = this.quill.theme.tooltip;\\n\\n tooltip.edit('link', preview);\\n } else {\\n this.quill.format('link', false);\\n }\\n }\\n }\\n }\\n }\\n});\\n\\nexports.default = SnowTheme;\\n\\n//# sourceURL=webpack://Quill/./themes/snow.js?\");\n\n/***/ }),\n\n/***/ \"./ui/color-picker.js\":\n/*!****************************!*\\\n !*** ./ui/color-picker.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _picker = __webpack_require__(/*! ./picker */ \\\"./ui/picker.js\\\");\\n\\nvar _picker2 = _interopRequireDefault(_picker);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass ColorPicker extends _picker2.default {\\n constructor(select, label) {\\n super(select);\\n this.label.innerHTML = label;\\n this.container.classList.add('ql-color-picker');\\n Array.from(this.container.querySelectorAll('.ql-picker-item')).slice(0, 7).forEach(item => {\\n item.classList.add('ql-primary');\\n });\\n }\\n\\n buildItem(option) {\\n const item = super.buildItem(option);\\n item.style.backgroundColor = option.getAttribute('value') || '';\\n return item;\\n }\\n\\n selectItem(item, trigger) {\\n super.selectItem(item, trigger);\\n const colorLabel = this.label.querySelector('.ql-color-label');\\n const value = item ? item.getAttribute('data-value') || '' : '';\\n if (colorLabel) {\\n if (colorLabel.tagName === 'line') {\\n colorLabel.style.stroke = value;\\n } else {\\n colorLabel.style.fill = value;\\n }\\n }\\n }\\n}\\n\\nexports.default = ColorPicker;\\n\\n//# sourceURL=webpack://Quill/./ui/color-picker.js?\");\n\n/***/ }),\n\n/***/ \"./ui/icon-picker.js\":\n/*!***************************!*\\\n !*** ./ui/icon-picker.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _picker = __webpack_require__(/*! ./picker */ \\\"./ui/picker.js\\\");\\n\\nvar _picker2 = _interopRequireDefault(_picker);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nclass IconPicker extends _picker2.default {\\n constructor(select, icons) {\\n super(select);\\n this.container.classList.add('ql-icon-picker');\\n Array.from(this.container.querySelectorAll('.ql-picker-item')).forEach(item => {\\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\\n });\\n this.defaultItem = this.container.querySelector('.ql-selected');\\n this.selectItem(this.defaultItem);\\n }\\n\\n selectItem(target, trigger) {\\n super.selectItem(target, trigger);\\n const item = target || this.defaultItem;\\n this.label.innerHTML = item.innerHTML;\\n }\\n}\\n\\nexports.default = IconPicker;\\n\\n//# sourceURL=webpack://Quill/./ui/icon-picker.js?\");\n\n/***/ }),\n\n/***/ \"./ui/icons.js\":\n/*!*********************!*\\\n !*** ./ui/icons.js ***!\n \\*********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nvar _alignLeft = __webpack_require__(/*! ../assets/icons/align-left.svg */ \\\"./assets/icons/align-left.svg\\\");\\n\\nvar _alignLeft2 = _interopRequireDefault(_alignLeft);\\n\\nvar _alignCenter = __webpack_require__(/*! ../assets/icons/align-center.svg */ \\\"./assets/icons/align-center.svg\\\");\\n\\nvar _alignCenter2 = _interopRequireDefault(_alignCenter);\\n\\nvar _alignRight = __webpack_require__(/*! ../assets/icons/align-right.svg */ \\\"./assets/icons/align-right.svg\\\");\\n\\nvar _alignRight2 = _interopRequireDefault(_alignRight);\\n\\nvar _alignJustify = __webpack_require__(/*! ../assets/icons/align-justify.svg */ \\\"./assets/icons/align-justify.svg\\\");\\n\\nvar _alignJustify2 = _interopRequireDefault(_alignJustify);\\n\\nvar _background = __webpack_require__(/*! ../assets/icons/background.svg */ \\\"./assets/icons/background.svg\\\");\\n\\nvar _background2 = _interopRequireDefault(_background);\\n\\nvar _blockquote = __webpack_require__(/*! ../assets/icons/blockquote.svg */ \\\"./assets/icons/blockquote.svg\\\");\\n\\nvar _blockquote2 = _interopRequireDefault(_blockquote);\\n\\nvar _bold = __webpack_require__(/*! ../assets/icons/bold.svg */ \\\"./assets/icons/bold.svg\\\");\\n\\nvar _bold2 = _interopRequireDefault(_bold);\\n\\nvar _clean = __webpack_require__(/*! ../assets/icons/clean.svg */ \\\"./assets/icons/clean.svg\\\");\\n\\nvar _clean2 = _interopRequireDefault(_clean);\\n\\nvar _code = __webpack_require__(/*! ../assets/icons/code.svg */ \\\"./assets/icons/code.svg\\\");\\n\\nvar _code2 = _interopRequireDefault(_code);\\n\\nvar _color = __webpack_require__(/*! ../assets/icons/color.svg */ \\\"./assets/icons/color.svg\\\");\\n\\nvar _color2 = _interopRequireDefault(_color);\\n\\nvar _directionLtr = __webpack_require__(/*! ../assets/icons/direction-ltr.svg */ \\\"./assets/icons/direction-ltr.svg\\\");\\n\\nvar _directionLtr2 = _interopRequireDefault(_directionLtr);\\n\\nvar _directionRtl = __webpack_require__(/*! ../assets/icons/direction-rtl.svg */ \\\"./assets/icons/direction-rtl.svg\\\");\\n\\nvar _directionRtl2 = _interopRequireDefault(_directionRtl);\\n\\nvar _formula = __webpack_require__(/*! ../assets/icons/formula.svg */ \\\"./assets/icons/formula.svg\\\");\\n\\nvar _formula2 = _interopRequireDefault(_formula);\\n\\nvar _header = __webpack_require__(/*! ../assets/icons/header.svg */ \\\"./assets/icons/header.svg\\\");\\n\\nvar _header2 = _interopRequireDefault(_header);\\n\\nvar _header3 = __webpack_require__(/*! ../assets/icons/header-2.svg */ \\\"./assets/icons/header-2.svg\\\");\\n\\nvar _header4 = _interopRequireDefault(_header3);\\n\\nvar _italic = __webpack_require__(/*! ../assets/icons/italic.svg */ \\\"./assets/icons/italic.svg\\\");\\n\\nvar _italic2 = _interopRequireDefault(_italic);\\n\\nvar _image = __webpack_require__(/*! ../assets/icons/image.svg */ \\\"./assets/icons/image.svg\\\");\\n\\nvar _image2 = _interopRequireDefault(_image);\\n\\nvar _indent = __webpack_require__(/*! ../assets/icons/indent.svg */ \\\"./assets/icons/indent.svg\\\");\\n\\nvar _indent2 = _interopRequireDefault(_indent);\\n\\nvar _outdent = __webpack_require__(/*! ../assets/icons/outdent.svg */ \\\"./assets/icons/outdent.svg\\\");\\n\\nvar _outdent2 = _interopRequireDefault(_outdent);\\n\\nvar _link = __webpack_require__(/*! ../assets/icons/link.svg */ \\\"./assets/icons/link.svg\\\");\\n\\nvar _link2 = _interopRequireDefault(_link);\\n\\nvar _listBullet = __webpack_require__(/*! ../assets/icons/list-bullet.svg */ \\\"./assets/icons/list-bullet.svg\\\");\\n\\nvar _listBullet2 = _interopRequireDefault(_listBullet);\\n\\nvar _listCheck = __webpack_require__(/*! ../assets/icons/list-check.svg */ \\\"./assets/icons/list-check.svg\\\");\\n\\nvar _listCheck2 = _interopRequireDefault(_listCheck);\\n\\nvar _listOrdered = __webpack_require__(/*! ../assets/icons/list-ordered.svg */ \\\"./assets/icons/list-ordered.svg\\\");\\n\\nvar _listOrdered2 = _interopRequireDefault(_listOrdered);\\n\\nvar _subscript = __webpack_require__(/*! ../assets/icons/subscript.svg */ \\\"./assets/icons/subscript.svg\\\");\\n\\nvar _subscript2 = _interopRequireDefault(_subscript);\\n\\nvar _superscript = __webpack_require__(/*! ../assets/icons/superscript.svg */ \\\"./assets/icons/superscript.svg\\\");\\n\\nvar _superscript2 = _interopRequireDefault(_superscript);\\n\\nvar _strike = __webpack_require__(/*! ../assets/icons/strike.svg */ \\\"./assets/icons/strike.svg\\\");\\n\\nvar _strike2 = _interopRequireDefault(_strike);\\n\\nvar _table = __webpack_require__(/*! ../assets/icons/table.svg */ \\\"./assets/icons/table.svg\\\");\\n\\nvar _table2 = _interopRequireDefault(_table);\\n\\nvar _underline = __webpack_require__(/*! ../assets/icons/underline.svg */ \\\"./assets/icons/underline.svg\\\");\\n\\nvar _underline2 = _interopRequireDefault(_underline);\\n\\nvar _video = __webpack_require__(/*! ../assets/icons/video.svg */ \\\"./assets/icons/video.svg\\\");\\n\\nvar _video2 = _interopRequireDefault(_video);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nmodule.exports = {\\n align: {\\n '': _alignLeft2.default,\\n center: _alignCenter2.default,\\n right: _alignRight2.default,\\n justify: _alignJustify2.default\\n },\\n background: _background2.default,\\n blockquote: _blockquote2.default,\\n bold: _bold2.default,\\n clean: _clean2.default,\\n code: _code2.default,\\n 'code-block': _code2.default,\\n color: _color2.default,\\n direction: {\\n '': _directionLtr2.default,\\n rtl: _directionRtl2.default\\n },\\n formula: _formula2.default,\\n header: {\\n '1': _header2.default,\\n '2': _header4.default\\n },\\n italic: _italic2.default,\\n image: _image2.default,\\n indent: {\\n '+1': _indent2.default,\\n '-1': _outdent2.default\\n },\\n link: _link2.default,\\n list: {\\n bullet: _listBullet2.default,\\n check: _listCheck2.default,\\n ordered: _listOrdered2.default\\n },\\n script: {\\n sub: _subscript2.default,\\n super: _superscript2.default\\n },\\n strike: _strike2.default,\\n table: _table2.default,\\n underline: _underline2.default,\\n video: _video2.default\\n};\\n\\n//# sourceURL=webpack://Quill/./ui/icons.js?\");\n\n/***/ }),\n\n/***/ \"./ui/picker.js\":\n/*!**********************!*\\\n !*** ./ui/picker.js ***!\n \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\n\\nvar _dropdown = __webpack_require__(/*! ../assets/icons/dropdown.svg */ \\\"./assets/icons/dropdown.svg\\\");\\n\\nvar _dropdown2 = _interopRequireDefault(_dropdown);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\nlet optionsCounter = 0;\\n\\nfunction toggleAriaAttribute(element, attribute) {\\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\\n}\\n\\nclass Picker {\\n constructor(select) {\\n this.select = select;\\n this.container = document.createElement('span');\\n this.buildPicker();\\n this.select.style.display = 'none';\\n this.select.parentNode.insertBefore(this.container, this.select);\\n\\n this.label.addEventListener('mousedown', () => {\\n this.togglePicker();\\n });\\n this.label.addEventListener('keydown', event => {\\n switch (event.key) {\\n case 'Enter':\\n this.togglePicker();\\n break;\\n case 'Escape':\\n this.escape();\\n event.preventDefault();\\n break;\\n default:\\n }\\n });\\n this.select.addEventListener('change', this.update.bind(this));\\n }\\n\\n togglePicker() {\\n this.container.classList.toggle('ql-expanded');\\n // Toggle aria-expanded and aria-hidden to make the picker accessible\\n toggleAriaAttribute(this.label, 'aria-expanded');\\n toggleAriaAttribute(this.options, 'aria-hidden');\\n }\\n\\n buildItem(option) {\\n const item = document.createElement('span');\\n item.tabIndex = '0';\\n item.setAttribute('role', 'button');\\n item.classList.add('ql-picker-item');\\n if (option.hasAttribute('value')) {\\n item.setAttribute('data-value', option.getAttribute('value'));\\n }\\n if (option.textContent) {\\n item.setAttribute('data-label', option.textContent);\\n }\\n item.addEventListener('click', () => {\\n this.selectItem(item, true);\\n });\\n item.addEventListener('keydown', event => {\\n switch (event.key) {\\n case 'Enter':\\n this.selectItem(item, true);\\n event.preventDefault();\\n break;\\n case 'Escape':\\n this.escape();\\n event.preventDefault();\\n break;\\n default:\\n }\\n });\\n\\n return item;\\n }\\n\\n buildLabel() {\\n const label = document.createElement('span');\\n label.classList.add('ql-picker-label');\\n label.innerHTML = _dropdown2.default;\\n label.tabIndex = '0';\\n label.setAttribute('role', 'button');\\n label.setAttribute('aria-expanded', 'false');\\n this.container.appendChild(label);\\n return label;\\n }\\n\\n buildOptions() {\\n const options = document.createElement('span');\\n options.classList.add('ql-picker-options');\\n\\n // Don't want screen readers to read this until options are visible\\n options.setAttribute('aria-hidden', 'true');\\n options.tabIndex = '-1';\\n\\n // Need a unique id for aria-controls\\n options.id = `ql-picker-options-${optionsCounter}`;\\n optionsCounter += 1;\\n this.label.setAttribute('aria-controls', options.id);\\n\\n this.options = options;\\n\\n Array.from(this.select.options).forEach(option => {\\n const item = this.buildItem(option);\\n options.appendChild(item);\\n if (option.selected === true) {\\n this.selectItem(item);\\n }\\n });\\n this.container.appendChild(options);\\n }\\n\\n buildPicker() {\\n Array.from(this.select.attributes).forEach(item => {\\n this.container.setAttribute(item.name, item.value);\\n });\\n this.container.classList.add('ql-picker');\\n this.label = this.buildLabel();\\n this.buildOptions();\\n }\\n\\n escape() {\\n // Close menu and return focus to trigger label\\n this.close();\\n // Need setTimeout for accessibility to ensure that the browser executes\\n // focus on the next process thread and after any DOM content changes\\n setTimeout(() => this.label.focus(), 1);\\n }\\n\\n close() {\\n this.container.classList.remove('ql-expanded');\\n this.label.setAttribute('aria-expanded', 'false');\\n this.options.setAttribute('aria-hidden', 'true');\\n }\\n\\n selectItem(item, trigger = false) {\\n const selected = this.container.querySelector('.ql-selected');\\n if (item === selected) return;\\n if (selected != null) {\\n selected.classList.remove('ql-selected');\\n }\\n if (item == null) return;\\n item.classList.add('ql-selected');\\n this.select.selectedIndex = Array.from(item.parentNode.children).indexOf(item);\\n if (item.hasAttribute('data-value')) {\\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\\n } else {\\n this.label.removeAttribute('data-value');\\n }\\n if (item.hasAttribute('data-label')) {\\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\\n } else {\\n this.label.removeAttribute('data-label');\\n }\\n if (trigger) {\\n this.select.dispatchEvent(new Event('change'));\\n this.close();\\n }\\n }\\n\\n update() {\\n let option;\\n if (this.select.selectedIndex > -1) {\\n const item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\\n option = this.select.options[this.select.selectedIndex];\\n this.selectItem(item);\\n } else {\\n this.selectItem(null);\\n }\\n const isActive = option != null && option !== this.select.querySelector('option[selected]');\\n this.label.classList.toggle('ql-active', isActive);\\n }\\n}\\n\\nexports.default = Picker;\\n\\n//# sourceURL=webpack://Quill/./ui/picker.js?\");\n\n/***/ }),\n\n/***/ \"./ui/tooltip.js\":\n/*!***********************!*\\\n !*** ./ui/tooltip.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\neval(\"\\n\\nObject.defineProperty(exports, \\\"__esModule\\\", {\\n value: true\\n});\\nclass Tooltip {\\n constructor(quill, boundsContainer) {\\n this.quill = quill;\\n this.boundsContainer = boundsContainer || document.body;\\n this.root = quill.addContainer('ql-tooltip');\\n this.root.innerHTML = this.constructor.TEMPLATE;\\n if (this.quill.root === this.quill.scrollingContainer) {\\n this.quill.root.addEventListener('scroll', () => {\\n this.root.style.marginTop = `${-1 * this.quill.root.scrollTop}px`;\\n });\\n }\\n this.hide();\\n }\\n\\n hide() {\\n this.root.classList.add('ql-hidden');\\n }\\n\\n position(reference) {\\n const left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\\n // root.scrollTop should be 0 if scrollContainer !== root\\n const top = reference.bottom + this.quill.root.scrollTop;\\n this.root.style.left = `${left}px`;\\n this.root.style.top = `${top}px`;\\n this.root.classList.remove('ql-flip');\\n const containerBounds = this.boundsContainer.getBoundingClientRect();\\n const rootBounds = this.root.getBoundingClientRect();\\n let shift = 0;\\n if (rootBounds.right > containerBounds.right) {\\n shift = containerBounds.right - rootBounds.right;\\n this.root.style.left = `${left + shift}px`;\\n }\\n if (rootBounds.left < containerBounds.left) {\\n shift = containerBounds.left - rootBounds.left;\\n this.root.style.left = `${left + shift}px`;\\n }\\n if (rootBounds.bottom > containerBounds.bottom) {\\n const height = rootBounds.bottom - rootBounds.top;\\n const verticalShift = reference.bottom - reference.top + height;\\n this.root.style.top = `${top - verticalShift}px`;\\n this.root.classList.add('ql-flip');\\n }\\n return shift;\\n }\\n\\n show() {\\n this.root.classList.remove('ql-editing');\\n this.root.classList.remove('ql-hidden');\\n }\\n}\\n\\nexports.default = Tooltip;\\n\\n//# sourceURL=webpack://Quill/./ui/tooltip.js?\");\n\n/***/ }),\n\n/***/ 0:\n/*!************************!*\\\n !*** multi ./quill.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\neval(\"module.exports = __webpack_require__(/*! ./quill.js */\\\"./quill.js\\\");\\n\\n\\n//# sourceURL=webpack://Quill/multi_./quill.js?\");\n\n/***/ })\n\n/******/ })[\"default\"];\n});","import Quill from 'quill';\n\n// specify the fonts you want\nconst fonts = ['Arial', 'Courier', 'Times New Roman', 'Verdana'];\n// generate code friendly names\nfunction get_font_name(font) {\n\treturn font.toLowerCase().replace(/\\s/g, \"-\");\n}\nlet font_names = fonts.map(font => get_font_name(font));\n// add fonts to style\nlet font_styles = \"\";\nfonts.forEach(function(font) {\n\tlet font_name = get_font_name(font);\n\tfont_styles += `\n\t\t.ql-snow .ql-picker.ql-font\n\t\t.ql-picker-label[data-value=${font_name}]::before,\n\t\t.ql-snow .ql-picker.ql-font\n\t\t.ql-picker-item[data-value=${font_name}]::before {\n\t\t\t\tcontent: '${font}';\n\t\t\t\tfont-family: ${font}, sans-serif;\n\t\t}\n\t\t.ql-font-${font_name} {\n\t\t\tfont-family: ${font}, sans-serif;\n\t\t}\n\t`;\n});\nconst node = document.createElement('style');\nnode.innerHTML = font_styles;\ndocument.body.appendChild(node);\n\n\n// replace

    tag with

    \nconst Block = Quill.import('blots/block');\nBlock.tagName = 'DIV';\nQuill.register(Block, true);\n\nconst CodeBlockContainer = Quill.import('formats/code-block-container');\nCodeBlockContainer.tagName = 'PRE';\nQuill.register(CodeBlockContainer, true);\n\n// table\nconst Table = Quill.import('formats/table-container');\nconst superCreate = Table.create.bind(Table);\nTable.create = (value) => {\n\tconst node = superCreate(value);\n\tnode.classList.add('table');\n\tnode.classList.add('table-bordered');\n\treturn node;\n}\nQuill.register(Table, true);\n\n// link without href\nvar Link = Quill.import('formats/link');\n\nclass MyLink extends Link {\n\tstatic create(value) {\n\t\tlet node = super.create(value);\n\t\tvalue = this.sanitize(value);\n\t\tnode.setAttribute('href', value);\n\t\tif(value.startsWith('/') || value.indexOf(window.location.host)) {\n\t\t\t// no href if internal link\n\t\t\tnode.removeAttribute('target');\n\t\t}\n\t\treturn node;\n\t}\n}\n\nQuill.register(MyLink, true);\n\n// image uploader\nconst Uploader = Quill.import('modules/uploader');\nUploader.DEFAULTS.mimetypes.push('image/gif');\n\n// inline style\nconst BackgroundStyle = Quill.import('attributors/style/background');\nconst ColorStyle = Quill.import('attributors/style/color');\nconst FontStyle = Quill.import('attributors/style/font');\nconst AlignStyle = Quill.import('attributors/style/align');\nconst DirectionStyle = Quill.import('attributors/style/direction');\nQuill.register(BackgroundStyle, true);\nQuill.register(ColorStyle, true);\nQuill.register(FontStyle, true);\nQuill.register(AlignStyle, true);\nQuill.register(DirectionStyle, true);\n\n//Adding fonts in text editor\nconst Font = Quill.import('attributors/class/font');\nFont.whitelist = font_names;\nQuill.register(Font, true);\n\nfrappe.ui.form.ControlTextEditor = frappe.ui.form.ControlCode.extend({\n\tmake_wrapper() {\n\t\tthis._super();\n\t\tthis.$wrapper.find(\".like-disabled-input\").addClass('text-editor-print');\n\t},\n\n\tmake_input() {\n\t\tthis.has_input = true;\n\t\tthis.make_quill_editor();\n\t},\n\n\tmake_quill_editor() {\n\t\tif (this.quill) return;\n\t\tthis.quill_container = $('
    ').appendTo(this.input_area);\n\t\tthis.quill = new Quill(this.quill_container[0], this.get_quill_options());\n\t\tthis.bind_events();\n\t},\n\n\tbind_events() {\n\t\tthis.quill.on('text-change', frappe.utils.debounce((delta, oldDelta, source) => {\n\t\t\tif (!this.is_quill_dirty(source)) return;\n\n\t\t\tconst input_value = this.get_input_value();\n\t\t\tthis.parse_validate_and_set_in_model(input_value);\n\t\t}, 300));\n\n\t\t$(this.quill.root).on('keydown', (e) => {\n\t\t\tconst key = frappe.ui.keys.get_key(e);\n\t\t\tif (['ctrl+b', 'meta+b'].includes(key)) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t});\n\n\t\t$(this.quill.root).on('drop', (e) => {\n\t\t\te.stopPropagation();\n\t\t});\n\n\t\t// table commands\n\t\tthis.$wrapper.on('click', '.ql-table .ql-picker-item', (e) => {\n\t\t\tconst $target = $(e.currentTarget);\n\t\t\tconst action = $target.data().value;\n\t\t\te.preventDefault();\n\n\t\t\tconst table = this.quill.getModule('table');\n\t\t\tif (action === 'insert-table') {\n\t\t\t\ttable.insertTable(2, 2);\n\t\t\t} else if (action === 'insert-row-above') {\n\t\t\t\ttable.insertRowAbove();\n\t\t\t} else if (action === 'insert-row-below') {\n\t\t\t\ttable.insertRowBelow();\n\t\t\t} else if (action === 'insert-column-left') {\n\t\t\t\ttable.insertColumnLeft();\n\t\t\t} else if (action === 'insert-column-right') {\n\t\t\t\ttable.insertColumnRight();\n\t\t\t} else if (action === 'delete-row') {\n\t\t\t\ttable.deleteRow();\n\t\t\t} else if (action === 'delete-column') {\n\t\t\t\ttable.deleteColumn();\n\t\t\t} else if (action === 'delete-table') {\n\t\t\t\ttable.deleteTable();\n\t\t\t}\n\n\t\t\tif (action !== 'delete-row') {\n\t\t\t\ttable.balanceTables();\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t});\n\t},\n\n\tis_quill_dirty(source) {\n\t\tif (source === 'api') return false;\n\t\tlet input_value = this.get_input_value();\n\t\treturn this.value !== input_value;\n\t},\n\n\tget_quill_options() {\n\t\treturn {\n\t\t\tmodules: {\n\t\t\t\ttoolbar: this.get_toolbar_options(),\n\t\t\t\ttable: true\n\t\t\t},\n\t\t\ttheme: 'snow'\n\t\t};\n\t},\n\n\tget_toolbar_options() {\n\t\treturn [\n\t\t\t[{ 'header': [1, 2, 3, false] }],\n\t\t\t// Adding Font dropdown to give the user the ability to change text font.\n\t\t\t[{ 'font': font_names }],\n\t\t\t['bold', 'italic', 'underline'],\n\t\t\t[{ 'color': [] }, { 'background': [] }],\n\t\t\t['blockquote', 'code-block'],\n\t\t\t['link', 'image'],\n\t\t\t// Adding Direction tool to give the user the ability to change text direction.\n\t\t\t[{ 'direction': \"rtl\" }],\n\t\t\t[{ 'list': 'ordered' }, { 'list': 'bullet' }, { 'list': 'check' }],\n\t\t\t[{ 'align': [] }],\n\t\t\t[{ 'indent': '-1'}, { 'indent': '+1' }],\n\t\t\t[{'table': [\n\t\t\t\t'insert-table',\n\t\t\t\t'insert-row-above',\n\t\t\t\t'insert-row-below',\n\t\t\t\t'insert-column-right',\n\t\t\t\t'insert-column-left',\n\t\t\t\t'delete-row',\n\t\t\t\t'delete-column',\n\t\t\t\t'delete-table',\n\t\t\t]}],\n\t\t\t['clean']\n\t\t];\n\t},\n\n\tparse(value) {\n\t\tif (value == null) {\n\t\t\tvalue = \"\";\n\t\t}\n\t\treturn frappe.dom.remove_script_and_style(value);\n\t},\n\n\tset_formatted_input(value) {\n\t\tif (!this.quill) return;\n\t\tif (value === this.get_input_value()) return;\n\t\tif (!value) {\n\t\t\t// clear contents for falsy values like '', undefined or null\n\t\t\tthis.quill.setText('');\n\t\t\treturn;\n\t\t}\n\n\t\t// set html without triggering a focus\n\t\tconst delta = this.quill.clipboard.convert({ html: value, text: '' });\n\t\tthis.quill.setContents(delta);\n\t},\n\n\tget_input_value() {\n\t\tlet value = this.quill ? this.quill.root.innerHTML : '';\n\t\t// quill keeps ol as a common container for both type of lists\n\t\t// and uses css for appearances, this is not semantic\n\t\t// so we convert ol to ul if it is unordered\n\t\tconst $value = $(`
    ${value}
    `);\n\t\t$value.find('ol li[data-list=bullet]:first-child').each((i, li) => {\n\t\t\tlet $li = $(li);\n\t\t\tlet $parent = $li.parent();\n\t\t\tlet $children = $parent.children();\n\t\t\tlet $ul = $('
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    `;\n\n\t\t\t$(template).appendTo(this.wrapper);\n\t\t\tthis.form_area = this.wrapper.find(\".form-area\");\n\t\t\tthis.row.set_row_index();\n\t\t\tthis.set_form_events();\n\t\t}\n\t}\n\tset_form_events() {\n\t\tvar me = this;\n\t\tthis.wrapper.find(\".grid-delete-row\")\n\t\t\t.on('click', function() {\n\t\t\t\tme.row.remove(); return false;\n\t\t\t});\n\t\tthis.wrapper.find(\".grid-insert-row\")\n\t\t\t.on('click', function() {\n\t\t\t\tme.row.insert(true); return false;\n\t\t\t});\n\t\tthis.wrapper.find(\".grid-insert-row-below\")\n\t\t\t.on('click', function() {\n\t\t\t\tme.row.insert(true, true); return false;\n\t\t\t});\n\t\tthis.wrapper.find(\".grid-duplicate-row\")\n\t\t\t.on('click', function() {\n\t\t\t\tme.row.insert(true, true, true); return false;\n\t\t\t});\n\t\tthis.wrapper.find(\".grid-move-row\")\n\t\t\t.on('click', function() {\n\t\t\t\tme.row.move(); return false;\n\t\t\t});\n\t\tthis.wrapper.find(\".grid-append-row\")\n\t\t\t.on('click', function() {\n\t\t\t\tme.row.toggle_view(false);\n\t\t\t\tme.row.grid.add_new_row(me.row.doc.idx+1, null, true);\n\t\t\t\treturn false;\n\t\t\t});\n\t\tthis.wrapper.find(\".grid-form-heading, .grid-footer-toolbar\").on(\"click\", function() {\n\t\t\tme.row.toggle_view();\n\t\t\treturn false;\n\t\t});\n\t}\n\ttoggle_add_delete_button_display($parent) {\n\t\t$parent.find(\".row-actions\")\n\t\t\t.toggle(this.row.grid.is_editable());\n\t}\n\trefresh_field(fieldname) {\n\t\tif(this.fields_dict[fieldname]) {\n\t\t\tthis.fields_dict[fieldname].refresh();\n\t\t\tthis.layout && this.layout.refresh_dependency();\n\t\t}\n\t}\n\tset_focus() {\n\t\t// wait for animation and then focus on the first row\n\t\tvar me = this;\n\t\tsetTimeout(function() {\n\t\t\tif(me.row.frm && me.row.frm.doc.docstatus===0 || !me.row.frm) {\n\t\t\t\tvar first = me.form_area.find(\"input:first\");\n\t\t\t\tif(first.length && !in_list([\"Date\", \"Datetime\", \"Time\"], first.attr(\"data-fieldtype\"))) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfirst.get(0).focus();\n\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t//\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 500);\n\t}\n}\n","import GridRowForm from './grid_row_form';\n\nexport default class GridRow {\n\tconstructor(opts) {\n\t\tthis.on_grid_fields_dict = {};\n\t\tthis.on_grid_fields = [];\n\t\tthis.columns = {};\n\t\tthis.columns_list = [];\n\t\t$.extend(this, opts);\n\t\tthis.row_check_html = '';\n\t\tthis.make();\n\t}\n\tmake() {\n\t\tvar me = this;\n\n\t\tthis.wrapper = $('
    ').appendTo(this.parent).data(\"grid_row\", this);\n\t\tthis.row = $('
    ').appendTo(this.wrapper)\n\t\t\t.on(\"click\", function(e) {\n\t\t\t\tif($(e.target).hasClass('grid-row-check') || $(e.target).hasClass('row-index') || $(e.target).parent().hasClass('row-index')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif(me.grid.allow_on_grid_editing() && me.grid.is_editable()) {\n\t\t\t\t\t// pass\n\t\t\t\t} else {\n\t\t\t\t\tme.toggle_view();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\tif(this.grid.template && !this.grid.meta.editable_grid) {\n\t\t\tthis.render_template();\n\t\t} else {\n\t\t\tthis.render_row();\n\t\t}\n\t\tif(this.doc) {\n\t\t\tthis.set_data();\n\t\t}\n\t}\n\tset_data() {\n\t\tthis.wrapper.data({\n\t\t\t\"doc\": this.doc\n\t\t})\n\t}\n\tset_row_index() {\n\t\tif(this.doc) {\n\t\t\tthis.wrapper\n\t\t\t\t.attr('data-name', this.doc.name)\n\t\t\t\t.attr(\"data-idx\", this.doc.idx)\n\t\t\t\t.find(\".row-index span, .grid-form-row-index\").html(this.doc.idx)\n\n\t\t}\n\t}\n\tselect(checked) {\n\t\tthis.doc.__checked = checked ? 1 : 0;\n\t}\n\trefresh_check() {\n\t\tthis.wrapper.find('.grid-row-check').prop('checked', this.doc ? !!this.doc.__checked : false);\n\t\tthis.grid.refresh_remove_rows_button();\n\t}\n\tremove() {\n\t\tvar me = this;\n\t\tif(this.grid.is_editable()) {\n\t\t\tif(this.frm) {\n\t\t\t\tif(this.get_open_form()) {\n\t\t\t\t\tthis.hide_form();\n\t\t\t\t}\n\n\t\t\t\tfrappe.run_serially([\n\t\t\t\t\t() => {\n\t\t\t\t\t\treturn this.frm.script_manager.trigger(\"before_\" + this.grid.df.fieldname + \"_remove\",\n\t\t\t\t\t\t\tthis.doc.doctype, this.doc.name);\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tfrappe.model.clear_doc(this.doc.doctype, this.doc.name);\n\n\t\t\t\t\t\tthis.frm.script_manager.trigger(this.grid.df.fieldname + \"_remove\",\n\t\t\t\t\t\t\tthis.doc.doctype, this.doc.name);\n\t\t\t\t\t\tthis.frm.dirty();\n\t\t\t\t\t\tthis.grid.refresh();\n\t\t\t\t\t},\n\t\t\t\t]).catch((e) => {\n\t\t\t\t\t// aborted\n\t\t\t\t\tconsole.trace(e); // eslint-disable-line\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlet data = null;\n\t\t\t\tif (this.grid.df.get_data) {\n\t\t\t\t\tdata = this.grid.df.get_data();\n\t\t\t\t} else {\n\t\t\t\t\tdata = this.grid.df.data;\n\t\t\t\t}\n\n\t\t\t\tconst index = data.findIndex(d => d.name === me.doc.name);\n\n\t\t\t\tif (index > -1) {\n\t\t\t\t\t// mutate array directly,\n\t\t\t\t\t// else the object reference will be lost\n\t\t\t\t\tdata.splice(index, 1);\n\t\t\t\t}\n\t\t\t\t// remap idxs\n\t\t\t\tdata.forEach(function(d, i) {\n\t\t\t\t\td.idx = i+1;\n\t\t\t\t});\n\n\t\t\t\tthis.grid.refresh();\n\t\t\t}\n\t\t}\n\t}\n\tinsert(show, below, duplicate) {\n\t\tvar idx = this.doc.idx;\n\t\tvar copy_doc = duplicate ? this.doc : null;\n\t\tif(below) idx ++;\n\t\tthis.toggle_view(false);\n\t\tthis.grid.add_new_row(idx, null, show, copy_doc);\n\t}\n\tmove() {\n\t\t// promopt the user where they want to move this row\n\t\tvar me = this;\n\t\tfrappe.prompt({\n\t\t\tfieldname: 'move_to',\n\t\t\tlabel: __('Move to Row Number'),\n\t\t\tfieldtype: 'Int',\n\t\t\treqd: 1,\n\t\t\tdefault: this.doc.idx,\n\t\t}, function(values) {\n\t\t\tif (me.doc._sortable === false) {\n\t\t\t\tfrappe.msgprint(__('Cannot move row'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// renumber and refresh\n\t\t\tlet data = me.grid.get_data();\n\t\t\tdata.move(me.doc.idx - 1, values.move_to - 1);\n\n\t\t\t// renum idx\n\t\t\tfor(let i=0; i'+this.row_check_html+' ').appendTo(this.row);\n\t\t\t}\n\t\t\tthis.row_index.find('span').html(this.doc.idx);\n\t\t}\n\n\t\tthis.row_display = $('
    '+\n\t\t\t+'
    ').appendTo(this.row)\n\t\t\t.html(frappe.render(this.grid.template, {\n\t\t\t\tdoc: this.doc ? frappe.get_format_helper(this.doc) : null,\n\t\t\t\tfrm: this.frm,\n\t\t\t\trow: this\n\t\t\t}));\n\t}\n\trender_row(refresh) {\n\t\tvar me = this;\n\t\tthis.set_row_index();\n\n\t\t// index (1, 2, 3 etc)\n\t\tif(!this.row_index) {\n\t\t\tvar txt = (this.doc ? this.doc.idx : \" \");\n\t\t\tthis.row_index = $(\n\t\t\t\t`
    \n\t\t\t\t\t${this.row_check_html}\n\t\t\t\t${txt}
    `)\n\t\t\t\t.appendTo(this.row)\n\t\t\t\t.on('click', function(e) {\n\t\t\t\t\tif(!$(e.target).hasClass('grid-row-check')) {\n\t\t\t\t\t\tme.toggle_view();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t} else {\n\t\t\tthis.row_index.find('span').html(txt);\n\t\t}\n\n\t\tthis.setup_columns();\n\t\tthis.add_open_form_button();\n\t\tthis.refresh_check();\n\n\t\tif(this.frm && this.doc) {\n\t\t\t$(this.frm.wrapper).trigger(\"grid-row-render\", [this]);\n\t\t}\n\t}\n\n\tmake_editable() {\n\t\tthis.row.toggleClass('editable-row', this.grid.is_editable());\n\t}\n\n\tis_too_small() {\n\t\treturn this.row.width() ? this.row.width() < 300 : false;\n\t}\n\n\tadd_open_form_button() {\n\t\tvar me = this;\n\t\tif(this.doc && !this.grid.df.in_place_edit) {\n\t\t\t// remove row\n\t\t\tif(!this.open_form_button) {\n\t\t\t\tthis.open_form_button = $('\\\n\t\t\t\t\t')\n\t\t\t\t\t.appendTo($('
    ').appendTo(this.row))\n\t\t\t\t\t.on('click', function() { me.toggle_view(); return false; });\n\n\t\t\t\tif(this.is_too_small()) {\n\t\t\t\t\t// narrow\n\t\t\t\t\tthis.open_form_button.css({'margin-right': '-2px'});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsetup_columns() {\n\t\tthis.focus_set = false;\n\t\tthis.grid.setup_visible_columns();\n\n\t\tfor(var ci in this.grid.visible_columns) {\n\t\t\tvar df = this.grid.visible_columns[ci][0],\n\t\t\t\tcolsize = this.grid.visible_columns[ci][1],\n\t\t\t\ttxt = this.doc ?\n\t\t\t\t\tfrappe.format(this.doc[df.fieldname], df, null, this.doc) :\n\t\t\t\t\t__(df.label);\n\n\t\t\tif(this.doc && df.fieldtype === \"Select\") {\n\t\t\t\ttxt = __(txt);\n\t\t\t}\n\n\t\t\tif(!this.columns[df.fieldname]) {\n\t\t\t\tvar column = this.make_column(df, colsize, txt, ci);\n\t\t\t} else {\n\t\t\t\tvar column = this.columns[df.fieldname];\n\t\t\t\tthis.refresh_field(df.fieldname, txt);\n\t\t\t}\n\n\t\t\t// background color for cellz\n\t\t\tif(this.doc) {\n\t\t\t\tif(df.reqd && !txt) {\n\t\t\t\t\tcolumn.addClass('error');\n\t\t\t\t}\n\t\t\t\tif (df.reqd || df.bold) {\n\t\t\t\t\tcolumn.addClass('bold');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tmake_column(df, colsize, txt, ci) {\n\t\tlet me = this;\n\t\tvar add_class = (([\"Text\", \"Small Text\"].indexOf(df.fieldtype)!==-1) ?\n\t\t\t\" grid-overflow-no-ellipsis\" : \"\");\n\t\tadd_class += ([\"Int\", \"Currency\", \"Float\", \"Percent\"].indexOf(df.fieldtype)!==-1) ?\n\t\t\t\" text-right\": \"\";\n\t\tadd_class += ([\"Check\"].indexOf(df.fieldtype)!==-1) ?\n\t\t\t\" text-center\": \"\";\n\n\t\tvar $col = $('
    ')\n\t\t\t.attr(\"data-fieldname\", df.fieldname)\n\t\t\t.attr(\"data-fieldtype\", df.fieldtype)\n\t\t\t.data(\"df\", df)\n\t\t\t.appendTo(this.row)\n\t\t\t.on('click', function() {\n\t\t\t\tif(frappe.ui.form.editable_row===me) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar out = me.toggle_editable_row();\n\t\t\t\tvar col = this;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$(col).find('input[type=\"Text\"]:first').focus();\n\t\t\t\t}, 500);\n\t\t\t\treturn out;\n\t\t\t});\n\n\t\t$col.field_area = $('
    ').appendTo($col).toggle(false);\n\t\t$col.static_area = $('
    ').appendTo($col).html(txt);\n\t\t$col.df = df;\n\t\t$col.column_index = ci;\n\n\t\tthis.columns[df.fieldname] = $col;\n\t\tthis.columns_list.push($col);\n\n\t\treturn $col;\n\t}\n\n\tactivate() {\n\t\tthis.toggle_editable_row(true);\n\t\treturn this;\n\t}\n\n\ttoggle_editable_row(show) {\n\t\tvar me = this;\n\t\t// show static for field based on\n\t\t// whether grid is editable\n\t\tif(this.grid.allow_on_grid_editing() && this.grid.is_editable() && this.doc && show !== false) {\n\n\t\t\t// disable other editable row\n\t\t\tif(frappe.ui.form.editable_row\n\t\t\t\t&& frappe.ui.form.editable_row !== this) {\n\t\t\t\tfrappe.ui.form.editable_row.toggle_editable_row(false);\n\t\t\t}\n\n\t\t\tthis.row.toggleClass('editable-row', true);\n\n\t\t\t// setup controls\n\t\t\tthis.columns_list.forEach(function(column) {\n\t\t\t\tme.make_control(column);\n\t\t\t\tcolumn.static_area.toggle(false);\n\t\t\t\tcolumn.field_area.toggle(true);\n\t\t\t});\n\n\t\t\tfrappe.ui.form.editable_row = this;\n\t\t\treturn false;\n\t\t} else {\n\t\t\tthis.row.toggleClass('editable-row', false);\n\n\t\t\tthis.columns_list.forEach((column, index) => {\n\n\t\t\t\tif(!this.frm) {\n\t\t\t\t\tlet df = this.grid.visible_columns[index][0]\n\n\t\t\t\t\tlet txt = this.doc ?\n\t\t\t\t\t\tfrappe.format(this.doc[df.fieldname], df, null, this.doc) :\n\t\t\t\t\t\t__(df.label);\n\n\t\t\t\t\tthis.refresh_field(df.fieldname, txt)\n\t\t\t\t}\n\n\t\t\t\tif (!column.df.hidden) {\n\t\t\t\t\tcolumn.static_area.toggle(true);\n\t\t\t\t}\n\n\t\t\t\tcolumn.field_area && column.field_area.toggle(false);\n\t\t\t});\n\t\t\tfrappe.ui.form.editable_row = null;\n\t\t}\n\t}\n\n\tmake_control(column) {\n\t\tif(column.field) return;\n\n\t\tvar me = this,\n\t\t\tparent = column.field_area,\n\t\t\tdf = column.df;\n\n\t\t// no text editor in grid\n\t\tif (df.fieldtype=='Text Editor') {\n\t\t\tdf = Object.assign({}, df);\n\t\t\tdf.fieldtype = 'Text';\n\t\t}\n\n\t\tvar field = frappe.ui.form.make_control({\n\t\t\tdf: df,\n\t\t\tparent: parent,\n\t\t\tonly_input: true,\n\t\t\twith_link_btn: true,\n\t\t\tdoc: this.doc,\n\t\t\tdoctype: this.doc.doctype,\n\t\t\tdocname: this.doc.name,\n\t\t\tfrm: this.grid.frm,\n\t\t\tgrid: this.grid,\n\t\t\tgrid_row: this,\n\t\t\tvalue: this.doc[df.fieldname]\n\t\t});\n\n\t\t// sync get_query\n\t\tfield.get_query = this.grid.get_field(df.fieldname).get_query;\n\n\t\tvar field_on_change_function = field.df.onchange;\n\t\tfield.df.onchange = function(e) {\n\t\t\tfield_on_change_function && field_on_change_function(e);\n\t\t\tme.grid.grid_rows[field.doc.idx - 1].refresh_field(field.df.fieldname);\n\t\t};\n\t\tfield.refresh();\n\t\tif(field.$input) {\n\t\t\tfield.$input\n\t\t\t\t.addClass('input-sm')\n\t\t\t\t.attr('data-col-idx', column.column_index)\n\t\t\t\t.attr('placeholder', __(df.label));\n\t\t\t// flag list input\n\t\t\tif (this.columns_list && this.columns_list.slice(-1)[0]===column) {\n\t\t\t\tfield.$input.attr('data-last-input', 1);\n\t\t\t}\n\t\t}\n\n\t\tthis.set_arrow_keys(field);\n\t\tcolumn.field = field;\n\t\tthis.on_grid_fields_dict[df.fieldname] = field;\n\t\tthis.on_grid_fields.push(field);\n\n\t}\n\n\tset_arrow_keys(field) {\n\t\tvar me = this;\n\t\tif (field.$input) {\n\t\t\tfield.$input.on('keydown', function(e) {\n\t\t\t\tvar { TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;\n\t\t\t\tif (!in_list([TAB, UP_ARROW, DOWN_ARROW], e.which)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar values = me.grid.get_data();\n\t\t\t\tvar fieldname = $(this).attr('data-fieldname');\n\t\t\t\tvar fieldtype = $(this).attr('data-fieldtype');\n\n\t\t\t\tvar move_up_down = function(base) {\n\t\t\t\t\tif (in_list(['Text', 'Small Text', 'Code', 'Text Editor', 'HTML Editor'], fieldtype) && !e.altKey) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (field.autocomplete_open) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tbase.toggle_editable_row();\n\t\t\t\t\tvar input = base.columns[fieldname].field.$input;\n\t\t\t\t\tif (input) {\n\t\t\t\t\t\tinput.focus();\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\n\t\t\t\t// TAB\n\t\t\t\tif (e.which === TAB && !e.shiftKey) {\n\t\t\t\t\tvar last_column = me.wrapper.find(':input:enabled:last').get(0);\n\t\t\t\t\tvar is_last_column = $(this).attr('data-last-input') || last_column === this;\n\n\t\t\t\t\tif (is_last_column) {\n\t\t\t\t\t\t// last row\n\t\t\t\t\t\tif (me.doc.idx === values.length) {\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\tme.grid.add_new_row(null, null, true);\n\t\t\t\t\t\t\t\tme.grid.grid_rows[me.grid.grid_rows.length - 1].toggle_editable_row();\n\t\t\t\t\t\t\t\tme.grid.set_focus_on_row();\n\t\t\t\t\t\t\t}, 100);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// last column before last row\n\t\t\t\t\t\t\tme.grid.grid_rows[me.doc.idx].toggle_editable_row();\n\t\t\t\t\t\t\tme.grid.set_focus_on_row(me.doc.idx);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (e.which === UP_ARROW) {\n\t\t\t\t\tif (me.doc.idx > 1) {\n\t\t\t\t\t\tvar prev = me.grid.grid_rows[me.doc.idx-2];\n\t\t\t\t\t\tif (move_up_down(prev)) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (e.which === DOWN_ARROW) {\n\t\t\t\t\tif (me.doc.idx < values.length) {\n\t\t\t\t\t\tvar next = me.grid.grid_rows[me.doc.idx];\n\t\t\t\t\t\tif (move_up_down(next)) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t});\n\t\t}\n\t}\n\n\tget_open_form() {\n\t\treturn frappe.ui.form.get_open_grid_form();\n\t}\n\n\ttoggle_view(show, callback) {\n\t\tif(!this.doc) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif(this.frm) {\n\t\t\t// reload doc\n\t\t\tthis.doc = locals[this.doc.doctype][this.doc.name];\n\t\t}\n\n\t\t// hide other\n\t\tvar open_row = this.get_open_form();\n\n\t\tif (show===undefined) show = !!!open_row;\n\n\t\t// call blur\n\t\tdocument.activeElement && document.activeElement.blur();\n\n\t\tif(show && open_row) {\n\t\t\tif(open_row==this) {\n\t\t\t\t// already open, do nothing\n\t\t\t\tcallback && callback();\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\t// close other views\n\t\t\t\topen_row.toggle_view(false);\n\t\t\t}\n\t\t}\n\n\t\tif(show) {\n\t\t\tthis.show_form();\n\t\t} else {\n\t\t\tthis.hide_form();\n\t\t}\n\t\tcallback && callback();\n\n\t\treturn this;\n\t}\n\tshow_form() {\n\t\tif(!this.grid_form) {\n\t\t\tthis.grid_form = new GridRowForm({\n\t\t\t\trow: this\n\t\t\t});\n\t\t}\n\t\tthis.grid_form.render();\n\t\tthis.row.toggle(false);\n\t\t// this.form_panel.toggle(true);\n\t\tfrappe.dom.freeze(\"\", \"dark\");\n\t\tif(cur_frm) cur_frm.cur_grid = this;\n\t\tthis.wrapper.addClass(\"grid-row-open\");\n\t\tif(!frappe.dom.is_element_in_viewport(this.wrapper)) {\n\t\t\tfrappe.utils.scroll_to(this.wrapper, true, 15);\n\t\t}\n\n\t\tif(this.frm) {\n\t\t\tthis.frm.script_manager.trigger(this.doc.parentfield + \"_on_form_rendered\");\n\t\t\tthis.frm.script_manager.trigger(\"form_render\", this.doc.doctype, this.doc.name);\n\t\t}\n\t}\n\thide_form() {\n\t\tfrappe.dom.unfreeze();\n\t\tthis.row.toggle(true);\n\t\tthis.refresh();\n\t\tif(cur_frm) cur_frm.cur_grid = null;\n\t\tthis.wrapper.removeClass(\"grid-row-open\");\n\t}\n\topen_prev() {\n\t\tif(this.grid.grid_rows[this.doc.idx-2]) {\n\t\t\tthis.grid.grid_rows[this.doc.idx-2].toggle_view(true);\n\t\t}\n\t}\n\topen_next() {\n\t\tif(this.grid.grid_rows[this.doc.idx]) {\n\t\t\tthis.grid.grid_rows[this.doc.idx].toggle_view(true);\n\t\t} else {\n\t\t\tthis.grid.add_new_row(null, null, true);\n\t\t}\n\t}\n\trefresh_field(fieldname, txt) {\n\t\tvar df = this.grid.get_docfield(fieldname) || undefined;\n\n\t\t// format values if no frm\n\t\tif(!df) {\n\t\t\tdf = this.grid.visible_columns.find((col) => {\n\t\t\t\treturn col[0].fieldname === fieldname;\n\t\t\t});\n\t\t\tif(df && this.doc) {\n\t\t\t\tvar txt = frappe.format(this.doc[fieldname], df[0],\n\t\t\t\t\tnull, this.doc);\n\t\t\t}\n\t\t}\n\n\t\tif(txt===undefined && this.frm) {\n\t\t\tvar txt = frappe.format(this.doc[fieldname], df,\n\t\t\t\tnull, this.frm.doc);\n\t\t}\n\n\t\t// reset static value\n\t\tvar column = this.columns[fieldname];\n\t\tif(column) {\n\t\t\tcolumn.static_area.html(txt || \"\");\n\t\t\tif(df && df.reqd) {\n\t\t\t\tcolumn.toggleClass('error', !!(txt===null || txt===''));\n\t\t\t}\n\t\t}\n\n\t\t// reset field value\n\t\tvar field = this.on_grid_fields_dict[fieldname];\n\t\tif(field) {\n\t\t\tfield.docname = this.doc.name;\n\t\t\tfield.refresh();\n\t\t}\n\n\t\t// in form\n\t\tif(this.grid_form) {\n\t\t\tthis.grid_form.refresh_field(fieldname);\n\t\t}\n\t}\n\tget_field(fieldname) {\n\t\tlet field = this.on_grid_fields_dict[fieldname];\n\t\tif (field) {\n\t\t\treturn field;\n\t\t} else if(this.grid_form) {\n\t\t\treturn this.grid_form.fields_dict[fieldname];\n\t\t} else {\n\t\t\tthrow `fieldname ${fieldname} not found`;\n\t\t}\n\t}\n\n\tget_visible_columns(blacklist=[]) {\n\t\tvar me = this;\n\t\tvar visible_columns = $.map(this.docfields, function(df) {\n\t\t\tvar visible = !df.hidden && df.in_list_view && me.grid.frm.get_perm(df.permlevel, \"read\")\n\t\t\t\t&& !in_list(frappe.model.layout_fields, df.fieldtype) && !in_list(blacklist, df.fieldname);\n\n\t\t\treturn visible ? df : null;\n\t\t});\n\t\treturn visible_columns;\n\t}\n\tset_field_property(fieldname, property, value) {\n\t\t// set a field property for open form / grid form\n\t\tvar me = this;\n\n\t\tvar set_property = function(field) {\n\t\t\tif(!field) return;\n\t\t\tfield.df[property] = value;\n\t\t\tfield.refresh();\n\t\t}\n\n\t\t// set property in grid form\n\t\tif(this.grid_form) {\n\t\t\tset_property(this.grid_form.fields_dict[fieldname]);\n\t\t\tthis.grid_form.layout && this.grid_form.layout.refresh_sections();\n\t\t}\n\n\t\t// set property in on grid fields\n\t\tset_property(this.on_grid_fields_dict[fieldname]);\n\t}\n\ttoggle_reqd(fieldname, reqd) {\n\t\tthis.set_field_property(fieldname, 'reqd', reqd ? 1 : 0);\n\t}\n\ttoggle_display(fieldname, show) {\n\t\tthis.set_field_property(fieldname, 'hidden', show ? 0 : 1);\n\t}\n\ttoggle_editable(fieldname, editable) {\n\t\tthis.set_field_property(fieldname, 'read_only', editable ? 0 : 1);\n\t}\n};\n","// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors\n// MIT License. See license.txt\n\nimport GridRow from \"./grid_row\";\n\nfrappe.ui.form.get_open_grid_form = function() {\n\treturn $(\".grid-row-open\").data(\"grid_row\");\n}\n\nfrappe.ui.form.close_grid_form = function() {\n\tvar open_form = frappe.ui.form.get_open_grid_form();\n\topen_form && open_form.hide_form();\n\n\t// hide editable row too\n\tif(frappe.ui.form.editable_row) {\n\t\tfrappe.ui.form.editable_row.toggle_editable_row(false);\n\t}\n}\n\n\nexport default class Grid {\n\tconstructor(opts) {\n\t\t$.extend(this, opts);\n\t\tthis.fieldinfo = {};\n\t\tthis.doctype = this.df.options;\n\n\t\tif(this.doctype) {\n\t\t\tthis.meta = frappe.get_meta(this.doctype);\n\t\t}\n\t\tthis.fields_map = {};\n\t\tthis.template = null;\n\t\tthis.multiple_set = false;\n\t\tif(this.frm && this.frm.meta.__form_grid_templates\n\t\t\t&& this.frm.meta.__form_grid_templates[this.df.fieldname]) {\n\t\t\tthis.template = this.frm.meta.__form_grid_templates[this.df.fieldname];\n\t\t}\n\n\t\tthis.is_grid = true;\n\t}\n\n\tallow_on_grid_editing() {\n\t\tif(frappe.utils.is_xs()) {\n\t\t\treturn false;\n\t\t} else if(this.meta && this.meta.editable_grid || !this.meta) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\tmake() {\n\t\tvar me = this;\n\n\t\tlet template = `
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    ${__(\"No Data\")}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    `;\n\n\t\tthis.wrapper = $(template)\n\t\t\t.appendTo(this.parent)\n\t\t\t.attr(\"data-fieldname\", this.df.fieldname);\n\n\t\tthis.form_grid = this.wrapper.find('.form-grid');\n\n\t\tthis.wrapper.find(\".grid-add-row\").click(function() {\n\t\t\tme.add_new_row(null, null, true);\n\t\t\tme.set_focus_on_row();\n\n\t\t\treturn false;\n\t\t});\n\n\t\tthis.custom_buttons = {};\n\t\tthis.grid_buttons = this.wrapper.find('.grid-buttons');\n\t\tthis.remove_rows_button = this.grid_buttons.find('.grid-remove-rows')\n\n\t\tthis.setup_allow_bulk_edit();\n\t\tthis.setup_check();\n\t\tif(this.df.on_setup) {\n\t\t\tthis.df.on_setup(this);\n\t\t}\n\t}\n\n\tsetup_check() {\n\t\tvar me = this;\n\n\t\tthis.wrapper.on('click', '.grid-row-check', function(e) {\n\t\t\tvar $check = $(this);\n\t\t\tif($check.parents('.grid-heading-row:first').length!==0) {\n\t\t\t\t// select all?\n\t\t\t\tvar checked = $check.prop('checked');\n\t\t\t\t$check.parents('.form-grid:first')\n\t\t\t\t\t.find('.grid-row-check').prop('checked', checked);\n\n\t\t\t\t// set all\n\t\t\t\t(me.grid_rows || []).forEach(function(row) { row.doc.__checked = checked ? 1 : 0; });\n\t\t\t} else {\n\t\t\t\tvar docname = $check.parents('.grid-row:first').attr('data-name');\n\t\t\t\tme.grid_rows_by_docname[docname].select($check.prop('checked'));\n\t\t\t}\n\t\t\tme.refresh_remove_rows_button();\n\t\t});\n\n\t\tthis.remove_rows_button.on('click', function() {\n\t\t\tvar dirty = false;\n\n\t\t\tlet tasks = [];\n\t\t\tme.get_selected_children().forEach((doc) => {\n\t\t\t\ttasks.push(() => {\n\t\t\t\t\tif (!me.frm) {\n\t\t\t\t\t\tme.df.data = me.get_data();\n\t\t\t\t\t\tme.df.data = me.df.data.filter((row)=> row.idx != doc.idx);\n\t\t\t\t\t}\n\t\t\t\t\tme.grid_rows_by_docname[doc.name].remove();\n\t\t\t\t\tdirty = true;\n\t\t\t\t});\n\t\t\t\ttasks.push(() => frappe.timeout(0.1));\n\t\t\t});\n\n\t\t\tif (!me.frm) {\n\t\t\t\ttasks.push(() => {\n\t\t\t\t\t// reorder idx of df.data\n\t\t\t\t\tme.df.data.forEach((row, index) => row.idx = index + 1);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ttasks.push(() => {\n\t\t\t\tif (dirty) me.refresh();\n\t\t\t});\n\n\t\t\tfrappe.run_serially(tasks);\n\t\t});\n\t}\n\tselect_row(name) {\n\t\tthis.grid_rows_by_docname[name].select();\n\t}\n\tremove_all() {\n\t\tthis.grid_rows.forEach(row => {\n\t\t\trow.remove();\n\t\t});\n\t}\n\trefresh_remove_rows_button() {\n\t\tthis.remove_rows_button.toggleClass('hidden',\n\t\t\tthis.wrapper.find('.grid-body .grid-row-check:checked:first').length ? false : true);\n\t}\n\tget_selected() {\n\t\treturn (this.grid_rows || []).map(function(row) { return row.doc.__checked ? row.doc.name : null; })\n\t\t\t.filter(function(d) { return d; });\n\t}\n\tget_selected_children() {\n\t\treturn (this.grid_rows || []).map(function(row) { return row.doc.__checked ? row.doc : null; })\n\t\t\t.filter(function(d) { return d; });\n\t}\n\tmake_head() {\n\t\t// labels\n\t\tif(!this.header_row) {\n\t\t\tthis.header_row = new GridRow({\n\t\t\t\tparent: $(this.parent).find(\".grid-heading-row\"),\n\t\t\t\tparent_df: this.df,\n\t\t\t\tdocfields: this.docfields,\n\t\t\t\tfrm: this.frm,\n\t\t\t\tgrid: this\n\t\t\t});\n\t\t}\n\t}\n\trefresh(force) {\n\t\t!this.wrapper && this.make();\n\t\tvar me = this,\n\t\t\t$rows = $(me.parent).find(\".rows\"),\n\t\t\tdata = this.get_data();\n\n\t\tthis.setup_fields();\n\n\t\tif(this.frm) {\n\t\t\tthis.display_status = frappe.perm.get_field_display_status(this.df, this.frm.doc,\n\t\t\t\tthis.perm);\n\t\t} else {\n\t\t\t// not in form\n\t\t\tthis.display_status = 'Write';\n\t\t}\n\n\t\tif(this.display_status === \"None\") return;\n\n\t\t// redraw\n\t\tvar _scroll_y = $(document).scrollTop();\n\t\tthis.make_head();\n\n\t\tif(!this.grid_rows) {\n\t\t\tthis.grid_rows = [];\n\t\t}\n\n\t\tthis.truncate_rows(data);\n\t\tthis.grid_rows_by_docname = {};\n\n\t\tfor(var ri=0; ri < data.length; ri++) {\n\t\t\tvar d = data[ri];\n\n\t\t\tif(d.idx===undefined) {\n\t\t\t\td.idx = ri + 1;\n\t\t\t}\n\n\t\t\tif(this.grid_rows[ri]) {\n\t\t\t\tvar grid_row = this.grid_rows[ri];\n\t\t\t\tgrid_row.doc = d;\n\t\t\t\tgrid_row.refresh();\n\t\t\t} else {\n\t\t\t\tvar grid_row = new GridRow({\n\t\t\t\t\tparent: $rows,\n\t\t\t\t\tparent_df: this.df,\n\t\t\t\t\tdocfields: this.docfields,\n\t\t\t\t\tdoc: d,\n\t\t\t\t\tfrm: this.frm,\n\t\t\t\t\tgrid: this\n\t\t\t\t});\n\t\t\t\tthis.grid_rows.push(grid_row);\n\t\t\t}\n\n\t\t\tthis.grid_rows_by_docname[d.name] = grid_row;\n\t\t}\n\n\t\tthis.wrapper.find(\".grid-empty\").toggleClass(\"hidden\", Boolean(data.length));\n\n\t\t// toolbar\n\t\tthis.setup_toolbar();\n\t\tthis.toggle_checkboxes(this.display_status !== 'Read');\n\n\t\t// sortable\n\t\tif(this.frm && this.is_sortable() && !this.sortable_setup_done) {\n\t\t\tthis.make_sortable($rows);\n\t\t\tthis.sortable_setup_done = true;\n\t\t}\n\n\t\tthis.last_display_status = this.display_status;\n\t\tthis.last_docname = this.frm && this.frm.docname;\n\n\t\t// frappe.utils.scroll_to(_scroll_y);\n\n\t\t// red if mandatory\n\t\tthis.form_grid.toggleClass('error', !!(this.df.reqd && !(data && data.length)));\n\n\t\tthis.refresh_remove_rows_button();\n\n\t\tthis.wrapper.trigger('change');\n\t}\n\tsetup_toolbar() {\n\t\tif(this.is_editable()) {\n\t\t\tthis.wrapper.find(\".grid-footer\").toggle(true);\n\n\t\t\t// show, hide buttons to add rows\n\t\t\tif(this.cannot_add_rows || (this.df && this.df.cannot_add_rows)) {\n\t\t\t\t// add 'hidden' to buttons\n\t\t\t\tthis.wrapper.find(\".grid-add-row, .grid-add-multiple-rows\")\n\t\t\t\t\t.addClass('hidden');\n\t\t\t} else {\n\t\t\t\t// show buttons\n\t\t\t\tthis.wrapper.find(\".grid-add-row\").removeClass('hidden');\n\n\t\t\t\tif(this.multiple_set) {\n\t\t\t\t\tthis.wrapper.find(\".grid-add-multiple-rows\").removeClass('hidden');\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\t\t\tthis.wrapper.find(\".grid-footer\").toggle(false);\n\t\t}\n\n\t}\n\ttruncate_rows(data) {\n\t\tif(this.grid_rows.length > data.length) {\n\t\t\t// remove extra rows\n\t\t\tfor(var i=data.length; i < this.grid_rows.length; i++) {\n\t\t\t\tvar grid_row = this.grid_rows[i];\n\t\t\t\tgrid_row.wrapper.remove();\n\t\t\t}\n\t\t\tthis.grid_rows.splice(data.length);\n\t\t}\n\t}\n\tsetup_fields() {\n\t\tvar me = this;\n\t\t// reset docfield\n\t\tif (this.frm && this.frm.docname) {\n\t\t\t// use doc specific docfield object\n\t\t\tthis.df = frappe.meta.get_docfield(this.frm.doctype, this.df.fieldname,\n\t\t\t\tthis.frm.docname);\n\t\t} else {\n\t\t\t// use non-doc specific docfield\n\t\t\tif(this.df.options) {\n\t\t\t\tthis.df = frappe.meta.get_docfield(this.df.options, this.df.fieldname) || this.df || null;\n\t\t\t}\n\t\t}\n\n\t\tif(this.doctype && this.frm) {\n\t\t\tthis.docfields = frappe.meta.get_docfields(this.doctype, this.frm.docname);\n\t\t} else {\n\t\t\t// fields given in docfield\n\t\t\tthis.docfields = this.df.fields;\n\t\t}\n\n\t\tthis.docfields.forEach(function(df) {\n\t\t\tme.fields_map[df.fieldname] = df;\n\t\t});\n\t}\n\trefresh_row(docname) {\n\t\tthis.grid_rows_by_docname[docname] &&\n\t\t\tthis.grid_rows_by_docname[docname].refresh();\n\t}\n\tmake_sortable($rows) {\n\t\tnew Sortable($rows.get(0), {\n\t\t\tgroup: {name: this.df.fieldname},\n\t\t\thandle: '.sortable-handle',\n\t\t\tdraggable: '.grid-row',\n\t\t\tanimation: 100,\n\t\t\tfilter: 'li, a',\n\t\t\tonMove: (event) => {\n\t\t\t\t// don't move if editable\n\t\t\t\tif (!this.is_editable()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// prevent drag behaviour if _sortable property is \"false\"\n\t\t\t\tlet idx = $(event.dragged).closest('.grid-row').attr('data-idx');\n\t\t\t\tlet doc = this.get_data()[idx - 1];\n\t\t\t\tif (doc && doc._sortable === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonUpdate: (event) => {\n\t\t\t\tlet idx = $(event.item).closest('.grid-row').attr('data-idx');\n\t\t\t\tlet doc = this.get_data()[idx - 1];\n\t\t\t\tthis.renumber_based_on_dom();\n\t\t\t\tthis.frm.script_manager.trigger(this.df.fieldname + \"_move\", this.df.options, doc.name);\n\t\t\t\tthis.refresh();\n\t\t\t\tthis.frm.dirty();\n\t\t\t}\n\t\t});\n\n\t\t$(this.frm.wrapper).trigger(\"grid-make-sortable\", [this.frm]);\n\t}\n\tget_data() {\n\t\tvar data = this.frm ?\n\t\t\tthis.frm.doc[this.df.fieldname] || []\n\t\t\t: this.df.data || this.get_modal_data();\n\t\tdata.sort(function(a, b) { return a.idx - b.idx});\n\t\treturn data;\n\t}\n\tget_modal_data() {\n\t\treturn this.df.get_data ? this.df.get_data().filter(data => {\n\t\t\tif (!this.deleted_docs || !in_list(this.deleted_docs, data.name)) {\n\t\t\t\treturn data;\n\t\t\t}\n\t\t}) : [];\n\t}\n\tset_column_disp(fieldname, show) {\n\t\tif($.isArray(fieldname)) {\n\t\t\tvar me = this;\n\t\t\tfor(var i=0, l=fieldname.length; i 11)\n\t\t\t\t\treturn false;\n\t\t\t\tthis.visible_columns.push([df, df.colsize]);\n\t\t\t}\n\t\t}\n\n\t\t// redistribute if total-col size is less than 12\n\t\tvar passes = 0;\n\t\twhile(total_colsize < 11 && passes < 12) {\n\t\t\tfor(var i in this.visible_columns) {\n\t\t\t\tvar df = this.visible_columns[i][0];\n\t\t\t\tvar colsize = this.visible_columns[i][1];\n\t\t\t\tif(colsize > 1 && colsize < 11\n\t\t\t\t\t&& !in_list(frappe.model.std_fields_list, df.fieldname)) {\n\n\t\t\t\t\tif (passes < 3 && [\"Int\", \"Currency\", \"Float\", \"Check\", \"Percent\"].indexOf(df.fieldtype)!==-1) {\n\t\t\t\t\t\t// don't increase col size of these fields in first 3 passes\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.visible_columns[i][1] += 1;\n\t\t\t\t\ttotal_colsize++;\n\t\t\t\t}\n\n\t\t\t\tif(total_colsize > 10)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tpasses++;\n\t\t}\n\t}\n\n\n\tis_editable() {\n\t\treturn this.display_status==\"Write\" && !this.static_rows;\n\t}\n\tis_sortable() {\n\t\treturn this.sortable_status || this.is_editable();\n\t}\n\tonly_sortable(status) {\n\t\tif(status===undefined ? true : status) {\n\t\t\tthis.sortable_status = true;\n\t\t\tthis.static_rows = true;\n\t\t}\n\t}\n\tset_multiple_add(link, qty) {\n\t\tif(this.multiple_set) return;\n\t\tvar me = this;\n\t\tvar link_field = frappe.meta.get_docfield(this.df.options, link);\n\t\tvar btn = $(this.wrapper).find(\".grid-add-multiple-rows\");\n\n\t\t// show button\n\t\tbtn.removeClass('hidden');\n\n\t\t// open link selector on click\n\t\tbtn.on(\"click\", function() {\n\t\t\tnew frappe.ui.form.LinkSelector({\n\t\t\t\tdoctype: link_field.options,\n\t\t\t\tfieldname: link,\n\t\t\t\tqty_fieldname: qty,\n\t\t\t\ttarget: me,\n\t\t\t\ttxt: \"\"\n\t\t\t});\n\t\t\treturn false;\n\t\t});\n\t\tthis.multiple_set = true;\n\t}\n\tsetup_allow_bulk_edit() {\n\t\tvar me = this;\n\t\tif(this.frm && this.frm.get_docfield(this.df.fieldname).allow_bulk_edit) {\n\t\t\t// download\n\t\t\tme.setup_download();\n\n\t\t\t// upload\n\t\t\tfrappe.flags.no_socketio = true;\n\t\t\t$(this.wrapper).find(\".grid-upload\").removeClass('hidden').on(\"click\", function() {\n\t\t\t\tnew frappe.ui.FileUploader({\n\t\t\t\t\tas_dataurl: true,\n\t\t\t\t\tallow_multiple: false,\n\t\t\t\t\ton_success(file) {\n\t\t\t\t\t\tvar data = frappe.utils.csv_to_array(frappe.utils.get_decoded_string(file.dataurl));\n\t\t\t\t\t\t// row #2 contains fieldnames;\n\t\t\t\t\t\tvar fieldnames = data[2];\n\n\t\t\t\t\t\tme.frm.clear_table(me.df.fieldname);\n\t\t\t\t\t\t$.each(data, function(i, row) {\n\t\t\t\t\t\t\tif(i > 6) {\n\t\t\t\t\t\t\t\tvar blank_row = true;\n\t\t\t\t\t\t\t\t$.each(row, function(ci, value) {\n\t\t\t\t\t\t\t\t\tif(value) {\n\t\t\t\t\t\t\t\t\t\tblank_row = false;\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif(!blank_row) {\n\t\t\t\t\t\t\t\t\tvar d = me.frm.add_child(me.df.fieldname);\n\t\t\t\t\t\t\t\t\t$.each(row, function(ci, value) {\n\t\t\t\t\t\t\t\t\t\tvar fieldname = fieldnames[ci];\n\t\t\t\t\t\t\t\t\t\tvar df = frappe.meta.get_docfield(me.df.options, fieldname);\n\n\t\t\t\t\t\t\t\t\t\t// convert date formatting\n\t\t\t\t\t\t\t\t\t\tif(df.fieldtype===\"Date\" && value) {\n\t\t\t\t\t\t\t\t\t\t\tvalue = frappe.datetime.user_to_str(value);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif(df.fieldtype===\"Int\" || df.fieldtype===\"Check\") {\n\t\t\t\t\t\t\t\t\t\t\tvalue = cint(value);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\td[fieldnames[ci]] = value;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tme.frm.refresh_field(me.df.fieldname);\n\t\t\t\t\t\tfrappe.msgprint({message:__('Table updated'), title:__('Success'), indicator:'green'})\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}\n\t}\n\tsetup_download() {\n\t\tvar me = this;\n\t\tlet title = me.df.label || frappe.model.unscrub(me.df.fieldname);\n\t\t$(this.wrapper).find(\".grid-download\").removeClass('hidden').on(\"click\", function() {\n\t\t\tvar data = [];\n\t\t\tvar docfields = [];\n\t\t\tdata.push([__(\"Bulk Edit {0}\", [title])]);\n\t\t\tdata.push([]);\n\t\t\tdata.push([]);\n\t\t\tdata.push([]);\n\t\t\tdata.push([__(\"The CSV format is case sensitive\")]);\n\t\t\tdata.push([__(\"Do not edit headers which are preset in the template\")]);\n\t\t\tdata.push([\"------\"]);\n\t\t\t$.each(frappe.get_meta(me.df.options).fields, function(i, df) {\n\t\t\t\t// don't include the read-only field in the template\n\t\t\t\tif(frappe.model.is_value_type(df.fieldtype)) {\n\t\t\t\t\tdata[1].push(df.label);\n\t\t\t\t\tdata[2].push(df.fieldname);\n\t\t\t\t\tlet description = (df.description || \"\") + ' ';\n\t\t\t\t\tif (df.fieldtype === \"Date\") {\n\t\t\t\t\t\tdescription += frappe.boot.sysdefaults.date_format;\n\t\t\t\t\t}\n\t\t\t\t\tdata[3].push(description);\n\t\t\t\t\tdocfields.push(df);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// add data\n\t\t\t$.each(me.frm.doc[me.df.fieldname] || [], function(i, d) {\n\t\t\t\tvar row = [];\n\t\t\t\t$.each(data[2], function(i, fieldname) {\n\t\t\t\t\tvar value = d[fieldname];\n\n\t\t\t\t\t// format date\n\t\t\t\t\tif(docfields[i].fieldtype===\"Date\" && value) {\n\t\t\t\t\t\tvalue = frappe.datetime.str_to_user(value);\n\t\t\t\t\t}\n\n\t\t\t\t\trow.push(value || \"\");\n\t\t\t\t});\n\t\t\t\tdata.push(row);\n\t\t\t});\n\n\t\t\tfrappe.tools.downloadify(data, null, title);\n\t\t\treturn false;\n\t\t});\n\t}\n\tadd_custom_button(label, click) {\n\t\t// add / unhide a custom button\n\t\tvar btn = this.custom_buttons[label];\n\t\tif(!btn) {\n\t\t\tbtn = $('')\n\t\t\t\t.css('margin-right', '4px')\n\t\t\t\t.prependTo(this.grid_buttons)\n\t\t\t\t.on('click', click);\n\t\t\tthis.custom_buttons[label] = btn;\n\t\t} else {\n\t\t\tbtn.removeClass('hidden');\n\t\t}\n\t}\n\tclear_custom_buttons() {\n\t\t// hide all custom buttons\n\t\tthis.grid_buttons.find('.btn-custom').addClass('hidden');\n\t}\n}\n","import Grid from '../grid';\n\nfrappe.ui.form.ControlTable = frappe.ui.form.Control.extend({\n\tmake: function() {\n\t\tthis._super();\n\n\t\t// add title if prev field is not column / section heading or html\n\t\tthis.grid = new Grid({\n\t\t\tfrm: this.frm,\n\t\t\tdf: this.df,\n\t\t\tperm: this.perm || (this.frm && this.frm.perm) || this.df.perm,\n\t\t\tparent: this.wrapper\n\t\t});\n\t\tif(this.frm) {\n\t\t\tthis.frm.grids[this.frm.grids.length] = this;\n\t\t}\n\n\t\t// description\n\t\tif(this.df.description) {\n\t\t\t$('

    ' + __(this.df.description) + '

    ')\n\t\t\t\t.appendTo(this.wrapper);\n\t\t}\n\t\tthis.$wrapper.on('paste',':text', function(e) {\n\t\t\tvar cur_table_field =$(e.target).closest('div [data-fieldtype=\"Table\"]').data('fieldname');\n\t\t\tvar cur_field = $(e.target).data('fieldname');\n\t\t\tvar cur_grid= cur_frm.get_field(cur_table_field).grid;\n\t\t\tvar cur_grid_rows = cur_grid.grid_rows;\n\t\t\tvar cur_doctype = cur_grid.doctype;\n\t\t\tvar cur_row_docname =$(e.target).closest('div .grid-row').data('name');\n\t\t\tvar row_idx = locals[cur_doctype][cur_row_docname].idx;\n\t\t\tvar clipboardData, pastedData;\n\t\t\t// Get pasted data via clipboard API\n\t\t\tclipboardData = e.clipboardData || window.clipboardData || e.originalEvent.clipboardData;\n\t\t\tpastedData = clipboardData.getData('Text');\n\t\t\tif (!pastedData) return;\n\t\t\tvar data = frappe.utils.csv_to_array(pastedData,'\\t');\n\t\t\tif (data.length === 1 & data[0].length === 1) return;\n\t\t\tif (data.length > 100){\n\t\t\t\tdata = data.slice(0, 100);\n\t\t\t\tfrappe.msgprint(__('For performance, only the first 100 rows were processed.'));\n\t\t\t}\n\t\t\tvar fieldnames = [];\n\t\t\tvar get_field = function(name_or_label){\n\t\t\t\tvar fieldname;\n\t\t\t\t$.each(cur_grid.meta.fields,(ci,field)=>{\n\t\t\t\t\tname_or_label = name_or_label.toLowerCase()\n\t\t\t\t\tif (field.fieldname.toLowerCase() === name_or_label ||\n\t\t\t\t\t\t(field.label && field.label.toLowerCase() === name_or_label)){\n\t\t\t\t\t\t fieldname = field.fieldname;\n\t\t\t\t\t\t return false;\n\t\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn fieldname;\n\t\t\t}\n\t\t\tif (get_field(data[0][0])){ // for raw data with column header\n\t\t\t\t$.each(data[0], (ci, column)=>{fieldnames.push(get_field(column));});\n\t\t\t\tdata.shift();\n\t\t\t}\n\t\t\telse{ // no column header, map to the existing visible columns\n\t\t\t\tvar visible_columns = cur_grid_rows[0].get_visible_columns();\n\t\t\t\tvar find;\n\t\t\t\t$.each(visible_columns, (ci, column)=>{\n\t\t\t\t\tif (column.fieldname === cur_field) find = true;\n\t\t\t\t\tfind && fieldnames.push(column.fieldname);\n\t\t\t\t})\n\t\t\t}\n\t\t\t$.each(data, function(i, row) {\n\t\t\t\tvar blank_row = true;\n\t\t\t\t$.each(row, function(ci, value) {\n\t\t\t\t\tif(value) {\n\t\t\t\t\t\tblank_row = false;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(!blank_row) {\n\t\t\t\t\tif (row_idx > cur_frm.doc[cur_table_field].length){\n\t\t\t\t\t\tcur_grid.add_new_row();\n\t\t\t\t\t}\n\t\t\t\t\tvar cur_row = cur_grid_rows[row_idx - 1];\n\t\t\t\t\trow_idx ++;\n\t\t\t\t\tvar row_name = cur_row.doc.name;\n\t\t\t\t\t$.each(row, function(ci, value) {\n\t\t\t\t\t\tif (fieldnames[ci]) frappe.model.set_value(cur_doctype, row_name, fieldnames[ci], value);\n\t\t\t\t\t});\n\t\t\t\t\tfrappe.show_progress(__('Processing'), i, data.length);\n\t\t\t\t}\n\t\t\t});\n\t\t\tfrappe.hide_progress();\n\t\t\treturn false; // Prevent the default handler from running.\n\t\t});\n\t},\n\trefresh_input: function() {\n\t\tthis.grid.refresh();\n\t},\n\tget_value: function() {\n\t\tif(this.grid) {\n\t\t\treturn this.grid.get_data();\n\t\t}\n\t},\n\tset_input: function( ) {\n\t\t//\n\t},\n\tvalidate: function() {\n\t\treturn this.get_value();\n\t},\n\tcheck_all_rows() {\n\t\tthis.$wrapper.find('.grid-row-check')[0].click();\n\t}\n});\n","frappe.ui.form.ControlColor = frappe.ui.form.ControlData.extend({\n\tmake_input: function () {\n\t\tthis._super();\n\t\tthis.colors = [\n\t\t\t\"#ffc4c4\", \"#ff8989\", \"#ff4d4d\", \"#a83333\",\n\t\t\t\"#ffe8cd\", \"#ffd19c\", \"#ffb868\", \"#a87945\",\n\t\t\t\"#ffd2c2\", \"#ffa685\", \"#ff7846\", \"#a85b5b\",\n\t\t\t\"#ffd7d7\", \"#ffb1b1\", \"#ff8989\", \"#a84f2e\",\n\t\t\t\"#fffacd\", \"#fff168\", \"#fff69c\", \"#a89f45\",\n\t\t\t\"#ebf8cc\", \"#d9f399\", \"#c5ec63\", \"#7b933d\",\n\t\t\t\"#cef6d1\", \"#9deca2\", \"#6be273\", \"#428b46\",\n\t\t\t\"#d2f8ed\", \"#a4f3dd\", \"#77ecca\", \"#49937e\",\n\t\t\t\"#d2f1ff\", \"#a6e4ff\", \"#78d6ff\", \"#4f8ea8\",\n\t\t\t\"#d2d2ff\", \"#a3a3ff\", \"#7575ff\", \"#4d4da8\",\n\t\t\t\"#dac7ff\", \"#b592ff\", \"#8e58ff\", \"#5e3aa8\",\n\t\t\t\"#f8d4f8\", \"#f3aaf0\", \"#ec7dea\", \"#934f92\"\n\t\t];\n\t\tthis.make_color_input();\n\t},\n\tmake_color_input: function () {\n\t\tthis.$wrapper\n\t\t\t.find('.control-input-wrapper')\n\t\t\t.append(`
    \n\t\t\t\t
    \n\t\t\t
    `);\n\t\tthis.$color_pallete = this.$wrapper.find('.color-picker-pallete');\n\n\t\tvar color_html = this.colors.map(this.get_color_box).join(\"\");\n\t\tthis.$color_pallete.append(color_html);\n\t\tthis.$color_pallete.hide();\n\t\tthis.bind_events();\n\t},\n\tget_color_box: function (hex) {\n\t\treturn `
    `;\n\t},\n\tset_formatted_input: function(value) {\n\t\tthis._super(value);\n\n\t\tif (!value) value = '#FFFFFF';\n\t\tconst contrast = frappe.ui.color.get_contrast_color(value);\n\n\t\tthis.$input.css({\n\t\t\t\"background-color\": value, \"color\": contrast\n\t\t});\n\t},\n\tbind_events: function () {\n\t\tvar mousedown_happened = false;\n\t\tthis.$wrapper.on(\"click\", \".color-box\", (e) => {\n\t\t\tmousedown_happened = false;\n\n\t\t\tvar color_val = $(e.target).data(\"color\");\n\t\t\tthis.set_value(color_val);\n\t\t\t// set focus so that we can blur it later\n\t\t\tthis.set_focus();\n\t\t});\n\n\t\tthis.$wrapper.find(\".color-box\").mousedown(() => {\n\t\t\tmousedown_happened = true;\n\t\t});\n\n\t\tthis.$input.on(\"focus\", () => {\n\t\t\tthis.$color_pallete.show();\n\t\t});\n\t\tthis.$input.on(\"blur\", () => {\n\t\t\tif (mousedown_happened) {\n\t\t\t\t// cancel the blur event\n\t\t\t\tmousedown_happened = false;\n\t\t\t} else {\n\t\t\t\t// blur event is okay\n\t\t\t\t$(this.$color_pallete).hide();\n\t\t\t}\n\t\t});\n\t},\n\tvalidate: function (value) {\n\t\tif(value === '') {\n\t\t\treturn '';\n\t\t}\n\t\tvar is_valid = /^#[0-9A-F]{6}$/i.test(value);\n\t\tif(is_valid) {\n\t\t\treturn value;\n\t\t}\n\t\treturn null;\n\t}\n});\n","frappe.ui.form.ControlSignature = frappe.ui.form.ControlData.extend({\n\tsaving: false,\n\tloading: false,\n\tmake: function() {\n\t\tvar me = this;\n\t\tthis._super();\n\n\t\t// make jSignature field\n\t\tthis.body = $('
    ').appendTo(me.wrapper);\n\n\t\tif (this.body.is(':visible')) {\n\t\t\tthis.make_pad();\n\t\t} else {\n\t\t\t$(document).on('frappe.ui.Dialog:shown', () => {\n\t\t\t\tthis.make_pad();\n\t\t\t});\n\t\t}\n\n\t\tthis.img_wrapper = $(`
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    `)\n\t\t\t.appendTo(this.wrapper);\n\t\tthis.img = $(\"\")\n\t\t\t.appendTo(this.img_wrapper).toggle(false);\n\n\t},\n\tmake_pad: function() {\n\t\tlet width = this.body.width();\n\t\tif (width > 0 && !this.$pad) {\n\t\t\tthis.$pad = this.body.jSignature({\n\t\t\t\theight: 300,\n\t\t\t\twidth: this.body.width(),\n\t\t\t\tlineWidth: 3\n\t\t\t}).on('change',\n\t\t\t\tthis.on_save_sign.bind(this));\n\t\t\tthis.load_pad();\n\t\t\tthis.$reset_button_wrapper = $(`
    \n\t\t\t\t\n\t\t\t\t`)\n\t\t\t\t.appendTo(this.$pad)\n\t\t\t\t.on(\"click\", '.signature-reset', () => {\n\t\t\t\t\tthis.on_reset_sign();\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\n\t\t}\n\t},\n\trefresh_input: function(e) {\n\t\t// prevent to load the second time\n\t\tthis.make_pad();\n\t\tthis.$wrapper.find(\".control-input\").toggle(false);\n\t\tthis.set_editable(this.get_status()==\"Write\");\n\t\tthis.load_pad();\n\t\tif(this.get_status()==\"Read\") {\n\t\t\t$(this.disp_area).toggle(false);\n\t\t}\n\t},\n\tset_image: function(value) {\n\t\tif(value) {\n\t\t\t$(this.img_wrapper).find(\".missing-image\").toggle(false);\n\t\t\tthis.img.attr(\"src\", value).toggle(true);\n\t\t} else {\n\t\t\t$(this.img_wrapper).find(\".missing-image\").toggle(true);\n\t\t\tthis.img.toggle(false);\n\t\t}\n\t},\n\tload_pad: function() {\n\t\t// make sure not triggered during saving\n\t\tif (this.saving) return;\n\t\t// get value\n\t\tvar value = this.get_value();\n\t\t// import data for pad\n\t\tif (this.$pad) {\n\t\t\tthis.loading = true;\n\t\t\t// reset in all cases\n\t\t\tthis.$pad.jSignature('reset');\n\t\t\tif (value) {\n\t\t\t\t// load the image to find out the size, because scaling will affect\n\t\t\t\t// stroke width\n\t\t\t\ttry {\n\t\t\t\t\tthis.$pad.jSignature('setData', value);\n\t\t\t\t\tthis.set_image(value);\n\t\t\t\t}\n\t\t\t\tcatch (e){\n\t\t\t\t\tconsole.log(\"Cannot set data for signature\", value, e);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.loading = false;\n\t\t}\n\t},\n\tset_editable: function(editable) {\n\t\tthis.$pad && this.$pad.toggle(editable);\n\t\tthis.img_wrapper.toggle(!editable);\n\t\tif (this.$reset_button_wrapper) {\n\t\t\tthis.$reset_button_wrapper.toggle(editable);\n\t\t\tif (editable) {\n\t\t\t\tthis.$reset_button_wrapper.addClass('editing');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$reset_button_wrapper.removeClass('editing');\n\t\t\t}\n\t\t}\n\t},\n\tset_my_value: function(value) {\n\t\tif (this.saving || this.loading) return;\n\t\tthis.saving = true;\n\t\tthis.set_value(value);\n\t\tthis.saving = false;\n\t},\n\tget_value: function() {\n\t\treturn this.value ? this.value: this.get_model_value();\n\t},\n\t// reset signature canvas\n\ton_reset_sign: function() {\n\t\tthis.$pad.jSignature(\"reset\");\n\t\tthis.set_my_value(\"\");\n\t},\n\t// save signature value to model and display\n\ton_save_sign: function() {\n\t\tif (this.saving || this.loading) return;\n\t\tvar base64_img = this.$pad.jSignature(\"getData\");\n\t\tthis.set_my_value(base64_img);\n\t\tthis.set_image(this.get_value());\n\t}\n});\n","frappe.ui.form.ControlPassword = frappe.ui.form.ControlData.extend({\n\tinput_type: \"password\",\n\tmake: function() {\n\t\tthis._super();\n\t},\n\tmake_input: function() {\n\t\tvar me = this;\n\t\tthis._super();\n\t\tthis.$input.parent().append($(''));\n\t\tthis.$wrapper.find('.control-input-wrapper').append($('

    '));\n\n\t\tthis.indicator = this.$wrapper.find('.password-strength-indicator');\n\t\tthis.message = this.$wrapper.find('.help-box');\n\n\t\tthis.$input.on('keyup', () => {\n\t\t\tclearTimeout(this.check_password_timeout);\n\t\t\tthis.check_password_timeout = setTimeout (() => {\n\t\t\t\tme.get_password_strength(me.$input.val());\n\t\t\t}, 500);\n\t\t});\n\t},\n\tget_password_strength: function(value) {\n\t\tvar me = this;\n\t\tfrappe.call({\n\t\t\ttype: 'POST',\n\t\t\tmethod: 'frappe.core.doctype.user.user.test_password_strength',\n\t\t\targs: {\n\t\t\t\tnew_password: value || ''\n\t\t\t},\n\t\t\tcallback: function(r) {\n\t\t\t\tif (r.message && r.message.entropy) {\n\t\t\t\t\tvar score = r.message.score,\n\t\t\t\t\t\tfeedback = r.message.feedback;\n\n\t\t\t\t\tfeedback.crack_time_display = r.message.crack_time_display;\n\n\t\t\t\t\tvar indicators = ['grey', 'red', 'orange', 'yellow', 'green'];\n\t\t\t\t\tme.set_strength_indicator(indicators[score]);\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t});\n\t},\n\tset_strength_indicator: function(color) {\n\t\tvar message = __(\"Include symbols, numbers and capital letters in the password\");\n\t\tthis.indicator.removeClass().addClass('password-strength-indicator indicator ' + color);\n\t\tthis.message.html(message).removeClass('hidden');\n\t}\n});\n","frappe.ui.form.ControlReadOnly = frappe.ui.form.ControlData.extend({\n\tget_status: function(explain) {\n\t\tvar status = this._super(explain);\n\t\tif(status===\"Write\")\n\t\t\tstatus = \"Read\";\n\t\treturn;\n\t},\n});\n","frappe.ui.form.ControlButton = frappe.ui.form.ControlData.extend({\n\tcan_write() {\n\t\t// should be always true in case of button\n\t\treturn true;\n\t},\n\tmake_input: function() {\n\t\tvar me = this;\n\t\tthis.$input = $('`)\n\t\t\t.click(e => {\n\t\t\t\tif (!this.showing_preview) {\n\t\t\t\t\tthis.update_preview();\n\t\t\t\t}\n\n\t\t\t\tconst $btn = $(e.target);\n\t\t\t\tthis.markdown_preview.toggle(!this.showing_preview);\n\t\t\t\tthis.ace_editor_target.toggle(this.showing_preview);\n\n\t\t\t\tthis.showing_preview = !this.showing_preview;\n\n\t\t\t\t$btn.text(this.showing_preview ? __('Edit') : __('Preview'));\n\t\t\t});\n\t\tthis.markdown_container.prepend(this.preview_toggle_btn);\n\n\t\tthis.markdown_preview = $(`
    `).hide();\n\t\tthis.markdown_container.append(this.markdown_preview);\n\t},\n\n\tset_language() {\n\t\tthis.df.options = 'Markdown';\n\t\tthis._super();\n\t},\n\n\tupdate_preview() {\n\t\tconst value = this.get_value() || \"\";\n\t\tthis.markdown_preview.html(frappe.markdown(value));\n\t},\n\n\tset_formatted_input(value) {\n\t\tthis._super(value)\n\t\t\t.then(() => {\n\t\t\t\tthis.update_preview();\n\t\t\t});\n\t}\n});\n","frappe.ui.form.ControlHTMLEditor = frappe.ui.form.ControlMarkdownEditor.extend({\n\teditor_class: 'html',\n\tset_language() {\n\t\tthis.df.options = 'HTML';\n\t\tthis._super();\n\t},\n\tupdate_preview() {\n\t\tif (!this.markdown_preview) return;\n\t\tlet value = this.get_value() || '';\n\t\tvalue = frappe.dom.remove_script_and_style(value);\n\t\tthis.markdown_preview.html(value);\n\t}\n});\n","frappe.ui.form.ControlHeading = frappe.ui.form.ControlHTML.extend({\n\tget_content: function() {\n\t\treturn \"

    \" + __(this.df.label) + \"

    \";\n\t}\n});\n","import Awesomplete from 'awesomplete';\n\nfrappe.ui.form.ControlAutocomplete = frappe.ui.form.ControlData.extend({\n\ttrigger_change_on_input_event: false,\n\tmake_input() {\n\t\tthis._super();\n\t\tthis.setup_awesomplete();\n\t\tthis.set_options();\n\t},\n\n\tset_options() {\n\t\tif (this.df.options) {\n\t\t\tlet options = this.df.options || [];\n\t\t\tthis._data = this.parse_options(options);\n\t\t}\n\t},\n\n\tget_awesomplete_settings() {\n\t\tvar me = this;\n\t\treturn {\n\t\t\tminChars: 0,\n\t\t\tmaxItems: this.df.max_items || 99,\n\t\t\tautoFirst: true,\n\t\t\tlist: this.get_data(),\n\t\t\tdata: function(item) {\n\t\t\t\tif (!(item instanceof Object)) {\n\t\t\t\t\tvar d = { value: item };\n\t\t\t\t\titem = d;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tlabel: item.label || item.value,\n\t\t\t\t\tvalue: item.value\n\t\t\t\t};\n\t\t\t},\n\t\t\tfilter: function(item, input) {\n\t\t\t\tlet hay = item.label + item.value;\n\t\t\t\treturn Awesomplete.FILTER_CONTAINS(hay, input);\n\t\t\t},\n\t\t\titem: function(item) {\n\t\t\t\tvar d = this.get_item(item.value);\n\t\t\t\tif (!d) {\n\t\t\t\t\td = item;\n\t\t\t\t}\n\n\t\t\t\tif (!d.label) {\n\t\t\t\t\td.label = d.value;\n\t\t\t\t}\n\n\t\t\t\tvar _label = me.translate_values ? __(d.label) : d.label;\n\t\t\t\tvar html = '' + _label + '';\n\t\t\t\tif (d.description) {\n\t\t\t\t\thtml += '
    ' + __(d.description) + '';\n\t\t\t\t}\n\n\t\t\t\treturn $('
  • ')\n\t\t\t\t\t.data('item.autocomplete', d)\n\t\t\t\t\t.prop('aria-selected', 'false')\n\t\t\t\t\t.html('

    ' + html + '

    ')\n\t\t\t\t\t.get(0);\n\t\t\t},\n\t\t\tsort: () => {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t};\n\t},\n\n\tsetup_awesomplete() {\n\t\tthis.awesomplete = new Awesomplete(\n\t\t\tthis.input,\n\t\t\tthis.get_awesomplete_settings()\n\t\t);\n\n\t\t$(this.input_area)\n\t\t\t.find('.awesomplete ul')\n\t\t\t.css('min-width', '100%');\n\n\t\tthis.$input.on(\n\t\t\t'input',\n\t\t\tfrappe.utils.debounce(() => {\n\t\t\t\tthis.awesomplete.list = this.get_data();\n\t\t\t}, 500)\n\t\t);\n\n\t\tthis.$input.on('focus', () => {\n\t\t\tif (!this.$input.val()) {\n\t\t\t\tthis.$input.val('');\n\t\t\t\tthis.$input.trigger('input');\n\t\t\t}\n\t\t});\n\n\t\tthis.$input.on('awesomplete-selectcomplete', () => {\n\t\t\tthis.$input.trigger('change');\n\t\t});\n\t},\n\n\tvalidate(value) {\n\t\tif (this.df.ignore_validation) {\n\t\t\treturn value || '';\n\t\t}\n\t\tlet valid_values = this.awesomplete._list.map(d => d.value);\n\t\tif (!valid_values.length) {\n\t\t\treturn value;\n\t\t}\n\t\tif (valid_values.includes(value)) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t},\n\n\tparse_options(options) {\n\t\tif (typeof options === 'string') {\n\t\t\toptions = options.split('\\n');\n\t\t}\n\t\tif (typeof options[0] === 'string') {\n\t\t\toptions = options.map(o => ({ label: o, value: o }));\n\t\t}\n\t\treturn options;\n\t},\n\n\tget_data() {\n\t\treturn this._data || [];\n\t},\n\n\tset_data(data) {\n\t\tdata = this.parse_options(data);\n\t\tif (this.awesomplete) {\n\t\t\tthis.awesomplete.list = data;\n\t\t}\n\t\tthis._data = data;\n\t}\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Barcode = function Barcode(data, options) {\n\t_classCallCheck(this, Barcode);\n\n\tthis.data = data;\n\tthis.text = options.text || data;\n\tthis.options = options;\n};\n\nexports.default = Barcode;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.CODE39 = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/Code_39#Encoding\n\nvar CODE39 = function (_Barcode) {\n\t_inherits(CODE39, _Barcode);\n\n\tfunction CODE39(data, options) {\n\t\t_classCallCheck(this, CODE39);\n\n\t\tdata = data.toUpperCase();\n\n\t\t// Calculate mod43 checksum if enabled\n\t\tif (options.mod43) {\n\t\t\tdata += getCharacter(mod43checksum(data));\n\t\t}\n\n\t\treturn _possibleConstructorReturn(this, (CODE39.__proto__ || Object.getPrototypeOf(CODE39)).call(this, data, options));\n\t}\n\n\t_createClass(CODE39, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\t// First character is always a *\n\t\t\tvar result = getEncoding(\"*\");\n\n\t\t\t// Take every character and add the binary representation to the result\n\t\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t\tresult += getEncoding(this.data[i]) + \"0\";\n\t\t\t}\n\n\t\t\t// Last character is always a *\n\t\t\tresult += getEncoding(\"*\");\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9A-Z\\-\\.\\ \\$\\/\\+\\%]+$/) !== -1;\n\t\t}\n\t}]);\n\n\treturn CODE39;\n}(_Barcode3.default);\n\n// All characters. The position in the array is the (checksum) value\n\n\nvar characters = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"-\", \".\", \" \", \"$\", \"/\", \"+\", \"%\", \"*\"];\n\n// The decimal representation of the characters, is converted to the\n// corresponding binary with the getEncoding function\nvar encodings = [20957, 29783, 23639, 30485, 20951, 29813, 23669, 20855, 29789, 23645, 29975, 23831, 30533, 22295, 30149, 24005, 21623, 29981, 23837, 22301, 30023, 23879, 30545, 22343, 30161, 24017, 21959, 30065, 23921, 22385, 29015, 18263, 29141, 17879, 29045, 18293, 17783, 29021, 18269, 17477, 17489, 17681, 20753, 35770];\n\n// Get the binary representation of a character by converting the encodings\n// from decimal to binary\nfunction getEncoding(character) {\n\treturn getBinary(characterValue(character));\n}\n\nfunction getBinary(characterValue) {\n\treturn encodings[characterValue].toString(2);\n}\n\nfunction getCharacter(characterValue) {\n\treturn characters[characterValue];\n}\n\nfunction characterValue(character) {\n\treturn characters.indexOf(character);\n}\n\nfunction mod43checksum(data) {\n\tvar checksum = 0;\n\tfor (var i = 0; i < data.length; i++) {\n\t\tchecksum += characterValue(data[i]);\n\t}\n\n\tchecksum = checksum % 43;\n\treturn checksum;\n}\n\nexports.CODE39 = CODE39;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _SET_BY_CODE;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// constants for internal usage\nvar SET_A = exports.SET_A = 0;\nvar SET_B = exports.SET_B = 1;\nvar SET_C = exports.SET_C = 2;\n\n// Special characters\nvar SHIFT = exports.SHIFT = 98;\nvar START_A = exports.START_A = 103;\nvar START_B = exports.START_B = 104;\nvar START_C = exports.START_C = 105;\nvar MODULO = exports.MODULO = 103;\nvar STOP = exports.STOP = 106;\nvar FNC1 = exports.FNC1 = 207;\n\n// Get set by start code\nvar SET_BY_CODE = exports.SET_BY_CODE = (_SET_BY_CODE = {}, _defineProperty(_SET_BY_CODE, START_A, SET_A), _defineProperty(_SET_BY_CODE, START_B, SET_B), _defineProperty(_SET_BY_CODE, START_C, SET_C), _SET_BY_CODE);\n\n// Get next set by code\nvar SWAP = exports.SWAP = {\n\t101: SET_A,\n\t100: SET_B,\n\t99: SET_C\n};\n\nvar A_START_CHAR = exports.A_START_CHAR = String.fromCharCode(208); // START_A + 105\nvar B_START_CHAR = exports.B_START_CHAR = String.fromCharCode(209); // START_B + 105\nvar C_START_CHAR = exports.C_START_CHAR = String.fromCharCode(210); // START_C + 105\n\n// 128A (Code Set A)\n// ASCII characters 00 to 95 (0–9, A–Z and control codes), special characters, and FNC 1–4\nvar A_CHARS = exports.A_CHARS = \"[\\x00-\\x5F\\xC8-\\xCF]\";\n\n// 128B (Code Set B)\n// ASCII characters 32 to 127 (0–9, A–Z, a–z), special characters, and FNC 1–4\nvar B_CHARS = exports.B_CHARS = \"[\\x20-\\x7F\\xC8-\\xCF]\";\n\n// 128C (Code Set C)\n// 00–99 (encodes two digits with a single code point) and FNC1\nvar C_CHARS = exports.C_CHARS = \"(\\xCF*[0-9]{2}\\xCF*)\";\n\n// CODE128 includes 107 symbols:\n// 103 data symbols, 3 start symbols (A, B and C), and 1 stop symbol (the last one)\n// Each symbol consist of three black bars (1) and three white spaces (0).\nvar BARS = exports.BARS = [11011001100, 11001101100, 11001100110, 10010011000, 10010001100, 10001001100, 10011001000, 10011000100, 10001100100, 11001001000, 11001000100, 11000100100, 10110011100, 10011011100, 10011001110, 10111001100, 10011101100, 10011100110, 11001110010, 11001011100, 11001001110, 11011100100, 11001110100, 11101101110, 11101001100, 11100101100, 11100100110, 11101100100, 11100110100, 11100110010, 11011011000, 11011000110, 11000110110, 10100011000, 10001011000, 10001000110, 10110001000, 10001101000, 10001100010, 11010001000, 11000101000, 11000100010, 10110111000, 10110001110, 10001101110, 10111011000, 10111000110, 10001110110, 11101110110, 11010001110, 11000101110, 11011101000, 11011100010, 11011101110, 11101011000, 11101000110, 11100010110, 11101101000, 11101100010, 11100011010, 11101111010, 11001000010, 11110001010, 10100110000, 10100001100, 10010110000, 10010000110, 10000101100, 10000100110, 10110010000, 10110000100, 10011010000, 10011000010, 10000110100, 10000110010, 11000010010, 11001010000, 11110111010, 11000010100, 10001111010, 10100111100, 10010111100, 10010011110, 10111100100, 10011110100, 10011110010, 11110100100, 11110010100, 11110010010, 11011011110, 11011110110, 11110110110, 10101111000, 10100011110, 10001011110, 10111101000, 10111100010, 11110101000, 11110100010, 10111011110, 10111101110, 11101011110, 11110101110, 11010000100, 11010010000, 11010011100, 1100011101011];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require('../Barcode.js');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nvar _constants = require('./constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// This is the master class,\n// it does require the start code to be included in the string\nvar CODE128 = function (_Barcode) {\n\t_inherits(CODE128, _Barcode);\n\n\tfunction CODE128(data, options) {\n\t\t_classCallCheck(this, CODE128);\n\n\t\t// Get array of ascii codes from data\n\t\tvar _this = _possibleConstructorReturn(this, (CODE128.__proto__ || Object.getPrototypeOf(CODE128)).call(this, data.substring(1), options));\n\n\t\t_this.bytes = data.split('').map(function (char) {\n\t\t\treturn char.charCodeAt(0);\n\t\t});\n\t\treturn _this;\n\t}\n\n\t_createClass(CODE128, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\t// ASCII value ranges 0-127, 200-211\n\t\t\treturn (/^[\\x00-\\x7F\\xC8-\\xD3]+$/.test(this.data)\n\t\t\t);\n\t\t}\n\n\t\t// The public encoding function\n\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tvar bytes = this.bytes;\n\t\t\t// Remove the start code from the bytes and set its index\n\t\t\tvar startIndex = bytes.shift() - 105;\n\t\t\t// Get start set by index\n\t\t\tvar startSet = _constants.SET_BY_CODE[startIndex];\n\n\t\t\tif (startSet === undefined) {\n\t\t\t\tthrow new RangeError('The encoding does not start with a start character.');\n\t\t\t}\n\n\t\t\tif (this.shouldEncodeAsEan128() === true) {\n\t\t\t\tbytes.unshift(_constants.FNC1);\n\t\t\t}\n\n\t\t\t// Start encode with the right type\n\t\t\tvar encodingResult = CODE128.next(bytes, 1, startSet);\n\n\t\t\treturn {\n\t\t\t\ttext: this.text === this.data ? this.text.replace(/[^\\x20-\\x7E]/g, '') : this.text,\n\t\t\t\tdata:\n\t\t\t\t// Add the start bits\n\t\t\t\tCODE128.getBar(startIndex) +\n\t\t\t\t// Add the encoded bits\n\t\t\t\tencodingResult.result +\n\t\t\t\t// Add the checksum\n\t\t\t\tCODE128.getBar((encodingResult.checksum + startIndex) % _constants.MODULO) +\n\t\t\t\t// Add the end bits\n\t\t\t\tCODE128.getBar(_constants.STOP)\n\t\t\t};\n\t\t}\n\n\t\t// GS1-128/EAN-128\n\n\t}, {\n\t\tkey: 'shouldEncodeAsEan128',\n\t\tvalue: function shouldEncodeAsEan128() {\n\t\t\tvar isEAN128 = this.options.ean128 || false;\n\t\t\tif (typeof isEAN128 === 'string') {\n\t\t\t\tisEAN128 = isEAN128.toLowerCase() === 'true';\n\t\t\t}\n\t\t\treturn isEAN128;\n\t\t}\n\n\t\t// Get a bar symbol by index\n\n\t}], [{\n\t\tkey: 'getBar',\n\t\tvalue: function getBar(index) {\n\t\t\treturn _constants.BARS[index] ? _constants.BARS[index].toString() : '';\n\t\t}\n\n\t\t// Correct an index by a set and shift it from the bytes array\n\n\t}, {\n\t\tkey: 'correctIndex',\n\t\tvalue: function correctIndex(bytes, set) {\n\t\t\tif (set === _constants.SET_A) {\n\t\t\t\tvar charCode = bytes.shift();\n\t\t\t\treturn charCode < 32 ? charCode + 64 : charCode - 32;\n\t\t\t} else if (set === _constants.SET_B) {\n\t\t\t\treturn bytes.shift() - 32;\n\t\t\t} else {\n\t\t\t\treturn (bytes.shift() - 48) * 10 + bytes.shift() - 48;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'next',\n\t\tvalue: function next(bytes, pos, set) {\n\t\t\tif (!bytes.length) {\n\t\t\t\treturn { result: '', checksum: 0 };\n\t\t\t}\n\n\t\t\tvar nextCode = void 0,\n\t\t\t index = void 0;\n\n\t\t\t// Special characters\n\t\t\tif (bytes[0] >= 200) {\n\t\t\t\tindex = bytes.shift() - 105;\n\t\t\t\tvar nextSet = _constants.SWAP[index];\n\n\t\t\t\t// Swap to other set\n\t\t\t\tif (nextSet !== undefined) {\n\t\t\t\t\tnextCode = CODE128.next(bytes, pos + 1, nextSet);\n\t\t\t\t}\n\t\t\t\t// Continue on current set but encode a special character\n\t\t\t\telse {\n\t\t\t\t\t\t// Shift\n\t\t\t\t\t\tif ((set === _constants.SET_A || set === _constants.SET_B) && index === _constants.SHIFT) {\n\t\t\t\t\t\t\t// Convert the next character so that is encoded correctly\n\t\t\t\t\t\t\tbytes[0] = set === _constants.SET_A ? bytes[0] > 95 ? bytes[0] - 96 : bytes[0] : bytes[0] < 32 ? bytes[0] + 96 : bytes[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnextCode = CODE128.next(bytes, pos + 1, set);\n\t\t\t\t\t}\n\t\t\t}\n\t\t\t// Continue encoding\n\t\t\telse {\n\t\t\t\t\tindex = CODE128.correctIndex(bytes, set);\n\t\t\t\t\tnextCode = CODE128.next(bytes, pos + 1, set);\n\t\t\t\t}\n\n\t\t\t// Get the correct binary encoding and calculate the weight\n\t\t\tvar enc = CODE128.getBar(index);\n\t\t\tvar weight = index * pos;\n\n\t\t\treturn {\n\t\t\t\tresult: enc + nextCode.result,\n\t\t\t\tchecksum: weight + nextCode.checksum\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn CODE128;\n}(_Barcode3.default);\n\nexports.default = CODE128;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _constants = require('./constants');\n\n// Match Set functions\nvar matchSetALength = function matchSetALength(string) {\n\treturn string.match(new RegExp('^' + _constants.A_CHARS + '*'))[0].length;\n};\nvar matchSetBLength = function matchSetBLength(string) {\n\treturn string.match(new RegExp('^' + _constants.B_CHARS + '*'))[0].length;\n};\nvar matchSetC = function matchSetC(string) {\n\treturn string.match(new RegExp('^' + _constants.C_CHARS + '*'))[0];\n};\n\n// CODE128A or CODE128B\nfunction autoSelectFromAB(string, isA) {\n\tvar ranges = isA ? _constants.A_CHARS : _constants.B_CHARS;\n\tvar untilC = string.match(new RegExp('^(' + ranges + '+?)(([0-9]{2}){2,})([^0-9]|$)'));\n\n\tif (untilC) {\n\t\treturn untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length));\n\t}\n\n\tvar chars = string.match(new RegExp('^' + ranges + '+'))[0];\n\n\tif (chars.length === string.length) {\n\t\treturn string;\n\t}\n\n\treturn chars + String.fromCharCode(isA ? 205 : 206) + autoSelectFromAB(string.substring(chars.length), !isA);\n}\n\n// CODE128C\nfunction autoSelectFromC(string) {\n\tvar cMatch = matchSetC(string);\n\tvar length = cMatch.length;\n\n\tif (length === string.length) {\n\t\treturn string;\n\t}\n\n\tstring = string.substring(length);\n\n\t// Select A/B depending on the longest match\n\tvar isA = matchSetALength(string) >= matchSetBLength(string);\n\treturn cMatch + String.fromCharCode(isA ? 206 : 205) + autoSelectFromAB(string, isA);\n}\n\n// Detect Code Set (A, B or C) and format the string\n\nexports.default = function (string) {\n\tvar newString = void 0;\n\tvar cLength = matchSetC(string).length;\n\n\t// Select 128C if the string start with enough digits\n\tif (cLength >= 2) {\n\t\tnewString = _constants.C_START_CHAR + autoSelectFromC(string);\n\t} else {\n\t\t// Select A/B depending on the longest match\n\t\tvar isA = matchSetALength(string) > matchSetBLength(string);\n\t\tnewString = (isA ? _constants.A_START_CHAR : _constants.B_START_CHAR) + autoSelectFromAB(string, isA);\n\t}\n\n\treturn newString.replace(/[\\xCD\\xCE]([^])[\\xCD\\xCE]/, // Any sequence between 205 and 206 characters\n\tfunction (match, char) {\n\t\treturn String.fromCharCode(203) + char;\n\t});\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _CODE2 = require('./CODE128');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _auto = require('./auto');\n\nvar _auto2 = _interopRequireDefault(_auto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CODE128AUTO = function (_CODE) {\n\t_inherits(CODE128AUTO, _CODE);\n\n\tfunction CODE128AUTO(data, options) {\n\t\t_classCallCheck(this, CODE128AUTO);\n\n\t\t// ASCII value ranges 0-127, 200-211\n\t\tif (/^[\\x00-\\x7F\\xC8-\\xD3]+$/.test(data)) {\n\t\t\tvar _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, (0, _auto2.default)(data), options));\n\t\t} else {\n\t\t\tvar _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, data, options));\n\t\t}\n\t\treturn _possibleConstructorReturn(_this);\n\t}\n\n\treturn CODE128AUTO;\n}(_CODE3.default);\n\nexports.default = CODE128AUTO;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _CODE2 = require('./CODE128.js');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _constants = require('./constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CODE128A = function (_CODE) {\n\t_inherits(CODE128A, _CODE);\n\n\tfunction CODE128A(string, options) {\n\t\t_classCallCheck(this, CODE128A);\n\n\t\treturn _possibleConstructorReturn(this, (CODE128A.__proto__ || Object.getPrototypeOf(CODE128A)).call(this, _constants.A_START_CHAR + string, options));\n\t}\n\n\t_createClass(CODE128A, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn new RegExp('^' + _constants.A_CHARS + '+$').test(this.data);\n\t\t}\n\t}]);\n\n\treturn CODE128A;\n}(_CODE3.default);\n\nexports.default = CODE128A;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _CODE2 = require('./CODE128.js');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _constants = require('./constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CODE128B = function (_CODE) {\n\t_inherits(CODE128B, _CODE);\n\n\tfunction CODE128B(string, options) {\n\t\t_classCallCheck(this, CODE128B);\n\n\t\treturn _possibleConstructorReturn(this, (CODE128B.__proto__ || Object.getPrototypeOf(CODE128B)).call(this, _constants.B_START_CHAR + string, options));\n\t}\n\n\t_createClass(CODE128B, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn new RegExp('^' + _constants.B_CHARS + '+$').test(this.data);\n\t\t}\n\t}]);\n\n\treturn CODE128B;\n}(_CODE3.default);\n\nexports.default = CODE128B;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _CODE2 = require('./CODE128.js');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _constants = require('./constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CODE128C = function (_CODE) {\n\t_inherits(CODE128C, _CODE);\n\n\tfunction CODE128C(string, options) {\n\t\t_classCallCheck(this, CODE128C);\n\n\t\treturn _possibleConstructorReturn(this, (CODE128C.__proto__ || Object.getPrototypeOf(CODE128C)).call(this, _constants.C_START_CHAR + string, options));\n\t}\n\n\t_createClass(CODE128C, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn new RegExp('^' + _constants.C_CHARS + '+$').test(this.data);\n\t\t}\n\t}]);\n\n\treturn CODE128C;\n}(_CODE3.default);\n\nexports.default = CODE128C;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CODE128C = exports.CODE128B = exports.CODE128A = exports.CODE128 = undefined;\n\nvar _CODE128_AUTO = require('./CODE128_AUTO.js');\n\nvar _CODE128_AUTO2 = _interopRequireDefault(_CODE128_AUTO);\n\nvar _CODE128A = require('./CODE128A.js');\n\nvar _CODE128A2 = _interopRequireDefault(_CODE128A);\n\nvar _CODE128B = require('./CODE128B.js');\n\nvar _CODE128B2 = _interopRequireDefault(_CODE128B);\n\nvar _CODE128C = require('./CODE128C.js');\n\nvar _CODE128C2 = _interopRequireDefault(_CODE128C);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.CODE128 = _CODE128_AUTO2.default;\nexports.CODE128A = _CODE128A2.default;\nexports.CODE128B = _CODE128B2.default;\nexports.CODE128C = _CODE128C2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n// Standard start end and middle bits\nvar SIDE_BIN = exports.SIDE_BIN = '101';\nvar MIDDLE_BIN = exports.MIDDLE_BIN = '01010';\n\nvar BINARIES = exports.BINARIES = {\n\t'L': [// The L (left) type of encoding\n\t'0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'],\n\t'G': [// The G type of encoding\n\t'0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'],\n\t'R': [// The R (right) type of encoding\n\t'1110010', '1100110', '1101100', '1000010', '1011100', '1001110', '1010000', '1000100', '1001000', '1110100'],\n\t'O': [// The O (odd) encoding for UPC-E\n\t'0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'],\n\t'E': [// The E (even) encoding for UPC-E\n\t'0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111']\n};\n\n// Define the EAN-2 structure\nvar EAN2_STRUCTURE = exports.EAN2_STRUCTURE = ['LL', 'LG', 'GL', 'GG'];\n\n// Define the EAN-5 structure\nvar EAN5_STRUCTURE = exports.EAN5_STRUCTURE = ['GGLLL', 'GLGLL', 'GLLGL', 'GLLLG', 'LGGLL', 'LLGGL', 'LLLGG', 'LGLGL', 'LGLLG', 'LLGLG'];\n\n// Define the EAN-13 structure\nvar EAN13_STRUCTURE = exports.EAN13_STRUCTURE = ['LLLLLL', 'LLGLGG', 'LLGGLG', 'LLGGGL', 'LGLLGG', 'LGGLLG', 'LGGGLL', 'LGLGLG', 'LGLGGL', 'LGGLGL'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _constants = require('./constants');\n\n// Encode data string\nvar encode = function encode(data, structure, separator) {\n\tvar encoded = data.split('').map(function (val, idx) {\n\t\treturn _constants.BINARIES[structure[idx]];\n\t}).map(function (val, idx) {\n\t\treturn val ? val[data[idx]] : '';\n\t});\n\n\tif (separator) {\n\t\tvar last = data.length - 1;\n\t\tencoded = encoded.map(function (val, idx) {\n\t\t\treturn idx < last ? val + separator : val;\n\t\t});\n\t}\n\n\treturn encoded.join('');\n};\n\nexports.default = encode;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = require('./constants');\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Base class for EAN8 & EAN13\nvar EAN = function (_Barcode) {\n\t_inherits(EAN, _Barcode);\n\n\tfunction EAN(data, options) {\n\t\t_classCallCheck(this, EAN);\n\n\t\t// Make sure the font is not bigger than the space between the guard bars\n\t\tvar _this = _possibleConstructorReturn(this, (EAN.__proto__ || Object.getPrototypeOf(EAN)).call(this, data, options));\n\n\t\t_this.fontSize = !options.flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize;\n\n\t\t// Make the guard bars go down half the way of the text\n\t\t_this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n\t\treturn _this;\n\t}\n\n\t_createClass(EAN, [{\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\treturn this.options.flat ? this.encodeFlat() : this.encodeGuarded();\n\t\t}\n\t}, {\n\t\tkey: 'leftText',\n\t\tvalue: function leftText(from, to) {\n\t\t\treturn this.text.substr(from, to);\n\t\t}\n\t}, {\n\t\tkey: 'leftEncode',\n\t\tvalue: function leftEncode(data, structure) {\n\t\t\treturn (0, _encoder2.default)(data, structure);\n\t\t}\n\t}, {\n\t\tkey: 'rightText',\n\t\tvalue: function rightText(from, to) {\n\t\t\treturn this.text.substr(from, to);\n\t\t}\n\t}, {\n\t\tkey: 'rightEncode',\n\t\tvalue: function rightEncode(data, structure) {\n\t\t\treturn (0, _encoder2.default)(data, structure);\n\t\t}\n\t}, {\n\t\tkey: 'encodeGuarded',\n\t\tvalue: function encodeGuarded() {\n\t\t\tvar textOptions = { fontSize: this.fontSize };\n\t\t\tvar guardOptions = { height: this.guardHeight };\n\n\t\t\treturn [{ data: _constants.SIDE_BIN, options: guardOptions }, { data: this.leftEncode(), text: this.leftText(), options: textOptions }, { data: _constants.MIDDLE_BIN, options: guardOptions }, { data: this.rightEncode(), text: this.rightText(), options: textOptions }, { data: _constants.SIDE_BIN, options: guardOptions }];\n\t\t}\n\t}, {\n\t\tkey: 'encodeFlat',\n\t\tvalue: function encodeFlat() {\n\t\t\tvar data = [_constants.SIDE_BIN, this.leftEncode(), _constants.MIDDLE_BIN, this.rightEncode(), _constants.SIDE_BIN];\n\n\t\t\treturn {\n\t\t\t\tdata: data.join(''),\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn EAN;\n}(_Barcode3.default);\n\nexports.default = EAN;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _constants = require('./constants');\n\nvar _EAN2 = require('./EAN');\n\nvar _EAN3 = _interopRequireDefault(_EAN2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Binary_encoding_of_data_digits_into_EAN-13_barcode\n\n// Calculate the checksum digit\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit\nvar checksum = function checksum(number) {\n\tvar res = number.substr(0, 12).split('').map(function (n) {\n\t\treturn +n;\n\t}).reduce(function (sum, a, idx) {\n\t\treturn idx % 2 ? sum + a * 3 : sum + a;\n\t}, 0);\n\n\treturn (10 - res % 10) % 10;\n};\n\nvar EAN13 = function (_EAN) {\n\t_inherits(EAN13, _EAN);\n\n\tfunction EAN13(data, options) {\n\t\t_classCallCheck(this, EAN13);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{12}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\n\t\t// Adds a last character to the end of the barcode\n\t\tvar _this = _possibleConstructorReturn(this, (EAN13.__proto__ || Object.getPrototypeOf(EAN13)).call(this, data, options));\n\n\t\t_this.lastChar = options.lastChar;\n\t\treturn _this;\n\t}\n\n\t_createClass(EAN13, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{13}$/) !== -1 && +this.data[12] === checksum(this.data);\n\t\t}\n\t}, {\n\t\tkey: 'leftText',\n\t\tvalue: function leftText() {\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftText', this).call(this, 1, 6);\n\t\t}\n\t}, {\n\t\tkey: 'leftEncode',\n\t\tvalue: function leftEncode() {\n\t\t\tvar data = this.data.substr(1, 6);\n\t\t\tvar structure = _constants.EAN13_STRUCTURE[this.data[0]];\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftEncode', this).call(this, data, structure);\n\t\t}\n\t}, {\n\t\tkey: 'rightText',\n\t\tvalue: function rightText() {\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightText', this).call(this, 7, 6);\n\t\t}\n\t}, {\n\t\tkey: 'rightEncode',\n\t\tvalue: function rightEncode() {\n\t\t\tvar data = this.data.substr(7, 6);\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightEncode', this).call(this, data, 'RRRRRR');\n\t\t}\n\n\t\t// The \"standard\" way of printing EAN13 barcodes with guard bars\n\n\t}, {\n\t\tkey: 'encodeGuarded',\n\t\tvalue: function encodeGuarded() {\n\t\t\tvar data = _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'encodeGuarded', this).call(this);\n\n\t\t\t// Extend data with left digit & last character\n\t\t\tif (this.options.displayValue) {\n\t\t\t\tdata.unshift({\n\t\t\t\t\tdata: '000000000000',\n\t\t\t\t\ttext: this.text.substr(0, 1),\n\t\t\t\t\toptions: { textAlign: 'left', fontSize: this.fontSize }\n\t\t\t\t});\n\n\t\t\t\tif (this.options.lastChar) {\n\t\t\t\t\tdata.push({\n\t\t\t\t\t\tdata: '00'\n\t\t\t\t\t});\n\t\t\t\t\tdata.push({\n\t\t\t\t\t\tdata: '00000',\n\t\t\t\t\t\ttext: this.options.lastChar,\n\t\t\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\t}]);\n\n\treturn EAN13;\n}(_EAN3.default);\n\nexports.default = EAN13;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _EAN2 = require('./EAN');\n\nvar _EAN3 = _interopRequireDefault(_EAN2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// http://www.barcodeisland.com/ean8.phtml\n\n// Calculate the checksum digit\nvar checksum = function checksum(number) {\n\tvar res = number.substr(0, 7).split('').map(function (n) {\n\t\treturn +n;\n\t}).reduce(function (sum, a, idx) {\n\t\treturn idx % 2 ? sum + a : sum + a * 3;\n\t}, 0);\n\n\treturn (10 - res % 10) % 10;\n};\n\nvar EAN8 = function (_EAN) {\n\t_inherits(EAN8, _EAN);\n\n\tfunction EAN8(data, options) {\n\t\t_classCallCheck(this, EAN8);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{7}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\n\t\treturn _possibleConstructorReturn(this, (EAN8.__proto__ || Object.getPrototypeOf(EAN8)).call(this, data, options));\n\t}\n\n\t_createClass(EAN8, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{8}$/) !== -1 && +this.data[7] === checksum(this.data);\n\t\t}\n\t}, {\n\t\tkey: 'leftText',\n\t\tvalue: function leftText() {\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftText', this).call(this, 0, 4);\n\t\t}\n\t}, {\n\t\tkey: 'leftEncode',\n\t\tvalue: function leftEncode() {\n\t\t\tvar data = this.data.substr(0, 4);\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftEncode', this).call(this, data, 'LLLL');\n\t\t}\n\t}, {\n\t\tkey: 'rightText',\n\t\tvalue: function rightText() {\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightText', this).call(this, 4, 4);\n\t\t}\n\t}, {\n\t\tkey: 'rightEncode',\n\t\tvalue: function rightEncode() {\n\t\t\tvar data = this.data.substr(4, 4);\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightEncode', this).call(this, data, 'RRRR');\n\t\t}\n\t}]);\n\n\treturn EAN8;\n}(_EAN3.default);\n\nexports.default = EAN8;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = require('./constants');\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/EAN_5#Encoding\n\nvar checksum = function checksum(data) {\n\tvar result = data.split('').map(function (n) {\n\t\treturn +n;\n\t}).reduce(function (sum, a, idx) {\n\t\treturn idx % 2 ? sum + a * 9 : sum + a * 3;\n\t}, 0);\n\treturn result % 10;\n};\n\nvar EAN5 = function (_Barcode) {\n\t_inherits(EAN5, _Barcode);\n\n\tfunction EAN5(data, options) {\n\t\t_classCallCheck(this, EAN5);\n\n\t\treturn _possibleConstructorReturn(this, (EAN5.__proto__ || Object.getPrototypeOf(EAN5)).call(this, data, options));\n\t}\n\n\t_createClass(EAN5, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{5}$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tvar structure = _constants.EAN5_STRUCTURE[checksum(this.data)];\n\t\t\treturn {\n\t\t\t\tdata: '1011' + (0, _encoder2.default)(this.data, structure, '01'),\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn EAN5;\n}(_Barcode3.default);\n\nexports.default = EAN5;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = require('./constants');\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/EAN_2#Encoding\n\nvar EAN2 = function (_Barcode) {\n\t_inherits(EAN2, _Barcode);\n\n\tfunction EAN2(data, options) {\n\t\t_classCallCheck(this, EAN2);\n\n\t\treturn _possibleConstructorReturn(this, (EAN2.__proto__ || Object.getPrototypeOf(EAN2)).call(this, data, options));\n\t}\n\n\t_createClass(EAN2, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{2}$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\t// Choose the structure based on the number mod 4\n\t\t\tvar structure = _constants.EAN2_STRUCTURE[parseInt(this.data) % 4];\n\t\t\treturn {\n\t\t\t\t// Start bits + Encode the two digits with 01 in between\n\t\t\t\tdata: '1011' + (0, _encoder2.default)(this.data, structure, '01'),\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn EAN2;\n}(_Barcode3.default);\n\nexports.default = EAN2;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.checksum = checksum;\n\nvar _encoder = require(\"./encoder\");\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding\n\nvar UPC = function (_Barcode) {\n\t_inherits(UPC, _Barcode);\n\n\tfunction UPC(data, options) {\n\t\t_classCallCheck(this, UPC);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{11}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\n\t\tvar _this = _possibleConstructorReturn(this, (UPC.__proto__ || Object.getPrototypeOf(UPC)).call(this, data, options));\n\n\t\t_this.displayValue = options.displayValue;\n\n\t\t// Make sure the font is not bigger than the space between the guard bars\n\t\tif (options.fontSize > options.width * 10) {\n\t\t\t_this.fontSize = options.width * 10;\n\t\t} else {\n\t\t\t_this.fontSize = options.fontSize;\n\t\t}\n\n\t\t// Make the guard bars go down half the way of the text\n\t\t_this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n\t\treturn _this;\n\t}\n\n\t_createClass(UPC, [{\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{12}$/) !== -1 && this.data[11] == checksum(this.data);\n\t\t}\n\t}, {\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\tif (this.options.flat) {\n\t\t\t\treturn this.flatEncoding();\n\t\t\t} else {\n\t\t\t\treturn this.guardedEncoding();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"flatEncoding\",\n\t\tvalue: function flatEncoding() {\n\t\t\tvar result = \"\";\n\n\t\t\tresult += \"101\";\n\t\t\tresult += (0, _encoder2.default)(this.data.substr(0, 6), \"LLLLLL\");\n\t\t\tresult += \"01010\";\n\t\t\tresult += (0, _encoder2.default)(this.data.substr(6, 6), \"RRRRRR\");\n\t\t\tresult += \"101\";\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"guardedEncoding\",\n\t\tvalue: function guardedEncoding() {\n\t\t\tvar result = [];\n\n\t\t\t// Add the first digit\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text.substr(0, 1),\n\t\t\t\t\toptions: { textAlign: \"left\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add the guard bars\n\t\t\tresult.push({\n\t\t\t\tdata: \"101\" + (0, _encoder2.default)(this.data[0], \"L\"),\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the left side\n\t\t\tresult.push({\n\t\t\t\tdata: (0, _encoder2.default)(this.data.substr(1, 5), \"LLLLL\"),\n\t\t\t\ttext: this.text.substr(1, 5),\n\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t});\n\n\t\t\t// Add the middle bits\n\t\t\tresult.push({\n\t\t\t\tdata: \"01010\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the right side\n\t\t\tresult.push({\n\t\t\t\tdata: (0, _encoder2.default)(this.data.substr(6, 5), \"RRRRR\"),\n\t\t\t\ttext: this.text.substr(6, 5),\n\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t});\n\n\t\t\t// Add the end bits\n\t\t\tresult.push({\n\t\t\t\tdata: (0, _encoder2.default)(this.data[11], \"R\") + \"101\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the last digit\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text.substr(11, 1),\n\t\t\t\t\toptions: { textAlign: \"right\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t}]);\n\n\treturn UPC;\n}(_Barcode3.default);\n\n// Calulate the checksum digit\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit\n\n\nfunction checksum(number) {\n\tvar result = 0;\n\n\tvar i;\n\tfor (i = 1; i < 11; i += 2) {\n\t\tresult += parseInt(number[i]);\n\t}\n\tfor (i = 0; i < 11; i += 2) {\n\t\tresult += parseInt(number[i]) * 3;\n\t}\n\n\treturn (10 - result % 10) % 10;\n}\n\nexports.default = UPC;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode.js');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nvar _UPC = require('./UPC.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding\n//\n// UPC-E documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E\n\nvar EXPANSIONS = [\"XX00000XXX\", \"XX10000XXX\", \"XX20000XXX\", \"XXX00000XX\", \"XXXX00000X\", \"XXXXX00005\", \"XXXXX00006\", \"XXXXX00007\", \"XXXXX00008\", \"XXXXX00009\"];\n\nvar PARITIES = [[\"EEEOOO\", \"OOOEEE\"], [\"EEOEOO\", \"OOEOEE\"], [\"EEOOEO\", \"OOEEOE\"], [\"EEOOOE\", \"OOEEEO\"], [\"EOEEOO\", \"OEOOEE\"], [\"EOOEEO\", \"OEEOOE\"], [\"EOOOEE\", \"OEEEOO\"], [\"EOEOEO\", \"OEOEOE\"], [\"EOEOOE\", \"OEOEEO\"], [\"EOOEOE\", \"OEEOEO\"]];\n\nvar UPCE = function (_Barcode) {\n\t_inherits(UPCE, _Barcode);\n\n\tfunction UPCE(data, options) {\n\t\t_classCallCheck(this, UPCE);\n\n\t\tvar _this = _possibleConstructorReturn(this, (UPCE.__proto__ || Object.getPrototypeOf(UPCE)).call(this, data, options));\n\t\t// Code may be 6 or 8 digits;\n\t\t// A 7 digit code is ambiguous as to whether the extra digit\n\t\t// is a UPC-A check or number system digit.\n\n\n\t\t_this.isValid = false;\n\t\tif (data.search(/^[0-9]{6}$/) !== -1) {\n\t\t\t_this.middleDigits = data;\n\t\t\t_this.upcA = expandToUPCA(data, \"0\");\n\t\t\t_this.text = options.text || '' + _this.upcA[0] + data + _this.upcA[_this.upcA.length - 1];\n\t\t\t_this.isValid = true;\n\t\t} else if (data.search(/^[01][0-9]{7}$/) !== -1) {\n\t\t\t_this.middleDigits = data.substring(1, data.length - 1);\n\t\t\t_this.upcA = expandToUPCA(_this.middleDigits, data[0]);\n\n\t\t\tif (_this.upcA[_this.upcA.length - 1] === data[data.length - 1]) {\n\t\t\t\t_this.isValid = true;\n\t\t\t} else {\n\t\t\t\t// checksum mismatch\n\t\t\t\treturn _possibleConstructorReturn(_this);\n\t\t\t}\n\t\t} else {\n\t\t\treturn _possibleConstructorReturn(_this);\n\t\t}\n\n\t\t_this.displayValue = options.displayValue;\n\n\t\t// Make sure the font is not bigger than the space between the guard bars\n\t\tif (options.fontSize > options.width * 10) {\n\t\t\t_this.fontSize = options.width * 10;\n\t\t} else {\n\t\t\t_this.fontSize = options.fontSize;\n\t\t}\n\n\t\t// Make the guard bars go down half the way of the text\n\t\t_this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n\t\treturn _this;\n\t}\n\n\t_createClass(UPCE, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.isValid;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tif (this.options.flat) {\n\t\t\t\treturn this.flatEncoding();\n\t\t\t} else {\n\t\t\t\treturn this.guardedEncoding();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'flatEncoding',\n\t\tvalue: function flatEncoding() {\n\t\t\tvar result = \"\";\n\n\t\t\tresult += \"101\";\n\t\t\tresult += this.encodeMiddleDigits();\n\t\t\tresult += \"010101\";\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: 'guardedEncoding',\n\t\tvalue: function guardedEncoding() {\n\t\t\tvar result = [];\n\n\t\t\t// Add the UPC-A number system digit beneath the quiet zone\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text[0],\n\t\t\t\t\toptions: { textAlign: \"left\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add the guard bars\n\t\t\tresult.push({\n\t\t\t\tdata: \"101\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the 6 UPC-E digits\n\t\t\tresult.push({\n\t\t\t\tdata: this.encodeMiddleDigits(),\n\t\t\t\ttext: this.text.substring(1, 7),\n\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t});\n\n\t\t\t// Add the end bits\n\t\t\tresult.push({\n\t\t\t\tdata: \"010101\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the UPC-A check digit beneath the quiet zone\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text[7],\n\t\t\t\t\toptions: { textAlign: \"right\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t}, {\n\t\tkey: 'encodeMiddleDigits',\n\t\tvalue: function encodeMiddleDigits() {\n\t\t\tvar numberSystem = this.upcA[0];\n\t\t\tvar checkDigit = this.upcA[this.upcA.length - 1];\n\t\t\tvar parity = PARITIES[parseInt(checkDigit)][parseInt(numberSystem)];\n\t\t\treturn (0, _encoder2.default)(this.middleDigits, parity);\n\t\t}\n\t}]);\n\n\treturn UPCE;\n}(_Barcode3.default);\n\nfunction expandToUPCA(middleDigits, numberSystem) {\n\tvar lastUpcE = parseInt(middleDigits[middleDigits.length - 1]);\n\tvar expansion = EXPANSIONS[lastUpcE];\n\n\tvar result = \"\";\n\tvar digitIndex = 0;\n\tfor (var i = 0; i < expansion.length; i++) {\n\t\tvar c = expansion[i];\n\t\tif (c === 'X') {\n\t\t\tresult += middleDigits[digitIndex++];\n\t\t} else {\n\t\t\tresult += c;\n\t\t}\n\t}\n\n\tresult = '' + numberSystem + result;\n\treturn '' + result + (0, _UPC.checksum)(result);\n}\n\nexports.default = UPCE;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UPCE = exports.UPC = exports.EAN2 = exports.EAN5 = exports.EAN8 = exports.EAN13 = undefined;\n\nvar _EAN = require('./EAN13.js');\n\nvar _EAN2 = _interopRequireDefault(_EAN);\n\nvar _EAN3 = require('./EAN8.js');\n\nvar _EAN4 = _interopRequireDefault(_EAN3);\n\nvar _EAN5 = require('./EAN5.js');\n\nvar _EAN6 = _interopRequireDefault(_EAN5);\n\nvar _EAN7 = require('./EAN2.js');\n\nvar _EAN8 = _interopRequireDefault(_EAN7);\n\nvar _UPC = require('./UPC.js');\n\nvar _UPC2 = _interopRequireDefault(_UPC);\n\nvar _UPCE = require('./UPCE.js');\n\nvar _UPCE2 = _interopRequireDefault(_UPCE);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.EAN13 = _EAN2.default;\nexports.EAN8 = _EAN4.default;\nexports.EAN5 = _EAN6.default;\nexports.EAN2 = _EAN8.default;\nexports.UPC = _UPC2.default;\nexports.UPCE = _UPCE2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar START_BIN = exports.START_BIN = '1010';\nvar END_BIN = exports.END_BIN = '11101';\n\nvar BINARIES = exports.BINARIES = ['00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = require('./constants');\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ITF = function (_Barcode) {\n\t_inherits(ITF, _Barcode);\n\n\tfunction ITF() {\n\t\t_classCallCheck(this, ITF);\n\n\t\treturn _possibleConstructorReturn(this, (ITF.__proto__ || Object.getPrototypeOf(ITF)).apply(this, arguments));\n\t}\n\n\t_createClass(ITF, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^([0-9]{2})+$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tvar _this2 = this;\n\n\t\t\t// Calculate all the digit pairs\n\t\t\tvar encoded = this.data.match(/.{2}/g).map(function (pair) {\n\t\t\t\treturn _this2.encodePair(pair);\n\t\t\t}).join('');\n\n\t\t\treturn {\n\t\t\t\tdata: _constants.START_BIN + encoded + _constants.END_BIN,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\n\t\t// Calculate the data of a number pair\n\n\t}, {\n\t\tkey: 'encodePair',\n\t\tvalue: function encodePair(pair) {\n\t\t\tvar second = _constants.BINARIES[pair[1]];\n\n\t\t\treturn _constants.BINARIES[pair[0]].split('').map(function (first, idx) {\n\t\t\t\treturn (first === '1' ? '111' : '1') + (second[idx] === '1' ? '000' : '0');\n\t\t\t}).join('');\n\t\t}\n\t}]);\n\n\treturn ITF;\n}(_Barcode3.default);\n\nexports.default = ITF;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ITF2 = require('./ITF');\n\nvar _ITF3 = _interopRequireDefault(_ITF2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Calculate the checksum digit\nvar checksum = function checksum(data) {\n\tvar res = data.substr(0, 13).split('').map(function (num) {\n\t\treturn parseInt(num, 10);\n\t}).reduce(function (sum, n, idx) {\n\t\treturn sum + n * (3 - idx % 2 * 2);\n\t}, 0);\n\n\treturn Math.ceil(res / 10) * 10 - res;\n};\n\nvar ITF14 = function (_ITF) {\n\t_inherits(ITF14, _ITF);\n\n\tfunction ITF14(data, options) {\n\t\t_classCallCheck(this, ITF14);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{13}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\t\treturn _possibleConstructorReturn(this, (ITF14.__proto__ || Object.getPrototypeOf(ITF14)).call(this, data, options));\n\t}\n\n\t_createClass(ITF14, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{14}$/) !== -1 && +this.data[13] === checksum(this.data);\n\t\t}\n\t}]);\n\n\treturn ITF14;\n}(_ITF3.default);\n\nexports.default = ITF14;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ITF14 = exports.ITF = undefined;\n\nvar _ITF = require('./ITF');\n\nvar _ITF2 = _interopRequireDefault(_ITF);\n\nvar _ITF3 = require('./ITF14');\n\nvar _ITF4 = _interopRequireDefault(_ITF3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.ITF = _ITF2.default;\nexports.ITF14 = _ITF4.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation\n// https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup\n\nvar MSI = function (_Barcode) {\n\t_inherits(MSI, _Barcode);\n\n\tfunction MSI(data, options) {\n\t\t_classCallCheck(this, MSI);\n\n\t\treturn _possibleConstructorReturn(this, (MSI.__proto__ || Object.getPrototypeOf(MSI)).call(this, data, options));\n\t}\n\n\t_createClass(MSI, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\t// Start bits\n\t\t\tvar ret = \"110\";\n\n\t\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t\t// Convert the character to binary (always 4 binary digits)\n\t\t\t\tvar digit = parseInt(this.data[i]);\n\t\t\t\tvar bin = digit.toString(2);\n\t\t\t\tbin = addZeroes(bin, 4 - bin.length);\n\n\t\t\t\t// Add 100 for every zero and 110 for every 1\n\t\t\t\tfor (var b = 0; b < bin.length; b++) {\n\t\t\t\t\tret += bin[b] == \"0\" ? \"100\" : \"110\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// End bits\n\t\t\tret += \"1001\";\n\n\t\t\treturn {\n\t\t\t\tdata: ret,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]+$/) !== -1;\n\t\t}\n\t}]);\n\n\treturn MSI;\n}(_Barcode3.default);\n\nfunction addZeroes(number, n) {\n\tfor (var i = 0; i < n; i++) {\n\t\tnumber = \"0\" + number;\n\t}\n\treturn number;\n}\n\nexports.default = MSI;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.mod10 = mod10;\nexports.mod11 = mod11;\nfunction mod10(number) {\n\tvar sum = 0;\n\tfor (var i = 0; i < number.length; i++) {\n\t\tvar n = parseInt(number[i]);\n\t\tif ((i + number.length) % 2 === 0) {\n\t\t\tsum += n;\n\t\t} else {\n\t\t\tsum += n * 2 % 10 + Math.floor(n * 2 / 10);\n\t\t}\n\t}\n\treturn (10 - sum % 10) % 10;\n}\n\nfunction mod11(number) {\n\tvar sum = 0;\n\tvar weights = [2, 3, 4, 5, 6, 7];\n\tfor (var i = 0; i < number.length; i++) {\n\t\tvar n = parseInt(number[number.length - 1 - i]);\n\t\tsum += weights[i % weights.length] * n;\n\t}\n\treturn (11 - sum % 11) % 11;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MSI10 = function (_MSI) {\n\t_inherits(MSI10, _MSI);\n\n\tfunction MSI10(data, options) {\n\t\t_classCallCheck(this, MSI10);\n\n\t\treturn _possibleConstructorReturn(this, (MSI10.__proto__ || Object.getPrototypeOf(MSI10)).call(this, data + (0, _checksums.mod10)(data), options));\n\t}\n\n\treturn MSI10;\n}(_MSI3.default);\n\nexports.default = MSI10;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MSI11 = function (_MSI) {\n\t_inherits(MSI11, _MSI);\n\n\tfunction MSI11(data, options) {\n\t\t_classCallCheck(this, MSI11);\n\n\t\treturn _possibleConstructorReturn(this, (MSI11.__proto__ || Object.getPrototypeOf(MSI11)).call(this, data + (0, _checksums.mod11)(data), options));\n\t}\n\n\treturn MSI11;\n}(_MSI3.default);\n\nexports.default = MSI11;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MSI1010 = function (_MSI) {\n\t_inherits(MSI1010, _MSI);\n\n\tfunction MSI1010(data, options) {\n\t\t_classCallCheck(this, MSI1010);\n\n\t\tdata += (0, _checksums.mod10)(data);\n\t\tdata += (0, _checksums.mod10)(data);\n\t\treturn _possibleConstructorReturn(this, (MSI1010.__proto__ || Object.getPrototypeOf(MSI1010)).call(this, data, options));\n\t}\n\n\treturn MSI1010;\n}(_MSI3.default);\n\nexports.default = MSI1010;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MSI1110 = function (_MSI) {\n\t_inherits(MSI1110, _MSI);\n\n\tfunction MSI1110(data, options) {\n\t\t_classCallCheck(this, MSI1110);\n\n\t\tdata += (0, _checksums.mod11)(data);\n\t\tdata += (0, _checksums.mod10)(data);\n\t\treturn _possibleConstructorReturn(this, (MSI1110.__proto__ || Object.getPrototypeOf(MSI1110)).call(this, data, options));\n\t}\n\n\treturn MSI1110;\n}(_MSI3.default);\n\nexports.default = MSI1110;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MSI1110 = exports.MSI1010 = exports.MSI11 = exports.MSI10 = exports.MSI = undefined;\n\nvar _MSI = require('./MSI.js');\n\nvar _MSI2 = _interopRequireDefault(_MSI);\n\nvar _MSI3 = require('./MSI10.js');\n\nvar _MSI4 = _interopRequireDefault(_MSI3);\n\nvar _MSI5 = require('./MSI11.js');\n\nvar _MSI6 = _interopRequireDefault(_MSI5);\n\nvar _MSI7 = require('./MSI1010.js');\n\nvar _MSI8 = _interopRequireDefault(_MSI7);\n\nvar _MSI9 = require('./MSI1110.js');\n\nvar _MSI10 = _interopRequireDefault(_MSI9);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.MSI = _MSI2.default;\nexports.MSI10 = _MSI4.default;\nexports.MSI11 = _MSI6.default;\nexports.MSI1010 = _MSI8.default;\nexports.MSI1110 = _MSI10.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.pharmacode = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation\n// http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf\n\nvar pharmacode = function (_Barcode) {\n\t_inherits(pharmacode, _Barcode);\n\n\tfunction pharmacode(data, options) {\n\t\t_classCallCheck(this, pharmacode);\n\n\t\tvar _this = _possibleConstructorReturn(this, (pharmacode.__proto__ || Object.getPrototypeOf(pharmacode)).call(this, data, options));\n\n\t\t_this.number = parseInt(data, 10);\n\t\treturn _this;\n\t}\n\n\t_createClass(pharmacode, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\tvar z = this.number;\n\t\t\tvar result = \"\";\n\n\t\t\t// http://i.imgur.com/RMm4UDJ.png\n\t\t\t// (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34)\n\t\t\twhile (!isNaN(z) && z != 0) {\n\t\t\t\tif (z % 2 === 0) {\n\t\t\t\t\t// Even\n\t\t\t\t\tresult = \"11100\" + result;\n\t\t\t\t\tz = (z - 2) / 2;\n\t\t\t\t} else {\n\t\t\t\t\t// Odd\n\t\t\t\t\tresult = \"100\" + result;\n\t\t\t\t\tz = (z - 1) / 2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove the two last zeroes\n\t\t\tresult = result.slice(0, -2);\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.number >= 3 && this.number <= 131070;\n\t\t}\n\t}]);\n\n\treturn pharmacode;\n}(_Barcode3.default);\n\nexports.pharmacode = pharmacode;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.codabar = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding specification:\n// http://www.barcodeisland.com/codabar.phtml\n\nvar codabar = function (_Barcode) {\n\t_inherits(codabar, _Barcode);\n\n\tfunction codabar(data, options) {\n\t\t_classCallCheck(this, codabar);\n\n\t\tif (data.search(/^[0-9\\-\\$\\:\\.\\+\\/]+$/) === 0) {\n\t\t\tdata = \"A\" + data + \"A\";\n\t\t}\n\n\t\tvar _this = _possibleConstructorReturn(this, (codabar.__proto__ || Object.getPrototypeOf(codabar)).call(this, data.toUpperCase(), options));\n\n\t\t_this.text = _this.options.text || _this.text.replace(/[A-D]/g, '');\n\t\treturn _this;\n\t}\n\n\t_createClass(codabar, [{\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[A-D][0-9\\-\\$\\:\\.\\+\\/]+[A-D]$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\tvar result = [];\n\t\t\tvar encodings = this.getEncodings();\n\t\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t\tresult.push(encodings[this.data.charAt(i)]);\n\t\t\t\t// for all characters except the last, append a narrow-space (\"0\")\n\t\t\t\tif (i !== this.data.length - 1) {\n\t\t\t\t\tresult.push(\"0\");\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttext: this.text,\n\t\t\t\tdata: result.join('')\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"getEncodings\",\n\t\tvalue: function getEncodings() {\n\t\t\treturn {\n\t\t\t\t\"0\": \"101010011\",\n\t\t\t\t\"1\": \"101011001\",\n\t\t\t\t\"2\": \"101001011\",\n\t\t\t\t\"3\": \"110010101\",\n\t\t\t\t\"4\": \"101101001\",\n\t\t\t\t\"5\": \"110101001\",\n\t\t\t\t\"6\": \"100101011\",\n\t\t\t\t\"7\": \"100101101\",\n\t\t\t\t\"8\": \"100110101\",\n\t\t\t\t\"9\": \"110100101\",\n\t\t\t\t\"-\": \"101001101\",\n\t\t\t\t\"$\": \"101100101\",\n\t\t\t\t\":\": \"1101011011\",\n\t\t\t\t\"/\": \"1101101011\",\n\t\t\t\t\".\": \"1101101101\",\n\t\t\t\t\"+\": \"101100110011\",\n\t\t\t\t\"A\": \"1011001001\",\n\t\t\t\t\"B\": \"1001001011\",\n\t\t\t\t\"C\": \"1010010011\",\n\t\t\t\t\"D\": \"1010011001\"\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn codabar;\n}(_Barcode3.default);\n\nexports.codabar = codabar;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.GenericBarcode = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GenericBarcode = function (_Barcode) {\n\t_inherits(GenericBarcode, _Barcode);\n\n\tfunction GenericBarcode(data, options) {\n\t\t_classCallCheck(this, GenericBarcode);\n\n\t\treturn _possibleConstructorReturn(this, (GenericBarcode.__proto__ || Object.getPrototypeOf(GenericBarcode)).call(this, data, options)); // Sets this.data and this.text\n\t}\n\n\t// Return the corresponding binary numbers for the data provided\n\n\n\t_createClass(GenericBarcode, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\treturn {\n\t\t\t\tdata: \"10101010101010101010101010101010101010101\",\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\n\t\t// Resturn true/false if the string provided is valid for this encoder\n\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn true;\n\t\t}\n\t}]);\n\n\treturn GenericBarcode;\n}(_Barcode3.default);\n\nexports.GenericBarcode = GenericBarcode;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _CODE = require('./CODE39/');\n\nvar _CODE2 = require('./CODE128/');\n\nvar _EAN_UPC = require('./EAN_UPC/');\n\nvar _ITF = require('./ITF/');\n\nvar _MSI = require('./MSI/');\n\nvar _pharmacode = require('./pharmacode/');\n\nvar _codabar = require('./codabar');\n\nvar _GenericBarcode = require('./GenericBarcode/');\n\nexports.default = {\n\tCODE39: _CODE.CODE39,\n\tCODE128: _CODE2.CODE128, CODE128A: _CODE2.CODE128A, CODE128B: _CODE2.CODE128B, CODE128C: _CODE2.CODE128C,\n\tEAN13: _EAN_UPC.EAN13, EAN8: _EAN_UPC.EAN8, EAN5: _EAN_UPC.EAN5, EAN2: _EAN_UPC.EAN2, UPC: _EAN_UPC.UPC, UPCE: _EAN_UPC.UPCE,\n\tITF14: _ITF.ITF14,\n\tITF: _ITF.ITF,\n\tMSI: _MSI.MSI, MSI10: _MSI.MSI10, MSI11: _MSI.MSI11, MSI1010: _MSI.MSI1010, MSI1110: _MSI.MSI1110,\n\tpharmacode: _pharmacode.pharmacode,\n\tcodabar: _codabar.codabar,\n\tGenericBarcode: _GenericBarcode.GenericBarcode\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function (old, replaceObj) {\n return _extends({}, old, replaceObj);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = linearizeEncodings;\n\n// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2]\n// Convert to [1-1, 1-2, 2, 3-1, 3-2]\n\nfunction linearizeEncodings(encodings) {\n\tvar linearEncodings = [];\n\tfunction nextLevel(encoded) {\n\t\tif (Array.isArray(encoded)) {\n\t\t\tfor (var i = 0; i < encoded.length; i++) {\n\t\t\t\tnextLevel(encoded[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tencoded.text = encoded.text || \"\";\n\t\t\tencoded.data = encoded.data || \"\";\n\t\t\tlinearEncodings.push(encoded);\n\t\t}\n\t}\n\tnextLevel(encodings);\n\n\treturn linearEncodings;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = fixOptions;\n\n\nfunction fixOptions(options) {\n\t// Fix the margins\n\toptions.marginTop = options.marginTop || options.margin;\n\toptions.marginBottom = options.marginBottom || options.margin;\n\toptions.marginRight = options.marginRight || options.margin;\n\toptions.marginLeft = options.marginLeft || options.margin;\n\n\treturn options;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = optionsFromStrings;\n\n// Convert string to integers/booleans where it should be\n\nfunction optionsFromStrings(options) {\n\tvar intOptions = [\"width\", \"height\", \"textMargin\", \"fontSize\", \"margin\", \"marginTop\", \"marginBottom\", \"marginLeft\", \"marginRight\"];\n\n\tfor (var intOption in intOptions) {\n\t\tif (intOptions.hasOwnProperty(intOption)) {\n\t\t\tintOption = intOptions[intOption];\n\t\t\tif (typeof options[intOption] === \"string\") {\n\t\t\t\toptions[intOption] = parseInt(options[intOption], 10);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (typeof options[\"displayValue\"] === \"string\") {\n\t\toptions[\"displayValue\"] = options[\"displayValue\"] != \"false\";\n\t}\n\n\treturn options;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar defaults = {\n\twidth: 2,\n\theight: 100,\n\tformat: \"auto\",\n\tdisplayValue: true,\n\tfontOptions: \"\",\n\tfont: \"monospace\",\n\ttext: undefined,\n\ttextAlign: \"center\",\n\ttextPosition: \"bottom\",\n\ttextMargin: 2,\n\tfontSize: 20,\n\tbackground: \"#ffffff\",\n\tlineColor: \"#000000\",\n\tmargin: 10,\n\tmarginTop: undefined,\n\tmarginBottom: undefined,\n\tmarginLeft: undefined,\n\tmarginRight: undefined,\n\tvalid: function valid() {}\n};\n\nexports.default = defaults;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _optionsFromStrings = require(\"./optionsFromStrings.js\");\n\nvar _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings);\n\nvar _defaults = require(\"../options/defaults.js\");\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getOptionsFromElement(element) {\n\tvar options = {};\n\tfor (var property in _defaults2.default) {\n\t\tif (_defaults2.default.hasOwnProperty(property)) {\n\t\t\t// jsbarcode-*\n\t\t\tif (element.hasAttribute(\"jsbarcode-\" + property.toLowerCase())) {\n\t\t\t\toptions[property] = element.getAttribute(\"jsbarcode-\" + property.toLowerCase());\n\t\t\t}\n\n\t\t\t// data-*\n\t\t\tif (element.hasAttribute(\"data-\" + property.toLowerCase())) {\n\t\t\t\toptions[property] = element.getAttribute(\"data-\" + property.toLowerCase());\n\t\t\t}\n\t\t}\n\t}\n\n\toptions[\"value\"] = element.getAttribute(\"jsbarcode-value\") || element.getAttribute(\"data-value\");\n\n\t// Since all atributes are string they need to be converted to integers\n\toptions = (0, _optionsFromStrings2.default)(options);\n\n\treturn options;\n}\n\nexports.default = getOptionsFromElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.getTotalWidthOfEncodings = exports.calculateEncodingAttributes = exports.getBarcodePadding = exports.getEncodingHeight = exports.getMaximumHeightOfEncodings = undefined;\n\nvar _merge = require(\"../help/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getEncodingHeight(encoding, options) {\n\treturn options.height + (options.displayValue && encoding.text.length > 0 ? options.fontSize + options.textMargin : 0) + options.marginTop + options.marginBottom;\n}\n\nfunction getBarcodePadding(textWidth, barcodeWidth, options) {\n\tif (options.displayValue && barcodeWidth < textWidth) {\n\t\tif (options.textAlign == \"center\") {\n\t\t\treturn Math.floor((textWidth - barcodeWidth) / 2);\n\t\t} else if (options.textAlign == \"left\") {\n\t\t\treturn 0;\n\t\t} else if (options.textAlign == \"right\") {\n\t\t\treturn Math.floor(textWidth - barcodeWidth);\n\t\t}\n\t}\n\treturn 0;\n}\n\nfunction calculateEncodingAttributes(encodings, barcodeOptions, context) {\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\tvar encoding = encodings[i];\n\t\tvar options = (0, _merge2.default)(barcodeOptions, encoding.options);\n\n\t\t// Calculate the width of the encoding\n\t\tvar textWidth;\n\t\tif (options.displayValue) {\n\t\t\ttextWidth = messureText(encoding.text, options, context);\n\t\t} else {\n\t\t\ttextWidth = 0;\n\t\t}\n\n\t\tvar barcodeWidth = encoding.data.length * options.width;\n\t\tencoding.width = Math.ceil(Math.max(textWidth, barcodeWidth));\n\n\t\tencoding.height = getEncodingHeight(encoding, options);\n\n\t\tencoding.barcodePadding = getBarcodePadding(textWidth, barcodeWidth, options);\n\t}\n}\n\nfunction getTotalWidthOfEncodings(encodings) {\n\tvar totalWidth = 0;\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\ttotalWidth += encodings[i].width;\n\t}\n\treturn totalWidth;\n}\n\nfunction getMaximumHeightOfEncodings(encodings) {\n\tvar maxHeight = 0;\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\tif (encodings[i].height > maxHeight) {\n\t\t\tmaxHeight = encodings[i].height;\n\t\t}\n\t}\n\treturn maxHeight;\n}\n\nfunction messureText(string, options, context) {\n\tvar ctx;\n\n\tif (context) {\n\t\tctx = context;\n\t} else if (typeof document !== \"undefined\") {\n\t\tctx = document.createElement(\"canvas\").getContext(\"2d\");\n\t} else {\n\t\t// If the text cannot be messured we will return 0.\n\t\t// This will make some barcode with big text render incorrectly\n\t\treturn 0;\n\t}\n\tctx.font = options.fontOptions + \" \" + options.fontSize + \"px \" + options.font;\n\n\t// Calculate the width of the encoding\n\tvar size = ctx.measureText(string).width;\n\n\treturn size;\n}\n\nexports.getMaximumHeightOfEncodings = getMaximumHeightOfEncodings;\nexports.getEncodingHeight = getEncodingHeight;\nexports.getBarcodePadding = getBarcodePadding;\nexports.calculateEncodingAttributes = calculateEncodingAttributes;\nexports.getTotalWidthOfEncodings = getTotalWidthOfEncodings;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _merge = require(\"../help/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _shared = require(\"./shared.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar CanvasRenderer = function () {\n\tfunction CanvasRenderer(canvas, encodings, options) {\n\t\t_classCallCheck(this, CanvasRenderer);\n\n\t\tthis.canvas = canvas;\n\t\tthis.encodings = encodings;\n\t\tthis.options = options;\n\t}\n\n\t_createClass(CanvasRenderer, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\t// Abort if the browser does not support HTML5 canvas\n\t\t\tif (!this.canvas.getContext) {\n\t\t\t\tthrow new Error('The browser does not support canvas.');\n\t\t\t}\n\n\t\t\tthis.prepareCanvas();\n\t\t\tfor (var i = 0; i < this.encodings.length; i++) {\n\t\t\t\tvar encodingOptions = (0, _merge2.default)(this.options, this.encodings[i].options);\n\n\t\t\t\tthis.drawCanvasBarcode(encodingOptions, this.encodings[i]);\n\t\t\t\tthis.drawCanvasText(encodingOptions, this.encodings[i]);\n\n\t\t\t\tthis.moveCanvasDrawing(this.encodings[i]);\n\t\t\t}\n\n\t\t\tthis.restoreCanvas();\n\t\t}\n\t}, {\n\t\tkey: \"prepareCanvas\",\n\t\tvalue: function prepareCanvas() {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tctx.save();\n\n\t\t\t(0, _shared.calculateEncodingAttributes)(this.encodings, this.options, ctx);\n\t\t\tvar totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings);\n\t\t\tvar maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings);\n\n\t\t\tthis.canvas.width = totalWidth + this.options.marginLeft + this.options.marginRight;\n\n\t\t\tthis.canvas.height = maxHeight;\n\n\t\t\t// Paint the canvas\n\t\t\tctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t\t\tif (this.options.background) {\n\t\t\t\tctx.fillStyle = this.options.background;\n\t\t\t\tctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\t\t\t}\n\n\t\t\tctx.translate(this.options.marginLeft, 0);\n\t\t}\n\t}, {\n\t\tkey: \"drawCanvasBarcode\",\n\t\tvalue: function drawCanvasBarcode(options, encoding) {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tvar binary = encoding.data;\n\n\t\t\t// Creates the barcode out of the encoded binary\n\t\t\tvar yFrom;\n\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\tyFrom = options.marginTop + options.fontSize + options.textMargin;\n\t\t\t} else {\n\t\t\t\tyFrom = options.marginTop;\n\t\t\t}\n\n\t\t\tctx.fillStyle = options.lineColor;\n\n\t\t\tfor (var b = 0; b < binary.length; b++) {\n\t\t\t\tvar x = b * options.width + encoding.barcodePadding;\n\n\t\t\t\tif (binary[b] === \"1\") {\n\t\t\t\t\tctx.fillRect(x, yFrom, options.width, options.height);\n\t\t\t\t} else if (binary[b]) {\n\t\t\t\t\tctx.fillRect(x, yFrom, options.width, options.height * binary[b]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawCanvasText\",\n\t\tvalue: function drawCanvasText(options, encoding) {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tvar font = options.fontOptions + \" \" + options.fontSize + \"px \" + options.font;\n\n\t\t\t// Draw the text if displayValue is set\n\t\t\tif (options.displayValue) {\n\t\t\t\tvar x, y;\n\n\t\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\t\ty = options.marginTop + options.fontSize - options.textMargin;\n\t\t\t\t} else {\n\t\t\t\t\ty = options.height + options.textMargin + options.marginTop + options.fontSize;\n\t\t\t\t}\n\n\t\t\t\tctx.font = font;\n\n\t\t\t\t// Draw the text in the correct X depending on the textAlign option\n\t\t\t\tif (options.textAlign == \"left\" || encoding.barcodePadding > 0) {\n\t\t\t\t\tx = 0;\n\t\t\t\t\tctx.textAlign = 'left';\n\t\t\t\t} else if (options.textAlign == \"right\") {\n\t\t\t\t\tx = encoding.width - 1;\n\t\t\t\t\tctx.textAlign = 'right';\n\t\t\t\t}\n\t\t\t\t// In all other cases, center the text\n\t\t\t\telse {\n\t\t\t\t\t\tx = encoding.width / 2;\n\t\t\t\t\t\tctx.textAlign = 'center';\n\t\t\t\t\t}\n\n\t\t\t\tctx.fillText(encoding.text, x, y);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"moveCanvasDrawing\",\n\t\tvalue: function moveCanvasDrawing(encoding) {\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tctx.translate(encoding.width, 0);\n\t\t}\n\t}, {\n\t\tkey: \"restoreCanvas\",\n\t\tvalue: function restoreCanvas() {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tctx.restore();\n\t\t}\n\t}]);\n\n\treturn CanvasRenderer;\n}();\n\nexports.default = CanvasRenderer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _merge = require(\"../help/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _shared = require(\"./shared.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar svgns = \"http://www.w3.org/2000/svg\";\n\nvar SVGRenderer = function () {\n\tfunction SVGRenderer(svg, encodings, options) {\n\t\t_classCallCheck(this, SVGRenderer);\n\n\t\tthis.svg = svg;\n\t\tthis.encodings = encodings;\n\t\tthis.options = options;\n\t\tthis.document = options.xmlDocument || document;\n\t}\n\n\t_createClass(SVGRenderer, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar currentX = this.options.marginLeft;\n\n\t\t\tthis.prepareSVG();\n\t\t\tfor (var i = 0; i < this.encodings.length; i++) {\n\t\t\t\tvar encoding = this.encodings[i];\n\t\t\t\tvar encodingOptions = (0, _merge2.default)(this.options, encoding.options);\n\n\t\t\t\tvar group = this.createGroup(currentX, encodingOptions.marginTop, this.svg);\n\n\t\t\t\tthis.setGroupOptions(group, encodingOptions);\n\n\t\t\t\tthis.drawSvgBarcode(group, encodingOptions, encoding);\n\t\t\t\tthis.drawSVGText(group, encodingOptions, encoding);\n\n\t\t\t\tcurrentX += encoding.width;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"prepareSVG\",\n\t\tvalue: function prepareSVG() {\n\t\t\t// Clear the SVG\n\t\t\twhile (this.svg.firstChild) {\n\t\t\t\tthis.svg.removeChild(this.svg.firstChild);\n\t\t\t}\n\n\t\t\t(0, _shared.calculateEncodingAttributes)(this.encodings, this.options);\n\t\t\tvar totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings);\n\t\t\tvar maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings);\n\n\t\t\tvar width = totalWidth + this.options.marginLeft + this.options.marginRight;\n\t\t\tthis.setSvgAttributes(width, maxHeight);\n\n\t\t\tif (this.options.background) {\n\t\t\t\tthis.drawRect(0, 0, width, maxHeight, this.svg).setAttribute(\"style\", \"fill:\" + this.options.background + \";\");\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawSvgBarcode\",\n\t\tvalue: function drawSvgBarcode(parent, options, encoding) {\n\t\t\tvar binary = encoding.data;\n\n\t\t\t// Creates the barcode out of the encoded binary\n\t\t\tvar yFrom;\n\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\tyFrom = options.fontSize + options.textMargin;\n\t\t\t} else {\n\t\t\t\tyFrom = 0;\n\t\t\t}\n\n\t\t\tvar barWidth = 0;\n\t\t\tvar x = 0;\n\t\t\tfor (var b = 0; b < binary.length; b++) {\n\t\t\t\tx = b * options.width + encoding.barcodePadding;\n\n\t\t\t\tif (binary[b] === \"1\") {\n\t\t\t\t\tbarWidth++;\n\t\t\t\t} else if (barWidth > 0) {\n\t\t\t\t\tthis.drawRect(x - options.width * barWidth, yFrom, options.width * barWidth, options.height, parent);\n\t\t\t\t\tbarWidth = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Last draw is needed since the barcode ends with 1\n\t\t\tif (barWidth > 0) {\n\t\t\t\tthis.drawRect(x - options.width * (barWidth - 1), yFrom, options.width * barWidth, options.height, parent);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawSVGText\",\n\t\tvalue: function drawSVGText(parent, options, encoding) {\n\t\t\tvar textElem = this.document.createElementNS(svgns, 'text');\n\n\t\t\t// Draw the text if displayValue is set\n\t\t\tif (options.displayValue) {\n\t\t\t\tvar x, y;\n\n\t\t\t\ttextElem.setAttribute(\"style\", \"font:\" + options.fontOptions + \" \" + options.fontSize + \"px \" + options.font);\n\n\t\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\t\ty = options.fontSize - options.textMargin;\n\t\t\t\t} else {\n\t\t\t\t\ty = options.height + options.textMargin + options.fontSize;\n\t\t\t\t}\n\n\t\t\t\t// Draw the text in the correct X depending on the textAlign option\n\t\t\t\tif (options.textAlign == \"left\" || encoding.barcodePadding > 0) {\n\t\t\t\t\tx = 0;\n\t\t\t\t\ttextElem.setAttribute(\"text-anchor\", \"start\");\n\t\t\t\t} else if (options.textAlign == \"right\") {\n\t\t\t\t\tx = encoding.width - 1;\n\t\t\t\t\ttextElem.setAttribute(\"text-anchor\", \"end\");\n\t\t\t\t}\n\t\t\t\t// In all other cases, center the text\n\t\t\t\telse {\n\t\t\t\t\t\tx = encoding.width / 2;\n\t\t\t\t\t\ttextElem.setAttribute(\"text-anchor\", \"middle\");\n\t\t\t\t\t}\n\n\t\t\t\ttextElem.setAttribute(\"x\", x);\n\t\t\t\ttextElem.setAttribute(\"y\", y);\n\n\t\t\t\ttextElem.appendChild(this.document.createTextNode(encoding.text));\n\n\t\t\t\tparent.appendChild(textElem);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"setSvgAttributes\",\n\t\tvalue: function setSvgAttributes(width, height) {\n\t\t\tvar svg = this.svg;\n\t\t\tsvg.setAttribute(\"width\", width + \"px\");\n\t\t\tsvg.setAttribute(\"height\", height + \"px\");\n\t\t\tsvg.setAttribute(\"x\", \"0px\");\n\t\t\tsvg.setAttribute(\"y\", \"0px\");\n\t\t\tsvg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n\n\t\t\tsvg.setAttribute(\"xmlns\", svgns);\n\t\t\tsvg.setAttribute(\"version\", \"1.1\");\n\n\t\t\tsvg.setAttribute(\"style\", \"transform: translate(0,0)\");\n\t\t}\n\t}, {\n\t\tkey: \"createGroup\",\n\t\tvalue: function createGroup(x, y, parent) {\n\t\t\tvar group = this.document.createElementNS(svgns, 'g');\n\t\t\tgroup.setAttribute(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n\n\t\t\tparent.appendChild(group);\n\n\t\t\treturn group;\n\t\t}\n\t}, {\n\t\tkey: \"setGroupOptions\",\n\t\tvalue: function setGroupOptions(group, options) {\n\t\t\tgroup.setAttribute(\"style\", \"fill:\" + options.lineColor + \";\");\n\t\t}\n\t}, {\n\t\tkey: \"drawRect\",\n\t\tvalue: function drawRect(x, y, width, height, parent) {\n\t\t\tvar rect = this.document.createElementNS(svgns, 'rect');\n\n\t\t\trect.setAttribute(\"x\", x);\n\t\t\trect.setAttribute(\"y\", y);\n\t\t\trect.setAttribute(\"width\", width);\n\t\t\trect.setAttribute(\"height\", height);\n\n\t\t\tparent.appendChild(rect);\n\n\t\t\treturn rect;\n\t\t}\n\t}]);\n\n\treturn SVGRenderer;\n}();\n\nexports.default = SVGRenderer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ObjectRenderer = function () {\n\tfunction ObjectRenderer(object, encodings, options) {\n\t\t_classCallCheck(this, ObjectRenderer);\n\n\t\tthis.object = object;\n\t\tthis.encodings = encodings;\n\t\tthis.options = options;\n\t}\n\n\t_createClass(ObjectRenderer, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tthis.object.encodings = this.encodings;\n\t\t}\n\t}]);\n\n\treturn ObjectRenderer;\n}();\n\nexports.default = ObjectRenderer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _canvas = require('./canvas.js');\n\nvar _canvas2 = _interopRequireDefault(_canvas);\n\nvar _svg = require('./svg.js');\n\nvar _svg2 = _interopRequireDefault(_svg);\n\nvar _object = require('./object.js');\n\nvar _object2 = _interopRequireDefault(_object);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = { CanvasRenderer: _canvas2.default, SVGRenderer: _svg2.default, ObjectRenderer: _object2.default };","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InvalidInputException = function (_Error) {\n\t_inherits(InvalidInputException, _Error);\n\n\tfunction InvalidInputException(symbology, input) {\n\t\t_classCallCheck(this, InvalidInputException);\n\n\t\tvar _this = _possibleConstructorReturn(this, (InvalidInputException.__proto__ || Object.getPrototypeOf(InvalidInputException)).call(this));\n\n\t\t_this.name = \"InvalidInputException\";\n\n\t\t_this.symbology = symbology;\n\t\t_this.input = input;\n\n\t\t_this.message = '\"' + _this.input + '\" is not a valid input for ' + _this.symbology;\n\t\treturn _this;\n\t}\n\n\treturn InvalidInputException;\n}(Error);\n\nvar InvalidElementException = function (_Error2) {\n\t_inherits(InvalidElementException, _Error2);\n\n\tfunction InvalidElementException() {\n\t\t_classCallCheck(this, InvalidElementException);\n\n\t\tvar _this2 = _possibleConstructorReturn(this, (InvalidElementException.__proto__ || Object.getPrototypeOf(InvalidElementException)).call(this));\n\n\t\t_this2.name = \"InvalidElementException\";\n\t\t_this2.message = \"Not supported type to render on\";\n\t\treturn _this2;\n\t}\n\n\treturn InvalidElementException;\n}(Error);\n\nvar NoElementException = function (_Error3) {\n\t_inherits(NoElementException, _Error3);\n\n\tfunction NoElementException() {\n\t\t_classCallCheck(this, NoElementException);\n\n\t\tvar _this3 = _possibleConstructorReturn(this, (NoElementException.__proto__ || Object.getPrototypeOf(NoElementException)).call(this));\n\n\t\t_this3.name = \"NoElementException\";\n\t\t_this3.message = \"No element to render on.\";\n\t\treturn _this3;\n\t}\n\n\treturn NoElementException;\n}(Error);\n\nexports.InvalidInputException = InvalidInputException;\nexports.InvalidElementException = InvalidElementException;\nexports.NoElementException = NoElementException;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /* global HTMLImageElement */\n/* global HTMLCanvasElement */\n/* global SVGElement */\n\nvar _getOptionsFromElement = require(\"./getOptionsFromElement.js\");\n\nvar _getOptionsFromElement2 = _interopRequireDefault(_getOptionsFromElement);\n\nvar _renderers = require(\"../renderers\");\n\nvar _renderers2 = _interopRequireDefault(_renderers);\n\nvar _exceptions = require(\"../exceptions/exceptions.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Takes an element and returns an object with information about how\n// it should be rendered\n// This could also return an array with these objects\n// {\n// element: The element that the renderer should draw on\n// renderer: The name of the renderer\n// afterRender (optional): If something has to done after the renderer\n// completed, calls afterRender (function)\n// options (optional): Options that can be defined in the element\n// }\n\nfunction getRenderProperties(element) {\n\t// If the element is a string, query select call again\n\tif (typeof element === \"string\") {\n\t\treturn querySelectedRenderProperties(element);\n\t}\n\t// If element is array. Recursivly call with every object in the array\n\telse if (Array.isArray(element)) {\n\t\t\tvar returnArray = [];\n\t\t\tfor (var i = 0; i < element.length; i++) {\n\t\t\t\treturnArray.push(getRenderProperties(element[i]));\n\t\t\t}\n\t\t\treturn returnArray;\n\t\t}\n\t\t// If element, render on canvas and set the uri as src\n\t\telse if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLImageElement) {\n\t\t\t\treturn newCanvasRenderProperties(element);\n\t\t\t}\n\t\t\t// If SVG\n\t\t\telse if (element && element.nodeName === 'svg' || typeof SVGElement !== 'undefined' && element instanceof SVGElement) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\telement: element,\n\t\t\t\t\t\toptions: (0, _getOptionsFromElement2.default)(element),\n\t\t\t\t\t\trenderer: _renderers2.default.SVGRenderer\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t// If canvas (in browser)\n\t\t\t\telse if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLCanvasElement) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\telement: element,\n\t\t\t\t\t\t\toptions: (0, _getOptionsFromElement2.default)(element),\n\t\t\t\t\t\t\trenderer: _renderers2.default.CanvasRenderer\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\t// If canvas (in node)\n\t\t\t\t\telse if (element && element.getContext) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\telement: element,\n\t\t\t\t\t\t\t\trenderer: _renderers2.default.CanvasRenderer\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (element && (typeof element === \"undefined\" ? \"undefined\" : _typeof(element)) === 'object' && !element.nodeName) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\telement: element,\n\t\t\t\t\t\t\t\trenderer: _renderers2.default.ObjectRenderer\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow new _exceptions.InvalidElementException();\n\t\t\t\t\t\t}\n}\n\nfunction querySelectedRenderProperties(string) {\n\tvar selector = document.querySelectorAll(string);\n\tif (selector.length === 0) {\n\t\treturn undefined;\n\t} else {\n\t\tvar returnArray = [];\n\t\tfor (var i = 0; i < selector.length; i++) {\n\t\t\treturnArray.push(getRenderProperties(selector[i]));\n\t\t}\n\t\treturn returnArray;\n\t}\n}\n\nfunction newCanvasRenderProperties(imgElement) {\n\tvar canvas = document.createElement('canvas');\n\treturn {\n\t\telement: canvas,\n\t\toptions: (0, _getOptionsFromElement2.default)(imgElement),\n\t\trenderer: _renderers2.default.CanvasRenderer,\n\t\tafterRender: function afterRender() {\n\t\t\timgElement.setAttribute(\"src\", canvas.toDataURL());\n\t\t}\n\t};\n}\n\nexports.default = getRenderProperties;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*eslint no-console: 0 */\n\nvar ErrorHandler = function () {\n\tfunction ErrorHandler(api) {\n\t\t_classCallCheck(this, ErrorHandler);\n\n\t\tthis.api = api;\n\t}\n\n\t_createClass(ErrorHandler, [{\n\t\tkey: \"handleCatch\",\n\t\tvalue: function handleCatch(e) {\n\t\t\t// If babel supported extending of Error in a correct way instanceof would be used here\n\t\t\tif (e.name === \"InvalidInputException\") {\n\t\t\t\tif (this.api._options.valid !== this.api._defaults.valid) {\n\t\t\t\t\tthis.api._options.valid(false);\n\t\t\t\t} else {\n\t\t\t\t\tthrow e.message;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow e;\n\t\t\t}\n\n\t\t\tthis.api.render = function () {};\n\t\t}\n\t}, {\n\t\tkey: \"wrapBarcodeCall\",\n\t\tvalue: function wrapBarcodeCall(func) {\n\t\t\ttry {\n\t\t\t\tvar result = func.apply(undefined, arguments);\n\t\t\t\tthis.api._options.valid(true);\n\t\t\t\treturn result;\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleCatch(e);\n\n\t\t\t\treturn this.api;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn ErrorHandler;\n}();\n\nexports.default = ErrorHandler;","'use strict';\n\nvar _barcodes = require('./barcodes/');\n\nvar _barcodes2 = _interopRequireDefault(_barcodes);\n\nvar _merge = require('./help/merge.js');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _linearizeEncodings = require('./help/linearizeEncodings.js');\n\nvar _linearizeEncodings2 = _interopRequireDefault(_linearizeEncodings);\n\nvar _fixOptions = require('./help/fixOptions.js');\n\nvar _fixOptions2 = _interopRequireDefault(_fixOptions);\n\nvar _getRenderProperties = require('./help/getRenderProperties.js');\n\nvar _getRenderProperties2 = _interopRequireDefault(_getRenderProperties);\n\nvar _optionsFromStrings = require('./help/optionsFromStrings.js');\n\nvar _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings);\n\nvar _ErrorHandler = require('./exceptions/ErrorHandler.js');\n\nvar _ErrorHandler2 = _interopRequireDefault(_ErrorHandler);\n\nvar _exceptions = require('./exceptions/exceptions.js');\n\nvar _defaults = require('./options/defaults.js');\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The protype of the object returned from the JsBarcode() call\n\n\n// Help functions\nvar API = function API() {};\n\n// The first call of the library API\n// Will return an object with all barcodes calls and the data that is used\n// by the renderers\n\n\n// Default values\n\n\n// Exceptions\n// Import all the barcodes\nvar JsBarcode = function JsBarcode(element, text, options) {\n\tvar api = new API();\n\n\tif (typeof element === \"undefined\") {\n\t\tthrow Error(\"No element to render on was provided.\");\n\t}\n\n\t// Variables that will be pased through the API calls\n\tapi._renderProperties = (0, _getRenderProperties2.default)(element);\n\tapi._encodings = [];\n\tapi._options = _defaults2.default;\n\tapi._errorHandler = new _ErrorHandler2.default(api);\n\n\t// If text is set, use the simple syntax (render the barcode directly)\n\tif (typeof text !== \"undefined\") {\n\t\toptions = options || {};\n\n\t\tif (!options.format) {\n\t\t\toptions.format = autoSelectBarcode();\n\t\t}\n\n\t\tapi.options(options)[options.format](text, options).render();\n\t}\n\n\treturn api;\n};\n\n// To make tests work TODO: remove\nJsBarcode.getModule = function (name) {\n\treturn _barcodes2.default[name];\n};\n\n// Register all barcodes\nfor (var name in _barcodes2.default) {\n\tif (_barcodes2.default.hasOwnProperty(name)) {\n\t\t// Security check if the propery is a prototype property\n\t\tregisterBarcode(_barcodes2.default, name);\n\t}\n}\nfunction registerBarcode(barcodes, name) {\n\tAPI.prototype[name] = API.prototype[name.toUpperCase()] = API.prototype[name.toLowerCase()] = function (text, options) {\n\t\tvar api = this;\n\t\treturn api._errorHandler.wrapBarcodeCall(function () {\n\t\t\t// Ensure text is options.text\n\t\t\toptions.text = typeof options.text === 'undefined' ? undefined : '' + options.text;\n\n\t\t\tvar newOptions = (0, _merge2.default)(api._options, options);\n\t\t\tnewOptions = (0, _optionsFromStrings2.default)(newOptions);\n\t\t\tvar Encoder = barcodes[name];\n\t\t\tvar encoded = encode(text, Encoder, newOptions);\n\t\t\tapi._encodings.push(encoded);\n\n\t\t\treturn api;\n\t\t});\n\t};\n}\n\n// encode() handles the Encoder call and builds the binary string to be rendered\nfunction encode(text, Encoder, options) {\n\t// Ensure that text is a string\n\ttext = \"\" + text;\n\n\tvar encoder = new Encoder(text, options);\n\n\t// If the input is not valid for the encoder, throw error.\n\t// If the valid callback option is set, call it instead of throwing error\n\tif (!encoder.valid()) {\n\t\tthrow new _exceptions.InvalidInputException(encoder.constructor.name, text);\n\t}\n\n\t// Make a request for the binary data (and other infromation) that should be rendered\n\tvar encoded = encoder.encode();\n\n\t// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2]\n\t// Convert to [1-1, 1-2, 2, 3-1, 3-2]\n\tencoded = (0, _linearizeEncodings2.default)(encoded);\n\n\t// Merge\n\tfor (var i = 0; i < encoded.length; i++) {\n\t\tencoded[i].options = (0, _merge2.default)(options, encoded[i].options);\n\t}\n\n\treturn encoded;\n}\n\nfunction autoSelectBarcode() {\n\t// If CODE128 exists. Use it\n\tif (_barcodes2.default[\"CODE128\"]) {\n\t\treturn \"CODE128\";\n\t}\n\n\t// Else, take the first (probably only) barcode\n\treturn Object.keys(_barcodes2.default)[0];\n}\n\n// Sets global encoder options\n// Added to the api by the JsBarcode function\nAPI.prototype.options = function (options) {\n\tthis._options = (0, _merge2.default)(this._options, options);\n\treturn this;\n};\n\n// Will create a blank space (usually in between barcodes)\nAPI.prototype.blank = function (size) {\n\tvar zeroes = new Array(size + 1).join(\"0\");\n\tthis._encodings.push({ data: zeroes });\n\treturn this;\n};\n\n// Initialize JsBarcode on all HTML elements defined.\nAPI.prototype.init = function () {\n\t// Should do nothing if no elements where found\n\tif (!this._renderProperties) {\n\t\treturn;\n\t}\n\n\t// Make sure renderProperies is an array\n\tif (!Array.isArray(this._renderProperties)) {\n\t\tthis._renderProperties = [this._renderProperties];\n\t}\n\n\tvar renderProperty;\n\tfor (var i in this._renderProperties) {\n\t\trenderProperty = this._renderProperties[i];\n\t\tvar options = (0, _merge2.default)(this._options, renderProperty.options);\n\n\t\tif (options.format == \"auto\") {\n\t\t\toptions.format = autoSelectBarcode();\n\t\t}\n\n\t\tthis._errorHandler.wrapBarcodeCall(function () {\n\t\t\tvar text = options.value;\n\t\t\tvar Encoder = _barcodes2.default[options.format.toUpperCase()];\n\t\t\tvar encoded = encode(text, Encoder, options);\n\n\t\t\trender(renderProperty, encoded, options);\n\t\t});\n\t}\n};\n\n// The render API call. Calls the real render function.\nAPI.prototype.render = function () {\n\tif (!this._renderProperties) {\n\t\tthrow new _exceptions.NoElementException();\n\t}\n\n\tif (Array.isArray(this._renderProperties)) {\n\t\tfor (var i = 0; i < this._renderProperties.length; i++) {\n\t\t\trender(this._renderProperties[i], this._encodings, this._options);\n\t\t}\n\t} else {\n\t\trender(this._renderProperties, this._encodings, this._options);\n\t}\n\n\treturn this;\n};\n\nAPI.prototype._defaults = _defaults2.default;\n\n// Prepares the encodings and calls the renderer\nfunction render(renderProperties, encodings, options) {\n\tencodings = (0, _linearizeEncodings2.default)(encodings);\n\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\tencodings[i].options = (0, _merge2.default)(options, encodings[i].options);\n\t\t(0, _fixOptions2.default)(encodings[i].options);\n\t}\n\n\t(0, _fixOptions2.default)(options);\n\n\tvar Renderer = renderProperties.renderer;\n\tvar renderer = new Renderer(renderProperties.element, encodings, options);\n\trenderer.render();\n\n\tif (renderProperties.afterRender) {\n\t\trenderProperties.afterRender();\n\t}\n}\n\n// Export to browser\nif (typeof window !== \"undefined\") {\n\twindow.JsBarcode = JsBarcode;\n}\n\n// Export to jQuery\n/*global jQuery */\nif (typeof jQuery !== 'undefined') {\n\tjQuery.fn.JsBarcode = function (content, options) {\n\t\tvar elementArray = [];\n\t\tjQuery(this).each(function () {\n\t\t\telementArray.push(this);\n\t\t});\n\t\treturn JsBarcode(elementArray, content, options);\n\t};\n}\n\n// Export to commonJS\nmodule.exports = JsBarcode;","import JsBarcode from 'jsbarcode';\n\nfrappe.ui.form.ControlBarcode = frappe.ui.form.ControlData.extend({\n\tmake_wrapper() {\n\t\t// Create the elements for barcode area\n\t\tthis._super();\n\n\t\tthis.default_svg = '';\n\t\tlet $input_wrapper = this.$wrapper.find('.control-input-wrapper');\n\t\tthis.barcode_area = $(\n\t\t\t`
    ${this.default_svg}
    `\n\t\t);\n\t\tthis.barcode_area.appendTo($input_wrapper);\n\t},\n\n\tparse(value) {\n\t\t// Parse raw value\n\t\tif (value) {\n\t\t\tif (value.startsWith('\n\t\t\t\t
    \n\t\t\t
    `\n\t\t);\n\t\tthis.map_area.prependTo($input_wrapper);\n\t\tthis.$wrapper.find('.control-input').addClass(\"hidden\");\n\n\t\tif ($input_wrapper.is(':visible')) {\n\t\t\tthis.make_map();\n\t\t} else {\n\t\t\t$(document).on('frappe.ui.Dialog:shown', () => {\n\t\t\t\tthis.make_map();\n\t\t\t});\n\t\t}\n\t},\n\n\tmake_map() {\n\t\tthis.bind_leaflet_map();\n\t\tthis.bind_leaflet_draw_control();\n\t\tthis.bind_leaflet_locate_control();\n\t\tthis.bind_leaflet_refresh_button();\n\t},\n\n\tformat_for_input(value) {\n\t\tif (!this.map) return;\n\t\t// render raw value from db into map\n\t\tthis.clear_editable_layers();\n\t\tif(value) {\n\t\t\tvar data_layers = new L.FeatureGroup()\n\t\t\t\t.addLayer(L.geoJson(JSON.parse(value),{\n\t\t\t\t\tpointToLayer: function(geoJsonPoint, latlng) {\n\t\t\t\t\t\tif (geoJsonPoint.properties.point_type == \"circle\"){\n\t\t\t\t\t\t\treturn L.circle(latlng, {radius: geoJsonPoint.properties.radius});\n\t\t\t\t\t\t} else if (geoJsonPoint.properties.point_type == \"circlemarker\") {\n\t\t\t\t\t\t\treturn L.circleMarker(latlng, {radius: geoJsonPoint.properties.radius});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treturn L.marker(latlng);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\tthis.add_non_group_layers(data_layers, this.editableLayers);\n\t\t\ttry {\n\t\t\t\tthis.map.flyToBounds(this.editableLayers.getBounds(), {\n\t\t\t\t\tpadding: [50,50]\n\t\t\t\t});\n\t\t\t}\n\t\t\tcatch(err) {\n\t\t\t\t// suppress error if layer has a point.\n\t\t\t}\n\t\t\tthis.editableLayers.addTo(this.map);\n\t\t\tthis.map._onResize();\n\t\t} else if ((value===undefined) || (value == JSON.stringify(new L.FeatureGroup().toGeoJSON()))) {\n\t\t\tthis.locate_control.start();\n\t\t}\n\t},\n\n\tbind_leaflet_map() {\n\t\tvar circleToGeoJSON = L.Circle.prototype.toGeoJSON;\n\t\tL.Circle.include({\n\t\t\ttoGeoJSON: function() {\n\t\t\t\tvar feature = circleToGeoJSON.call(this);\n\t\t\t\tfeature.properties = {\n\t\t\t\t\tpoint_type: 'circle',\n\t\t\t\t\tradius: this.getRadius()\n\t\t\t\t};\n\t\t\t\treturn feature;\n\t\t\t}\n\t\t});\n\n\t\tL.CircleMarker.include({\n\t\t\ttoGeoJSON: function() {\n\t\t\t\tvar feature = circleToGeoJSON.call(this);\n\t\t\t\tfeature.properties = {\n\t\t\t\t\tpoint_type: 'circlemarker',\n\t\t\t\t\tradius: this.getRadius()\n\t\t\t\t};\n\t\t\t\treturn feature;\n\t\t\t}\n\t\t});\n\n\t\tL.Icon.Default.imagePath = '/assets/frappe/images/leaflet/';\n\t\tthis.map = L.map(this.map_id).setView([19.0800, 72.8961], 13);\n\n\t\tL.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {\n\t\t\tattribution: '© OpenStreetMap contributors'\n\t\t}).addTo(this.map);\n\t},\n\n\tbind_leaflet_locate_control() {\n\t\t// To request location update and set location, sets current geolocation on load\n\t\tthis.locate_control = L.control.locate({position:'topright'});\n\t\tthis.locate_control.addTo(this.map);\n\t},\n\n\tbind_leaflet_draw_control() {\n\t\tthis.editableLayers = new L.FeatureGroup();\n\n\t\tvar options = {\n\t\t\tposition: 'topleft',\n\t\t\tdraw: {\n\t\t\t\tpolyline: {\n\t\t\t\t\tshapeOptions: {\n\t\t\t\t\t\tcolor: frappe.ui.color.get('blue'),\n\t\t\t\t\t\tweight: 10\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tpolygon: {\n\t\t\t\t\tallowIntersection: false, // Restricts shapes to simple polygons\n\t\t\t\t\tdrawError: {\n\t\t\t\t\t\tcolor: frappe.ui.color.get('orange'), // Color the shape will turn when intersects\n\t\t\t\t\t\tmessage: 'Oh snap! you can\\'t draw that!' // Message that will show when intersect\n\t\t\t\t\t},\n\t\t\t\t\tshapeOptions: {\n\t\t\t\t\t\tcolor: frappe.ui.color.get('blue')\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tcircle: true,\n\t\t\t\trectangle: {\n\t\t\t\t\tshapeOptions: {\n\t\t\t\t\t\tclickable: false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tedit: {\n\t\t\t\tfeatureGroup: this.editableLayers, //REQUIRED!!\n\t\t\t\tremove: true\n\t\t\t}\n\t\t};\n\n\t\t// create control and add to map\n\t\tvar drawControl = new L.Control.Draw(options);\n\n\t\tthis.map.addControl(drawControl);\n\n\t\tthis.map.on('draw:created', (e) => {\n\t\t\tvar type = e.layerType,\n\t\t\t\tlayer = e.layer;\n\t\t\tif (type === 'marker') {\n\t\t\t\tlayer.bindPopup('Marker');\n\t\t\t}\n\t\t\tthis.editableLayers.addLayer(layer);\n\t\t\tthis.set_value(JSON.stringify(this.editableLayers.toGeoJSON()));\n\t\t});\n\n\t\tthis.map.on('draw:deleted draw:edited', (e) => {\n\t\t\tvar layer = e.layer;\n\t\t\tthis.editableLayers.removeLayer(layer);\n\t\t\tthis.set_value(JSON.stringify(this.editableLayers.toGeoJSON()));\n\t\t});\n\t},\n\n\tbind_leaflet_refresh_button() {\n\t\tL.easyButton({\n\t\t\tid: 'refresh-map-'+this.df.fieldname,\n\t\t\tposition: 'topright',\n\t\t\ttype: 'replace',\n\t\t\tleafletClasses: true,\n\t\t\tstates:[{\n\t\t\t\tstateName: 'refresh-map',\n\t\t\t\tonClick: function(button, map){\n\t\t\t\t\tmap._onResize();\n\t\t\t\t},\n\t\t\t\ttitle: 'Refresh map',\n\t\t\t\ticon: 'fa fa-refresh'\n\t\t\t}]\n\t\t}).addTo(this.map);\n\t},\n\n\tadd_non_group_layers(source_layer, target_group) {\n\t\t// https://gis.stackexchange.com/a/203773\n\t\t// Would benefit from https://github.com/Leaflet/Leaflet/issues/4461\n\t\tif (source_layer instanceof L.LayerGroup) {\n\t\t\tsource_layer.eachLayer((layer)=>{\n\t\t\t\tthis.add_non_group_layers(layer, target_group);\n\t\t\t});\n\t\t} else {\n\t\t\ttarget_group.addLayer(source_layer);\n\t\t}\n\t},\n\n\tclear_editable_layers() {\n\t\tthis.editableLayers.eachLayer((l)=>{\n\t\t\tthis.editableLayers.removeLayer(l);\n\t\t});\n\t}\n});\n","import Awesomplete from 'awesomplete';\n\nfrappe.ui.form.ControlMultiSelect = frappe.ui.form.ControlAutocomplete.extend({\n\tget_awesomplete_settings() {\n\t\tconst settings = this._super();\n\n\t\treturn Object.assign(settings, {\n\t\t\tfilter: function(text, input) {\n\t\t\t\tlet d = this.get_item(text.value);\n\t\t\t\tif(!d) {\n\t\t\t\t\treturn Awesomplete.FILTER_CONTAINS(text, input.match(/[^,]*$/)[0]);\n\t\t\t\t}\n\n\t\t\t\tlet getMatch = value => Awesomplete.FILTER_CONTAINS(value, input.match(/[^,]*$/)[0]);\n\n\t\t\t\t// match typed input with label or value or description\n\t\t\t\tlet v = getMatch(d.label);\n\t\t\t\tif(!v && d.value) {\n\t\t\t\t\tv = getMatch(d.value);\n\t\t\t\t}\n\t\t\t\tif(!v && d.description) {\n\t\t\t\t\tv = getMatch(d.description);\n\t\t\t\t}\n\n\t\t\t\treturn v;\n\t\t\t},\n\n\t\t\treplace: function(text) {\n\t\t\t\tconst before = this.input.value.match(/^.+,\\s*|/)[0];\n\t\t\t\tthis.input.value = before + text + \", \";\n\t\t\t}\n\t\t});\n\t},\n\n\tget_value() {\n\t\tlet data = this._super();\n\t\t// find value of label from option list and return actual value string\n\t\tif (this.df.options && this.df.options.length && this.df.options[0].label) {\n\t\t\tdata = data.split(',').map(op => op.trim());\n\t\t\tdata = data.map(val => {\n\t\t\t\tlet option = this.df.options.find(op => op.label === val);\n\t\t\t\treturn option ? option.value : null;\n\t\t\t}).filter(n => n != null).join(', ');\n\t\t}\n\t\treturn data;\n\t},\n\n\tset_formatted_input(value) {\n\t\tif (!value) return;\n\t\t// find label of value from option list and set from it as input\n\t\tif (this.df.options && this.df.options.length && this.df.options[0].label) {\n\t\t\tvalue = value.split(',').map(d => d.trim()).map(val => {\n\t\t\t\tlet option = this.df.options.find(op => op.value === val);\n\t\t\t\treturn option ? option.label : val;\n\t\t\t}).filter(n => n != null).join(', ');\n\t\t}\n\t\tthis._super(value);\n\t},\n\n\tget_values() {\n\t\tconst value = this.get_value() || '';\n\t\tconst values = value.split(/\\s*,\\s*/).filter(d => d);\n\n\t\treturn values;\n\t},\n\n\tget_data() {\n\t\tlet data;\n\t\tif(this.df.get_data) {\n\t\t\tdata = this.df.get_data();\n\t\t\tthis.set_data(data);\n\t\t} else {\n\t\t\tdata = this._super();\n\t\t}\n\t\tconst values = this.get_values() || [];\n\n\t\t// return values which are not already selected\n\t\tif(data) data.filter(d => !values.includes(d));\n\t\treturn data;\n\t}\n});\n","frappe.ui.form.ControlMultiCheck = frappe.ui.form.Control.extend({\n\t// UI: multiple checkboxes\n\t// Value: Array of values\n\t// Options: Array of label/value/checked option objects\n\n\tmake() {\n\t\tthis._super();\n\t\tthis.$label = $(``).appendTo(this.wrapper);\n\t\tthis.$load_state = $('
    ' + __(\"Loading\") + '...
    ');\n\t\tthis.$select_buttons = this.get_select_buttons().appendTo(this.wrapper);\n\t\tthis.$load_state.appendTo(this.wrapper);\n\n\t\tconst row = this.get_column_size() === 12 ? '' : 'row';\n\t\tthis.$checkbox_area = $(`
    `).appendTo(this.wrapper);\n\t\tthis.refresh();\n\t},\n\n\trefresh() {\n\t\tthis.set_options();\n\t\tthis.bind_checkboxes();\n\t\tthis.refresh_input();\n\t\tthis._super();\n\t},\n\n\trefresh_input() {\n\t\tthis.select_options(this.selected_options);\n\t},\n\n\n\tset_options() {\n\t\tthis.$load_state.show();\n\t\tthis.$select_buttons.hide();\n\t\tthis.parse_df_options();\n\n\t\tif(this.df.get_data) {\n\t\t\tif(typeof this.df.get_data().then == 'function') {\n\t\t\t\tthis.df.get_data().then(results => {\n\t\t\t\t\tthis.options = results;\n\t\t\t\t\tthis.make_checkboxes();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.options = this.df.get_data();\n\t\t\t\tthis.make_checkboxes();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.make_checkboxes();\n\t\t}\n\t},\n\n\tparse_df_options() {\n\t\tif(Array.isArray(this.df.options)) {\n\t\t\tthis.options = this.df.options;\n\t\t} else if(this.df.options && this.df.options.length>0 && frappe.utils.is_json(this.df.options)) {\n\t\t\tlet args = JSON.parse(this.df.options);\n\t\t\tif(Array.isArray(args)) {\n\t\t\t\tthis.options = args;\n\t\t\t} else if(Array.isArray(args.options)) {\n\t\t\t\tthis.options = args.options;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.options = [];\n\t\t}\n\t},\n\n\tmake_checkboxes() {\n\t\tthis.$load_state.hide();\n\t\tthis.$checkbox_area.empty();\n\t\tthis.options.forEach(option => {\n\t\t\tlet checkbox = this.get_checkbox_element(option).appendTo(this.$checkbox_area);\n\t\t\tif (option.danger) {\n\t\t\t\tcheckbox.find('.label-area').addClass('text-danger');\n\t\t\t}\n\t\t\toption.$checkbox = checkbox;\n\t\t});\n\t\tif(this.df.select_all) {\n\t\t\tthis.setup_select_all();\n\t\t}\n\t\tthis.set_checked_options();\n\t},\n\n\tbind_checkboxes() {\n\t\t$(this.wrapper).on('change', ':checkbox', e => {\n\t\t\tconst $checkbox = $(e.target);\n\t\t\tconst option_name = $checkbox.attr(\"data-unit\");\n\t\t\tif($checkbox.is(':checked')) {\n\t\t\t\tif(this.selected_options.includes(option_name)) return;\n\t\t\t\tthis.selected_options.push(option_name);\n\t\t\t} else {\n\t\t\t\tlet index = this.selected_options.indexOf(option_name);\n\t\t\t\tif(index > -1) {\n\t\t\t\t\tthis.selected_options.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.df.on_change && this.df.on_change();\n\t\t});\n\t},\n\n\tset_checked_options() {\n\t\tthis.selected_options = this.options\n\t\t\t.filter(o => o.checked)\n\t\t\t.map(o => o.value);\n\t\tthis.select_options(this.selected_options);\n\t},\n\n\tsetup_select_all() {\n\t\tthis.$select_buttons.show();\n\t\tlet select_all = (deselect=false) => {\n\t\t\t$(this.wrapper).find(`:checkbox`).prop(\"checked\", deselect).trigger('click');\n\t\t};\n\t\tthis.$select_buttons.find('.select-all').on('click', () => {\n\t\t\tselect_all();\n\t\t});\n\t\tthis.$select_buttons.find('.deselect-all').on('click', () => {\n\t\t\tselect_all(true);\n\t\t});\n\t},\n\n\tselect_options(selected_options) {\n\t\tthis.options.map(option => option.value).forEach(value => {\n\t\t\tlet $checkbox = $(this.wrapper).find(`:checkbox[data-unit=\"${value}\"]`)[0];\n\t\t\tif($checkbox) $checkbox.checked = selected_options.includes(value);\n\t\t});\n\t},\n\n\tget_value() {\n\t\treturn this.selected_options;\n\t},\n\n\tget_checked_options() {\n\t\treturn this.get_value();\n\t},\n\n\tget_unchecked_options() {\n\t\treturn this.options.map(o => o.value)\n\t\t\t.filter(value => !this.selected_options.includes(value));\n\t},\n\n\tget_checkbox_element(option) {\n\t\tconst column_size = this.get_column_size();\n\t\treturn $(`\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    `);\n\t},\n\n\tget_select_buttons() {\n\t\treturn $(`\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t\t`);\n\t},\n\n\tget_column_size() {\n\t\treturn 12 / (+this.df.columns || 1);\n\t}\n});\n","frappe.ui.form.ControlTableMultiSelect = frappe.ui.form.ControlLink.extend({\n\tmake_input() {\n\t\tthis._super();\n\n\t\tthis.$input_area.addClass('form-control table-multiselect');\n\t\tthis.$input.removeClass('form-control');\n\n\t\tthis.$input.on(\"awesomplete-selectcomplete\", () => {\n\t\t\tthis.$input.val('').focus();\n\t\t});\n\n\t\t// used as an internal model to store values\n\t\tthis.rows = [];\n\n\t\tthis.$input_area.on('click', (e) => {\n\t\t\tif (e.target === this.$input_area.get(0)) {\n\t\t\t\tthis.$input.focus();\n\t\t\t}\n\t\t});\n\n\t\tthis.$input_area.on('click', '.btn-remove', (e) => {\n\t\t\tconst $target = $(e.currentTarget);\n\t\t\tconst $value = $target.closest('.tb-selected-value');\n\n\t\t\tconst value = decodeURIComponent($value.data().value);\n\t\t\tconst link_field = this.get_link_field();\n\t\t\tthis.rows = this.rows.filter(row => row[link_field.fieldname] !== value);\n\n\t\t\tthis.parse_validate_and_set_in_model('');\n\t\t});\n\t\tthis.$input_area.on('click', '.btn-link-to-form', (e) => {\n\t\t\tconst $target = $(e.currentTarget);\n\t\t\tconst $value = $target.closest('.tb-selected-value');\n\n\t\t\tconst value = decodeURIComponent($value.data().value);\n\t\t\tconst link_field = this.get_link_field();\n\t\t\tfrappe.set_route('Form', link_field.options, value);\n\t\t});\n\t\tthis.$input.on('keydown', e => {\n\t\t\t// if backspace key pressed on empty input, delete last value\n\t\t\tif (e.keyCode == frappe.ui.keyCode.BACKSPACE && e.target.value === '') {\n\t\t\t\tthis.rows = this.rows.slice(0, this.rows.length - 1);\n\t\t\t\tthis.parse_validate_and_set_in_model('');\n\t\t\t}\n\t\t});\n\t},\n\tsetup_buttons() {\n\t\tthis.$input_area.find('.link-btn').remove();\n\t},\n\tparse(value) {\n\t\tconst link_field = this.get_link_field();\n\n\t\tif (value) {\n\t\t\tif (this.frm) {\n\t\t\t\tconst new_row = frappe.model.add_child(this.frm.doc, this.df.options, this.df.fieldname);\n\t\t\t\tnew_row[link_field.fieldname] = value;\n\t\t\t\tthis.rows = this.frm.doc[this.df.fieldname];\n\t\t\t} else {\n\t\t\t\tthis.rows.push({\n\t\t\t\t\t[link_field.fieldname]: value\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn this.rows;\n\t},\n\tvalidate(value) {\n\t\tconst rows = (value || []).slice();\n\n\t\t// validate the value just entered\n\t\tif (this.df.ignore_link_validation) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tconst link_field = this.get_link_field();\n\t\tif (rows.length === 0) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tconst all_rows_except_last = rows.slice(0, rows.length - 1);\n\t\tconst last_row = rows[rows.length - 1];\n\n\t\t// validate the last value entered\n\t\tconst link_value = last_row[link_field.fieldname];\n\n\t\t// falsy value\n\t\tif (!link_value) {\n\t\t\treturn all_rows_except_last;\n\t\t}\n\n\t\t// duplicate value\n\t\tif (all_rows_except_last.map(row => row[link_field.fieldname]).includes(link_value)) {\n\t\t\treturn all_rows_except_last;\n\t\t}\n\n\t\tconst validate_promise = this.validate_link_and_fetch(this.df, this.get_options(),\n\t\t\tthis.docname, link_value);\n\n\t\treturn validate_promise.then(validated_value => {\n\t\t\tif (validated_value === link_value) {\n\t\t\t\treturn rows;\n\t\t\t} else {\n\t\t\t\trows.pop();\n\t\t\t\treturn rows;\n\t\t\t}\n\t\t});\n\t},\n\tset_formatted_input(value) {\n\t\tthis.rows = value || [];\n\t\tconst link_field = this.get_link_field();\n\t\tconst values = this.rows.map(row => row[link_field.fieldname]);\n\t\tthis.set_pill_html(values);\n\t},\n\tset_pill_html(values) {\n\t\tconst html = values\n\t\t\t.map(value => this.get_pill_html(value))\n\t\t\t.join('');\n\n\t\tthis.$input_area.find('.tb-selected-value').remove();\n\t\tthis.$input_area.prepend(html);\n\t},\n\tget_pill_html(value) {\n\t\tconst encoded_value = encodeURIComponent(value);\n\t\treturn `
    \n\t\t\t\n\t\t\t\n\t\t
    `;\n\t},\n\tget_options() {\n\t\treturn (this.get_link_field() || {}).options;\n\t},\n\tget_link_field() {\n\t\tif (!this._link_field) {\n\t\t\tconst meta = frappe.get_meta(this.df.options);\n\t\t\tthis._link_field = meta.fields.find(df => df.fieldtype === 'Link');\n\t\t\tif (!this._link_field) {\n\t\t\t\tthrow new Error('Table MultiSelect requires a Table with atleast one Link field');\n\t\t\t}\n\t\t}\n\t\treturn this._link_field;\n\t},\n});\n","import Awesomplete from 'awesomplete';\n\nfrappe.ui.form.ControlMultiSelectPills = frappe.ui.form.ControlAutocomplete.extend({\n\tmake_input() {\n\t\tthis._super();\n\t\tthis.$input_area = $(this.input_area);\n\t\tthis.$multiselect_wrapper = $('
    ')\n\t\t\t.addClass('form-control table-multiselect')\n\t\t\t.appendTo(this.$input_area);\n\n\t\tthis.$input.removeClass('form-control');\n\t\tthis.$input_area.find('.awesomplete').appendTo(this.$multiselect_wrapper);\n\n\t\tthis.$input.on(\"awesomplete-selectcomplete\", () => {\n\t\t\tthis.$input.val('').focus();\n\t\t});\n\n\t\t// used as an internal model to store values\n\t\tthis.rows = [];\n\n\t\tthis.$input_area.on('click', '.btn-remove', (e) => {\n\t\t\tconst $target = $(e.currentTarget);\n\t\t\tconst $value = $target.closest('.tb-selected-value');\n\n\t\t\tconst value = decodeURIComponent($value.data().value);\n\t\t\tthis.rows = this.rows.filter(val => val !== value);\n\n\t\t\tthis.parse_validate_and_set_in_model('');\n\t\t});\n\n\t\tthis.$input.on('keydown', e => {\n\t\t\t// if backspace key pressed on empty input, delete last value\n\t\t\tif (e.keyCode == frappe.ui.keyCode.BACKSPACE && e.target.value === '') {\n\t\t\t\tthis.rows = this.rows.slice(0, this.rows.length - 1);\n\t\t\t\tthis.parse_validate_and_set_in_model('');\n\t\t\t}\n\t\t});\n\t},\n\n\tparse(value) {\n\t\tif (value) {\n\t\t\tthis.rows.push(value);\n\t\t}\n\n\t\treturn this.rows;\n\t},\n\n\tvalidate(value) {\n\t\tconst rows = (value || []).slice();\n\n\t\tif (rows.length === 0) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tconst all_rows_except_last = rows.slice(0, rows.length - 1);\n\t\tconst last_value = rows[rows.length - 1];\n\n\t\t// falsy value\n\t\tif (!last_value) {\n\t\t\treturn all_rows_except_last;\n\t\t}\n\n\t\t// duplicate value\n\t\tif (all_rows_except_last.includes(last_value)) {\n\t\t\treturn all_rows_except_last;\n\t\t}\n\n\t\treturn rows;\n\t},\n\n\tset_formatted_input(value) {\n\t\tthis.rows = value || [];\n\t\tthis.set_pill_html(this.rows);\n\t},\n\n\tset_pill_html(values) {\n\t\tconst html = values\n\t\t\t.map(value => this.get_pill_html(value))\n\t\t\t.join('');\n\n\t\tthis.$multiselect_wrapper.find('.tb-selected-value').remove();\n\t\tthis.$multiselect_wrapper.prepend(html);\n\t},\n\n\tget_pill_html(value) {\n\t\tconst encoded_value = encodeURIComponent(value);\n\t\treturn `
    \n\t\t\t\n\t\t\t\n\t\t
    `;\n\t},\n\n\tget_awesomplete_settings() {\n\t\tconst settings = this._super();\n\n\t\treturn Object.assign(settings, {\n\t\t\tfilter: function(text, input) {\n\t\t\t\tlet d = this.get_item(text.value);\n\t\t\t\tif(!d) {\n\t\t\t\t\treturn Awesomplete.FILTER_CONTAINS(text, input.match(/[^,]*$/)[0]);\n\t\t\t\t}\n\n\t\t\t\tlet getMatch = value => Awesomplete.FILTER_CONTAINS(value, input.match(/[^,]*$/)[0]);\n\n\t\t\t\t// match typed input with label or value or description\n\t\t\t\tlet v = getMatch(d.label);\n\t\t\t\tif(!v && d.value) {\n\t\t\t\t\tv = getMatch(d.value);\n\t\t\t\t}\n\t\t\t\tif(!v && d.description) {\n\t\t\t\t\tv = getMatch(d.description);\n\t\t\t\t}\n\n\t\t\t\treturn v;\n\t\t\t}\n\t\t});\n\t},\n\n\tget_value() {\n\t\treturn this.rows;\n\t},\n\n\tget_values() {\n\t\treturn this.rows;\n\t},\n\n\tget_data() {\n\t\tlet data;\n\t\tif(this.df.get_data) {\n\t\t\tdata = this.df.get_data();\n\t\t\tif (data && data.then) {\n\t\t\t\tdata.then((r) => {\n\t\t\t\t\tthis.set_data(r);\n\t\t\t\t});\n\t\t\t\tdata = this.get_value();\n\t\t\t} else {\n\t\t\t\tthis.set_data(data);\n\t\t\t}\n\t\t} else {\n\t\t\tdata = this._super();\n\t\t}\n\t\tconst values = this.get_values() || [];\n\n\t\t// return values which are not already selected\n\t\tif (data) data.filter(d => !values.includes(d));\n\t\treturn data;\n\t}\n});\n","frappe.ui.form.ControlMultiSelectList = frappe.ui.form.ControlData.extend({\n\ttrigger_change_on_input_event: false,\n\tmake_input() {\n\t\tlet template = `\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t\n\t\t\t\t\t
    • \n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t
    \n\t\t\t
    \n\t\t`;\n\n\t\tthis.$list_wrapper = $(template);\n\t\tthis.$input = $('');\n\t\tthis.input = this.$input.get(0);\n\t\tthis.has_input = true;\n\t\tthis.$list_wrapper.prependTo(this.input_area);\n\t\tthis.$filter_input = this.$list_wrapper.find('input');\n\t\tthis.$list_wrapper.on('click', '.dropdown-menu', e => {\n\t\t\te.stopPropagation();\n\t\t});\n\t\tthis.$list_wrapper.on('click', '.selectable-item', e => {\n\t\t\tlet $target = $(e.currentTarget);\n\t\t\tthis.toggle_select_item($target);\n\t\t});\n\t\tthis.$list_wrapper.on('input', 'input', frappe.utils.debounce((e) => {\n\t\t\tthis.set_options()\n\t\t\t\t.then(() => {\n\t\t\t\t\tlet txt = e.target.value;\n\t\t\t\t\tlet filtered_options = this._options.filter(opt => {\n\t\t\t\t\t\tlet match = false;\n\t\t\t\t\t\tif (this.values.includes(opt.value)) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = Awesomplete.FILTER_CONTAINS(opt.label, txt)\n\t\t\t\t\t\t\t|| Awesomplete.FILTER_CONTAINS(opt.value, txt)\n\t\t\t\t\t\t\t|| Awesomplete.FILTER_CONTAINS(opt.description, txt);\n\n\t\t\t\t\t\treturn match;\n\t\t\t\t\t});\n\t\t\t\t\tlet options = this._selected_values\n\t\t\t\t\t\t.concat(filtered_options)\n\t\t\t\t\t\t.uniqBy(opt => opt.value);\n\t\t\t\t\tthis.set_selectable_items(options);\n\t\t\t\t});\n\t\t}, 300));\n\t\tthis.$list_wrapper.on('keydown', 'input', e => {\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\tthis.highlight_item(1);\n\t\t\t} else if (e.key === 'ArrowUp') {\n\t\t\t\tthis.highlight_item(-1);\n\t\t\t} else if (e.key === 'Enter') {\n\t\t\t\tif (this._$last_highlighted) {\n\t\t\t\t\tthis.toggle_select_item(this._$last_highlighted);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.$list_wrapper.on('keydown', e => {\n\t\t\tif ($(e.target).is('input')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (e.key === 'Backspace') {\n\t\t\t\tthis.set_value([]);\n\t\t\t}\n\t\t});\n\n\t\tthis.$list_wrapper.on('show.bs.dropdown', () => {\n\t\t\tthis.set_options()\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.set_selectable_items(this._options);\n\t\t\t\t});\n\t\t});\n\n\t\tthis.set_input_attributes();\n\t\tthis.values = [];\n\t\tthis._options = [];\n\t\tthis._selected_values = [];\n\t\tthis.highlighted = -1;\n\t},\n\n\tset_input_attributes() {\n\t\tthis.$list_wrapper\n\t\t\t.attr(\"data-fieldtype\", this.df.fieldtype)\n\t\t\t.attr(\"data-fieldname\", this.df.fieldname);\n\n\t\tthis.set_status(this.get_placeholder_text());\n\n\t\tif (this.doctype) {\n\t\t\tthis.$list_wrapper.attr(\"data-doctype\", this.doctype);\n\t\t}\n\t\tif(this.df.input_css) {\n\t\t\tthis.$list_wrapper.css(this.df.input_css);\n\t\t}\n\t\tif(this.df.input_class) {\n\t\t\tthis.$list_wrapper.addClass(this.df.input_class);\n\t\t}\n\t},\n\n\ttoggle_select_item($selectable_item) {\n\t\t$selectable_item.toggleClass('selected');\n\t\tlet value = decodeURIComponent($selectable_item.data().value);\n\n\t\tif ($selectable_item.hasClass('selected')) {\n\t\t\tthis.values.push(value);\n\t\t} else {\n\t\t\tthis.values = this.values.filter(val => val !== value);\n\t\t}\n\t\tthis.update_selected_values(value);\n\t\tthis.parse_validate_and_set_in_model('');\n\t\tthis.update_status();\n\t},\n\n\tset_value(value) {\n\t\tif (!value) return Promise.resolve();\n\t\tif (typeof value === 'string') {\n\t\t\tvalue = [value];\n\t\t}\n\t\tthis.values = value;\n\t\tthis.values.forEach(value => {\n\t\t\tthis.update_selected_values(value);\n\t\t});\n\t\tthis.parse_validate_and_set_in_model('');\n\t\tthis.update_status();\n\t\treturn Promise.resolve();\n\t},\n\n\tupdate_selected_values(value) {\n\t\tthis._selected_values = this._selected_values || [];\n\t\tlet option = this._options.find(opt => opt.value === value);\n\t\tif (option) {\n\t\t\tif (this.values.includes(value)) {\n\t\t\t\tthis._selected_values.push(option);\n\t\t\t} else {\n\t\t\t\tthis._selected_values = this._selected_values.filter(opt => opt.value !== value);\n\t\t\t}\n\t\t}\n\t},\n\n\tupdate_status() {\n\t\tlet text;\n\t\tif (this.values.length === 0) {\n\t\t\ttext = this.get_placeholder_text();\n\t\t} else if (this.values.length === 1) {\n\t\t\tlet val = this.values[0];\n\t\t\tlet option = this._options.find(opt => opt.value === val);\n\t\t\ttext = option ? option.label : val;\n\t\t} else {\n\t\t\ttext = __('{0} values selected', [this.values.length]);\n\t\t}\n\t\tthis.set_status(text);\n\t},\n\n\tget_placeholder_text() {\n\t\treturn `${this.df.placeholder || ''}`;\n\t},\n\n\tset_status(text) {\n\t\tthis.$list_wrapper.find('.status-text').html(text);\n\t},\n\n\tset_options() {\n\t\tlet promise = Promise.resolve();\n\n\t\tfunction process_options(options) {\n\t\t\treturn options.map(option => {\n\t\t\t\tif (typeof option === 'string') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tlabel: option,\n\t\t\t\t\t\tvalue: option\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (!option.label) {\n\t\t\t\t\toption.label = option.value;\n\t\t\t\t}\n\t\t\t\treturn option;\n\t\t\t});\n\t\t}\n\n\t\tif (this.df.get_data) {\n\t\t\tlet txt = this.$filter_input.val();\n\t\t\tlet value = this.df.get_data(txt);\n\t\t\tif (!value) {\n\t\t\t\tthis._options = [];\n\t\t\t} else if (value.then) {\n\t\t\t\tpromise = value.then(options => {\n\t\t\t\t\tthis._options = process_options(options);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis._options = process_options(value);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._options = process_options(this.df.options);\n\t\t}\n\t\treturn promise;\n\t},\n\n\tset_selectable_items(options) {\n\t\tlet html = options.map(option => {\n\t\t\tlet encoded_value = encodeURIComponent(option.value);\n\t\t\tlet selected = this.values.includes(option.value) ? 'selected' : '';\n\t\t\treturn `
  • \n\t\t\t\t
    \n\t\t\t\t\t${option.label}\n\t\t\t\t\t
    ${option.description}
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
  • `;\n\t\t}).join('');\n\t\tif (!html) {\n\t\t\thtml = `
  • ${__('No values to show')}
  • `;\n\t\t}\n\t\tthis.$list_wrapper\n\t\t\t.find('.selectable-items')\n\t\t\t.html(html);\n\n\t\tthis.highlighted = -1;\n\t},\n\n\tget_value() {\n\t\treturn this.values;\n\t},\n\n\thighlight_item(value) {\n\t\tthis.highlighted += value;\n\n\t\tif (this.highlighted < 0) {\n\t\t\tthis.highlighted = 0;\n\t\t}\n\t\tlet $items = this.$list_wrapper.find('.selectable-item');\n\t\tif (this.highlighted > $items.length - 1) {\n\t\t\tthis.highlighted = $items.length - 1;\n\t\t}\n\n\t\tlet $item = $items[this.highlighted];\n\n\t\tif (this._$last_highlighted) {\n\t\t\tthis._$last_highlighted.removeClass('highlighted');\n\t\t}\n\t\tthis._$last_highlighted = $($item).addClass('highlighted');\n\t\tthis.scroll_dropdown_if_needed($item);\n\t},\n\n\tscroll_dropdown_if_needed($item) {\n\t\tif ($item.scrollIntoView) {\n\t\t\t$item.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' });\n\t\t} else {\n\t\t\t$item.parentNode.scrollTop = $item.offsetTop - $item.parentNode.offsetTop;\n\t\t}\n\t}\n});\n","frappe.ui.form.ControlRating = frappe.ui.form.ControlInt.extend({\n\tmake_input() {\n\t\tthis._super();\n\t\tconst star_template = `\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t`;\n\n\t\t$(this.input_area).html(star_template);\n\n\t\t$(this.input_area).find('i').hover((ev) => {\n\t\t\tconst el = $(ev.currentTarget);\n\t\t\tlet star_value = el.data('rating');\n\t\t\tel.parent().children('i.fa').each( function(e){\n\t\t\t\tif (e < star_value) {\n\t\t\t\t\t$(this).addClass('star-hover');\n\t\t\t\t} else {\n\t\t\t\t\t$(this).removeClass('star-hover');\n\t\t\t\t}\n\t\t\t});\n\t\t}, (ev) => {\n\t\t\tconst el = $(ev.currentTarget);\n\t\t\tel.parent().children('i.fa').each( function() {\n\t\t\t\t$(this).removeClass('star-hover');\n\t\t\t});\n\t\t});\n\n\t\t$(this.input_area).find('i').click((ev) => {\n\t\t\tconst el = $(ev.currentTarget);\n\t\t\tlet star_value = el.data('rating');\n\t\t\tel.parent().children('i.fa').each( function(e) {\n\t\t\t\tif (e < star_value){\n\t\t\t\t\t$(this).addClass('star-click');\n\t\t\t\t} else {\n\t\t\t\t\t$(this).removeClass('star-click');\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.validate_and_set_in_model(star_value, ev);\n\t\t\tif (this.doctype && this.docname) {\n\t\t\t\tthis.set_input(star_value);\n\t\t\t}\n\t\t});\n\t},\n\tget_value() {\n\t\treturn cint(this.value);\n\t},\n\tset_formatted_input(value) {\n\t\tlet el = $(this.input_area).find('i');\n\t\tel.children('i.fa').prevObject.each( function(e) {\n\t\t\tif (e < value) {\n\t\t\t\t$(this).addClass('star-click');\n\t\t\t} else {\n\t\t\t\t$(this).removeClass('star-click');\n\t\t\t}\n\t\t});\n\t}\n});","import './base_control';\nimport './base_input';\nimport './data';\nimport './int';\nimport './float';\nimport './currency';\nimport './date';\nimport './time';\nimport './datetime';\nimport './date_range';\nimport './select';\nimport './link';\nimport './dynamic_link';\nimport './text';\nimport './code';\nimport './text_editor';\nimport './comment';\nimport './check';\nimport './image';\nimport './attach';\nimport './attach_image';\nimport './table';\nimport './color';\nimport './signature';\nimport './password';\nimport './read_only';\nimport './button';\nimport './html';\nimport './markdown_editor';\nimport './html_editor';\nimport './heading';\nimport './autocomplete';\nimport './barcode';\nimport './geolocation';\nimport './multiselect';\nimport './multicheck';\nimport './table_multiselect';\nimport './multiselect_pills';\nimport './multiselect_list';\nimport './rating';\n\nfrappe.ui.form.make_control = function (opts) {\n\tvar control_class_name = \"Control\" + opts.df.fieldtype.replace(/ /g, \"\");\n\tif(frappe.ui.form[control_class_name]) {\n\t\treturn new frappe.ui.form[control_class_name](opts);\n\t} else {\n\t\t// eslint-disable-next-line\n\t\tconsole.log(\"Invalid Control Name: \" + opts.df.fieldtype);\n\t}\n};\n\n"],"names":["const","this","let","Awesomplete","overMentionCharPos","_constants","_ITF2","_ITF","_MSI2","_MSI","_CODE2","arguments"],"mappings":"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"}