quikchat 1.1.13 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -107,7 +107,8 @@ var quikchat = /*#__PURE__*/function () {
107
107
  show: true
108
108
  },
109
109
  sendOnEnter: true,
110
- sendOnShiftEnter: false
110
+ sendOnShiftEnter: false,
111
+ instanceClass: ''
111
112
  };
112
113
  var meta = _objectSpread2(_objectSpread2({}, defaultOpts), options); // merge options with defaults
113
114
 
@@ -119,6 +120,10 @@ var quikchat = /*#__PURE__*/function () {
119
120
  this._theme = meta.theme;
120
121
  this._onSend = onSend ? onSend : function () {}; // call back function for onSend
121
122
  this._createWidget();
123
+ if (meta.instanceClass) {
124
+ this._chatWidget.classList.add(meta.instanceClass);
125
+ }
126
+
122
127
  // title area
123
128
  if (meta.titleArea) {
124
129
  this.titleAreaSetContents(meta.titleArea.title, meta.titleArea.align);
@@ -142,6 +147,7 @@ var quikchat = /*#__PURE__*/function () {
142
147
  this.trackHistory = meta.trackHistory || true;
143
148
  this._historyLimit = 10000000;
144
149
  this._history = [];
150
+ this._activeTags = new Set();
145
151
 
146
152
  // send on enter / shift enter
147
153
  this.sendOnEnter = meta.sendOnEnter;
@@ -319,6 +325,7 @@ var quikchat = /*#__PURE__*/function () {
319
325
  }, {
320
326
  key: "messageAddFull",
321
327
  value: function messageAddFull() {
328
+ var _this2 = this;
322
329
  var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
323
330
  content: "",
324
331
  userString: "user",
@@ -328,13 +335,22 @@ var quikchat = /*#__PURE__*/function () {
328
335
  timestamp: false,
329
336
  updatedtime: false,
330
337
  scrollIntoView: true,
331
- visible: true
338
+ visible: true,
339
+ tags: []
332
340
  };
333
341
  var msgid = this.msgid;
334
342
  var messageDiv = document.createElement('div');
335
343
  var msgidClass = 'quikchat-msgid-' + String(msgid).padStart(10, '0');
336
344
  'quikchat-userid-' + String(input.userString).padStart(10, '0'); // hash this..
337
345
  messageDiv.classList.add('quikchat-message', msgidClass, 'quikchat-structure');
346
+ if (Array.isArray(input.tags)) {
347
+ input.tags.forEach(function (tag) {
348
+ if (typeof tag === 'string' && /^[a-zA-Z0-9-]+$/.test(tag)) {
349
+ messageDiv.classList.add("quikchat-tag-".concat(tag));
350
+ _this2._activeTags.add(tag);
351
+ }
352
+ });
353
+ }
338
354
  this.msgid++;
339
355
  var userDiv = document.createElement('div');
340
356
  userDiv.innerHTML = input.userString;
@@ -402,13 +418,15 @@ var quikchat = /*#__PURE__*/function () {
402
418
  var role = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "user";
403
419
  var scrollIntoView = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
404
420
  var visible = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
421
+ var tags = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : [];
405
422
  var retvalue = this.messageAddFull({
406
423
  content: content,
407
424
  userString: userString,
408
425
  align: align,
409
426
  role: role,
410
427
  scrollIntoView: scrollIntoView,
411
- visible: visible
428
+ visible: visible,
429
+ tags: tags
412
430
  });
413
431
  // this.messageScrollToBottom();
414
432
  return retvalue;
@@ -693,6 +711,7 @@ var quikchat = /*#__PURE__*/function () {
693
711
  this.msgid = 0;
694
712
  this._messagesArea.innerHTML = "";
695
713
  this._history = [];
714
+ this._activeTags.clear();
696
715
  }
697
716
  }, {
698
717
  key: "historyGetLength",
@@ -717,7 +736,7 @@ var quikchat = /*#__PURE__*/function () {
717
736
  }, {
718
737
  key: "historyRestoreAll",
719
738
  value: function historyRestoreAll(messageList) {
720
- var _this2 = this;
739
+ var _this3 = this;
721
740
  // clear all messages and history
722
741
  this.historyClear();
723
742
 
@@ -726,7 +745,7 @@ var quikchat = /*#__PURE__*/function () {
726
745
 
727
746
  // add all messages
728
747
  messageList.forEach(function (message) {
729
- _this2.messageAddFull(message);
748
+ _this3.messageAddFull(message);
730
749
  });
731
750
  }
732
751
  /**
@@ -755,11 +774,39 @@ var quikchat = /*#__PURE__*/function () {
755
774
  *
756
775
  * @returns {object} - Returns the version and license information for the library.
757
776
  */
777
+ }, {
778
+ key: "setTagVisibility",
779
+ value: function setTagVisibility(tagName, isVisible) {
780
+ if (typeof tagName !== 'string' || !/^[a-zA-Z0-9-]+$/.test(tagName)) {
781
+ return false;
782
+ }
783
+ var className = "quikchat-show-tag-".concat(tagName);
784
+ if (isVisible) {
785
+ this._chatWidget.classList.add(className);
786
+ } else {
787
+ this._chatWidget.classList.remove(className);
788
+ }
789
+ this._updateMessageStyles();
790
+ return true;
791
+ }
792
+ }, {
793
+ key: "getTagVisibility",
794
+ value: function getTagVisibility(tagName) {
795
+ if (typeof tagName !== 'string' || !/^[a-zA-Z0-9-]+$/.test(tagName)) {
796
+ return false;
797
+ }
798
+ return this._chatWidget.classList.contains("quikchat-show-tag-".concat(tagName));
799
+ }
800
+ }, {
801
+ key: "getActiveTags",
802
+ value: function getActiveTags() {
803
+ return Array.from(this._activeTags);
804
+ }
758
805
  }], [{
759
806
  key: "version",
760
807
  value: function version() {
761
808
  return {
762
- "version": "1.1.13",
809
+ "version": "1.1.14",
763
810
  "license": "BSD-2",
764
811
  "url": "https://github/deftio/quikchat",
765
812
  "fun": true
@@ -1 +1 @@
1
- {"version":3,"file":"quikchat.cjs.js","sources":["../src/quikchat.js"],"sourcesContent":["class quikchat {\n /**\n * \n * @param string or DOM element parentElement \n * @param {*} meta \n */\n constructor(parentElement, onSend = () => { }, options = {}) {\n const defaultOpts = {\n theme: 'quikchat-theme-light',\n trackHistory: true,\n titleArea: { title: \"Chat\", show: false, align: \"center\" },\n messagesArea: { alternating: true },\n inputArea: { show: true },\n sendOnEnter: true,\n sendOnShiftEnter: false\n };\n const meta = { ...defaultOpts, ...options }; // merge options with defaults\n\n if (typeof parentElement === 'string') {\n parentElement = document.querySelector(parentElement);\n }\n //console.log(parentElement, meta);\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = onSend ? onSend : () => { }; // call back function for onSend\n this._createWidget();\n // title area\n if (meta.titleArea) {\n this.titleAreaSetContents(meta.titleArea.title, meta.titleArea.align);\n if (meta.titleArea.show === true) {\n this.titleAreaShow();\n } else {\n this.titleAreaHide();\n }\n }\n // messages area\n if (meta.messagesArea) {\n this.messagesAreaAlternateColors(meta.messagesArea.alternating);\n }\n\n // input area\n if (meta.inputArea) {\n if (meta.inputArea.show === true)\n this.inputAreaShow();\n else\n this.inputAreaHide();\n }\n // plumbing\n this._attachEventListeners();\n this.trackHistory = meta.trackHistory || true;\n this._historyLimit = 10000000;\n this._history = [];\n\n // send on enter / shift enter\n this.sendOnEnter = meta.sendOnEnter;\n this.sendOnShiftEnter = meta.sendOnShiftEnter;\n }\n\n _createWidget() {\n const widgetHTML =\n `\n <div class=\"quikchat-base ${this.theme}\">\n <div class=\"quikchat-title-area\">\n <span style=\"font-size: 1.5em; font-weight: 600;\">Title Area</span>\n </div>\n <div class=\"quikchat-messages-area\"></div>\n <div class=\"quikchat-input-area\">\n <textarea class=\"quikchat-input-textbox\"></textarea>\n <button class=\"quikchat-input-send-btn\">Send</button>\n </div>\n </div>\n `;\n\n this._parentElement.innerHTML = widgetHTML;\n this._chatWidget = this._parentElement.querySelector('.quikchat-base');\n this._titleArea = this._chatWidget.querySelector('.quikchat-title-area');\n this._messagesArea = this._chatWidget.querySelector('.quikchat-messages-area');\n this._inputArea = this._chatWidget.querySelector('.quikchat-input-area');\n this._textEntry = this._inputArea.querySelector('.quikchat-input-textbox');\n this._sendButton = this._inputArea.querySelector('.quikchat-input-send-btn');\n this.msgid = 0;\n }\n\n /**\n * Attach event listeners to the widget\n */\n _attachEventListeners() {\n this._sendButton.addEventListener('click', (event) => { event.preventDefault(); this._onSend(this, this._textEntry.value.trim()) });\n window.addEventListener('resize', () => this._handleContainerResize());\n this._chatWidget.addEventListener('resize', () => this._handleContainerResize());\n this._textEntry.addEventListener('keydown', (event) => {\n\n // Check if Shift + Enter is pressed then we just do carraige\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n if (this.sendOnShiftEnter) {\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim());\n }\n } else if (event.keyCode === 13) {// Enter but not Shift + Enter\n if (this.sendOnEnter) {\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim());\n }\n }\n });\n\n this._messagesArea.addEventListener('scroll', () => {\n const { scrollTop, scrollHeight, clientHeight } = this._messagesArea;\n this.userScrolledUp = scrollTop + clientHeight < scrollHeight;\n });\n }\n\n // set the onSend function callback.\n setCallbackOnSend(callback) {\n this._onSend = callback;\n }\n // set a callback for everytime a message is added (listener)\n setCallbackonMessageAdded(callback) {\n this._onMessageAdded = callback;\n }\n\n // Public methods\n titleAreaToggle() {\n this._titleArea.style.display === 'none' ? this.titleAreaShow() : this.titleAreaHide();\n }\n\n titleAreaShow() {\n this._titleArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaHide() {\n this._titleArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaSetContents(title, align = 'center') {\n this._titleArea.innerHTML = title;\n this._titleArea.style.textAlign = align;\n }\n\n titleAreaGetContents() {\n return this._titleArea.innerHTML;\n }\n\n inputAreaToggle() {\n this._inputArea.classList.toggle('hidden');\n this._inputArea.style.display === 'none' ? this.inputAreaShow() : this.inputAreaHide();\n }\n\n inputAreaShow() {\n this._inputArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n inputAreaHide() {\n this._inputArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n _adjustMessagesAreaHeight() {\n const hiddenElements = [...this._chatWidget.children].filter(child => child.classList.contains('hidden'));\n const totalHiddenHeight = hiddenElements.reduce((sum, child) => sum + child.offsetHeight, 0);\n const containerHeight = this._chatWidget.offsetHeight;\n this._messagesArea.style.height = `calc(100% - ${containerHeight - totalHiddenHeight}px)`;\n }\n\n _handleContainerResize() {\n this._adjustMessagesAreaHeight();\n this._adjustSendButtonWidth();\n return true;\n }\n\n _adjustSendButtonWidth() {\n const sendButtonText = this._sendButton.textContent.trim();\n const fontSize = parseFloat(getComputedStyle(this._sendButton).fontSize);\n const minWidth = fontSize * sendButtonText.length + 16;\n this._sendButton.style.minWidth = `${minWidth}px`;\n return true;\n }\n\n //messagesArea functions\n messagesAreaAlternateColors(alt = true) {\n if (alt) {\n this._messagesArea.classList.add('quikchat-messages-area-alt');\n }\n else {\n this._messagesArea.classList.remove('quikchat-messages-area-alt');\n }\n return alt === true;\n }\n messagesAreaAlternateColorsToggle() {\n this._messagesArea.classList.toggle('quikchat-messages-area-alt');\n }\n messagesAreaAlternateColorsGet() {\n return this._messagesArea.classList.contains('quikchat-messages-area-alt');\n }\n // message functions\n messageAddFull(input = { content: \"\", userString: \"user\", align: \"right\", role: \"user\", userID: -1, timestamp: false, updatedtime: false, scrollIntoView: true, visible: true }) {\n const msgid = this.msgid;\n const messageDiv = document.createElement('div');\n const msgidClass = 'quikchat-msgid-' + String(msgid).padStart(10, '0');\n const userIdClass = 'quikchat-userid-' + String(input.userString).padStart(10, '0'); // hash this..\n messageDiv.classList.add('quikchat-message', msgidClass, 'quikchat-structure');\n this.msgid++;\n\n const userDiv = document.createElement('div');\n userDiv.innerHTML = input.userString;\n userDiv.classList.add('quikchat-user-label');\n userDiv.style.textAlign = input.align;\n \n const contentDiv = document.createElement('div');\n contentDiv.classList.add('quikchat-message-content');\n \n // Determine text alignment for right-aligned messages\n if (input.align === \"right\") {\n const isMultiLine = input.content.includes(\"\\n\");\n const isLong = input.content.length > 50; // Adjust length threshold\n \n if (isMultiLine || isLong) {\n contentDiv.classList.add(\"quikchat-right-multiline\");\n } else {\n contentDiv.classList.add(\"quikchat-right-singleline\");\n }\n }\n \n contentDiv.innerHTML = input.content;\n \n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n \n const visible = input.visible === undefined ? true : input.visible;\n if (!visible) {\n messageDiv.style.display = 'none';\n }\n \n // Scroll to the last message only if the user is not actively scrolling up\n if ((!this.userScrolledUp) || input.scrollIntoView) {\n this.messageScrollToBottom();\n }\n \n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n this._handleShortLongMessageCSS(messageDiv, input.align); // Handle CSS for short/long messages\n this._updateMessageStyles();\n \n // Add timestamp now, unless it is passed in \n const timestamp = input.timestamp ? input.timestamp : new Date().toISOString();\n const updatedtime = input.updatedtime ? input.updatedtime : timestamp;\n \n if (this.trackHistory) {\n this._history.push({ msgid, ...input, visible, timestamp, updatedtime, messageDiv });\n if (this._history.length > this._historyLimit) {\n this._history.shift();\n }\n }\n \n if (this._onMessageAdded) {\n this._onMessageAdded(this, msgid);\n }\n \n return msgid;\n }\n \n\n\n messageAddNew(content = \"\", userString = \"user\", align = \"right\", role = \"user\", scrollIntoView = true, visible = true) {\n let retvalue = this.messageAddFull(\n { content: content, userString: userString, align: align, role: role, scrollIntoView: scrollIntoView, visible: visible }\n );\n // this.messageScrollToBottom();\n return retvalue;\n }\n\n messageRemove(n) {\n // use css selector to remove the message\n let sucess = false;\n try {\n this._messagesArea.removeChild(this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`));\n sucess = true;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n if (sucess) {\n // slow way to remove from history\n //this._history = this._history.filter((item) => item.msgid !== n); // todo make this more efficient\n\n // better way to delete this from history\n this._history.splice(this._history.findIndex((item) => item.msgid === n), 1);\n }\n return sucess;\n }\n /* returns the message html object from the DOM\n */\n messageGetDOMObject(n) {\n let msg = null;\n // now use css selector to get the message \n try {\n msg = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`);\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n return msg;\n }\n /* returns the message content only\n */\n messageGetContent(n) {\n let content = \"\"\n // now use css selector to get the message \n try {\n // get from history..\n content = this._history.filter((item) => item.msgid === n)[0].content;\n //content = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.textContent;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content;\n }\n\n /* returns the DOM Content element of a given message\n */\n messageGetContentDOMElement(n) {\n let contentElement = null;\n // now use css selector to get the message\n try {\n //contentElement = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild;\n contentElement = this._history.filter((item) => item.msgid === n)[0].messageDiv.lastChild;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n return contentElement;\n }\n\n /* append message to the message content\n */\n\n messageAppendContent(n, content) {\n let success = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML += content;\n // update history\n let item = this._history.filter((item) => item.msgid === n)[0];\n item.content += content;\n item.updatedtime = new Date().toISOString();\n success = true;\n\n // Scroll to the last message only if the user is not actively scrolling up\n if (!this.userScrolledUp) {\n this._messagesArea.lastElementChild.scrollIntoView();\n }\n } catch (error) {\n console.log(`${String(n)} : Message ID not found`);\n }\n return success;\n }\n\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let success = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n // update history\n let item = this._history.filter((item) => item.msgid === n)[0];\n item.content = content;\n item.updatedtime = new Date().toISOString();\n success = true;\n\n // Scroll to the last message only if the user is not actively scrolling up\n if (!this.userScrolledUp) {\n this._messagesArea.lastElementChild.scrollIntoView();\n }\n } catch (error) {\n console.log(`${String(n)} : Message ID not found`);\n }\n return success;\n }\n\n /**\n * Scrolls the messages area to the bottom.\n */\n messageScrollToBottom() {\n if (this._messagesArea.lastElementChild) {\n this._messagesArea.lastElementChild.scrollIntoView();\n }\n }\n\n /**\n * Removes the last message from the messages area.\n */\n messageRemoveLast() {\n // find the last message by id:\n if (this._history.length >= 0) {\n let lastMsgId = this._history[this._history.length - 1].msgid;\n return this.messageRemove(lastMsgId);\n }\n return false;\n }\n\n messageSetVisibility(msgid, isVisible) {\n const message = this._history.find(item => item.msgid === msgid);\n if (message && message.messageDiv) {\n message.messageDiv.style.display = isVisible ? '' : 'none';\n message.visible = isVisible;\n this._updateMessageStyles();\n return true;\n }\n return false;\n }\n\n messageGetVisibility(msgid) {\n const message = this._history.find(item => item.msgid === msgid);\n if (message && message.messageDiv) {\n return message.messageDiv.style.display !== 'none';\n }\n return false; // Return false if not found or no messageDiv\n }\n\n _updateMessageStyles() {\n const visibleMessages = [...this._messagesArea.children].filter(\n child => child.style.display !== 'none'\n );\n\n visibleMessages.forEach((messageDiv, index) => {\n messageDiv.classList.remove('quikchat-message-1', 'quikchat-message-2');\n messageDiv.classList.add(index % 2 === 0 ? 'quikchat-message-1' : 'quikchat-message-2');\n });\n }\n\n /**\n * For right sided or centered messages, we need to handle the CSS for short and long messages.\n * for short messages we use simple justifying, for long messages we need to wrap and perform multiline\n * formatting. \n * \n * @param {*} messageElement \n * @returns nothing\n */\n _handleShortLongMessageCSS(messageElement, align) {\n // console.log(messageElement);\n // Reset classes\n messageElement.classList.remove(\n 'left-singleline', 'left-multiline',\n 'center-singleline', 'center-multiline',\n 'right-singleline', 'right-multiline');\n let contentDiv = messageElement.lastChild;\n window.lastDiv = contentDiv; // for debugging \n // Determine if the message is short or long\n\n const computedStyle = window.getComputedStyle(contentDiv);\n\n // Get the element's height\n const elementHeight = contentDiv.offsetHeight;\n\n // Calculate or estimate line height\n let lineHeight;\n if (computedStyle.lineHeight === \"normal\") {\n const fontSize = parseFloat(computedStyle.fontSize);\n lineHeight = fontSize * 1.2; // approximate \"normal\" as 1.2 times font-size\n } else {\n lineHeight = parseFloat(computedStyle.lineHeight);\n }\n\n // Check if the element height is more than one line-height\n const isMultiLine = elementHeight > lineHeight;\n\n // Using scrollHeight and clientHeight to check for overflow (multi-line)\n switch (align) {\n case 'center':\n if (isMultiLine) {\n messageElement.classList.add('center-multiline');\n }\n else {\n messageElement.classList.add('center-singleline');\n }\n break;\n case 'right':\n if (isMultiLine) {\n messageElement.classList.add('right-multiline');\n }\n else {\n messageElement.classList.add('right-singleline');\n }\n break;\n case 'left':\n default:\n if (isMultiLine) {\n messageElement.classList.add('left-multiline');\n }\n else {\n messageElement.classList.add('left-singleline');\n }\n break;\n }\n\n }\n // history functions\n /**\n * \n * @param {*} n \n * @param {*} m \n * @returns array of history messages\n */\n historyGet(n, m) {\n\n if (n == undefined) {\n n = 0;\n m = this._history.length;\n }\n if (m === undefined) {\n m = n < 0 ? m : n + 1;\n }\n // remember that entries could be deleted. TODO: So we need to return the actual history entries\n // so now we need to find the array index that correspondes to messageIds n (start) and m (end)\n\n return this._history.slice(n, m);\n }\n\n historyGetAllCopy() {\n return this._history.slice();\n }\n\n historyClear() {\n this.msgid = 0;\n this._messagesArea.innerHTML = \"\";\n this._history = [];\n }\n\n historyGetLength() {\n return this._history.length;\n }\n\n historyGetMessage(n) {\n if (n >= 0 && n < this._history.length) {\n return this._history[n];\n }\n return {};\n\n }\n\n historyGetMessageContent(n) {\n if (n >= 0 && n < this._history.length)\n return this._history[n].content;\n else\n return \"\";\n }\n\n // expects an array of messages to be in the format of the history object\n historyRestoreAll(messageList) {\n // clear all messages and history\n this.historyClear();\n\n // clear the messages div \n this._messagesArea.innerHTML = \"\";\n\n // add all messages\n messageList.forEach((message) => {\n this.messageAddFull(message);\n });\n }\n /**\n * \n * @param {string} newTheme \n */\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n\n /**\n * Get the current theme\n * @returns {string} - The current theme\n */\n get theme() {\n return this._theme;\n }\n\n /**\n * \n * @returns {object} - Returns the version and license information for the library.\n */\n static version() {\n return { \"version\": \"1.1.13\", \"license\": \"BSD-2\", \"url\": \"https://github/deftio/quikchat\", \"fun\": true };\n }\n\n /**\n * quikchat.loremIpsum() - Generate a simple string of Lorem Ipsum text (sample typographer's text) of numChars in length.\n * borrowed from github.com/deftio/bitwrench.js\n * @param {number} numChars - The number of characters to generate (random btw 25 and 150 if undefined). \n * @param {number} [startSpot=0] - The starting index in the Lorem Ipsum text. If undefined, a random startSpot will be generated.\n * @param {boolean} [startWithCapitalLetter=true] - If true, capitalize the first character or inject a capital letter if the first character isn't a capital letter.\n * \n * @returns {string} A string of Lorem Ipsum text.\n * \n * @example \n * // Returns 200 characters of Lorem Ipsum starting from index 50\n * loremIpsum(200, 50);\n * \n * @example \n * //Returns a 200 Lorem Ipsum characters starting from a random index\n * loremIpsum(200);\n */\n\n static loremIpsum(numChars, startSpot = undefined, startWithCapitalLetter = true) {\n const loremText = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \";\n\n if (typeof numChars !== \"number\") {\n numChars = Math.floor(Math.random() * (150)) + 25;\n }\n\n if (startSpot === undefined) {\n startSpot = Math.floor(Math.random() * loremText.length);\n }\n\n startSpot = startSpot % loremText.length;\n\n // Move startSpot to the next non-whitespace and non-punctuation character\n while (loremText[startSpot] === ' ' || /[.,:;!?]/.test(loremText[startSpot])) {\n startSpot = (startSpot + 1) % loremText.length;\n }\n\n let l = loremText.substring(startSpot) + loremText.substring(0, startSpot);\n\n if (typeof numChars !== \"number\") {\n numChars = l.length;\n }\n\n let s = \"\";\n while (numChars > 0) {\n s += numChars < l.length ? l.substring(0, numChars) : l;\n numChars -= l.length;\n }\n\n if (s[s.length - 1] === \" \") {\n s = s.substring(0, s.length - 1) + \".\"; // always end on non-whitespace. \".\" was chosen arbitrarily.\n }\n\n if (startWithCapitalLetter) {\n let c = s[0].toUpperCase();\n c = /[A-Z]/.test(c) ? c : \"M\";\n s = c + s.substring(1);\n }\n\n return s;\n };\n\n static tempMessageGenerator (domElement, content, interval, cb = null) {\n interval = Math.max(interval, 100); // Ensure at least 100ms interval\n \n let count = 0;\n\n let defaultCB = (msg, count) => {msg += \".\"; return msg; };\n\n if (cb && typeof cb !== 'function') {\n cb = null;\n }\n\n cb = cb || defaultCB;\n \n // if its a string, then get the element (css sel) or its an DOM element already \n let el = domElement;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n } \n\n const element = el;\n\n \n // Ensure the element exists\n if (!element) return;\n \n element.innerHTML = content;\n let currentMsg = content;\n \n const intervalId = setInterval(() => {\n if (element.innerHTML !== currentMsg) {\n clearInterval(intervalId); // Stop updating if content is changed externally\n return;\n }\n \n currentMsg = String( cb(currentMsg, count)) ;// Use callback return value if provided\n \n count++;\n element.innerHTML = currentMsg;\n }, interval);\n }\n\n static createTempMessageDOMStr(initialContent, updateInterval = 1000, callback = null, options = {}) {\n // Make sure the interval is at least 100ms\n updateInterval = Math.max(updateInterval, 100);\n \n // Validate callback; if not a function, ignore it.\n if (callback && typeof callback !== 'function') {\n callback = null;\n }\n // Default callback simply appends a dot.\n callback = callback || function(msg, count) {\n return msg + \".\";\n };\n \n // Allow an optional CSS class for the container element\n const containerClass = options.containerClass ? options.containerClass : '';\n \n // Generate a unique id so that the inline script can reliably find the container.\n const uniqueId = \"tempMsg_\" + Date.now() + \"_\" + Math.floor(Math.random() * 1000000);\n \n // Build and return the HTML string.\n // Note the use of <\\/script> (with a backslash) so that the inline script is not terminated early.\n return `\n <span id=\"${uniqueId}\" ${containerClass ? `class=\"${containerClass}\"` : ''}>\n ${initialContent}\n </span>\n <script>\n (function(){\n // Get our container element by its unique id.\n var container = document.getElementById(\"${uniqueId}\");\n if (!container) return;\n var count = 0;\n var currentMsg = container.innerHTML;\n var interval = ${updateInterval};\n // Convert the callback function into its string representation.\n var cb = ${callback.toString()};\n var intervalId = setInterval(function(){\n // If the content has been replaced, stop updating.\n if(container.innerHTML !== currentMsg){\n clearInterval(intervalId);\n return;\n }\n // Use the callback to generate the new message.\n currentMsg = String(cb(currentMsg, count));\n count++;\n container.innerHTML = currentMsg;\n }, interval);\n })();\n <\\/script>\n `;\n }\n \n\n}\n\nexport default quikchat;\n"],"names":["quikchat","parentElement","onSend","arguments","length","undefined","options","_classCallCheck","defaultOpts","theme","trackHistory","titleArea","title","show","align","messagesArea","alternating","inputArea","sendOnEnter","sendOnShiftEnter","meta","_objectSpread","document","querySelector","_parentElement","_theme","_onSend","_createWidget","titleAreaSetContents","titleAreaShow","titleAreaHide","messagesAreaAlternateColors","inputAreaShow","inputAreaHide","_attachEventListeners","_historyLimit","_history","_createClass","key","value","widgetHTML","concat","innerHTML","_chatWidget","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","_this","addEventListener","event","preventDefault","trim","window","_handleContainerResize","shiftKey","keyCode","_this$_messagesArea","scrollTop","scrollHeight","clientHeight","userScrolledUp","setCallbackOnSend","callback","setCallbackonMessageAdded","_onMessageAdded","titleAreaToggle","style","display","_adjustMessagesAreaHeight","textAlign","titleAreaGetContents","inputAreaToggle","classList","toggle","hiddenElements","_toConsumableArray","children","filter","child","contains","totalHiddenHeight","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","fontSize","parseFloat","getComputedStyle","minWidth","alt","add","remove","messagesAreaAlternateColorsToggle","messagesAreaAlternateColorsGet","messageAddFull","input","content","userString","role","userID","timestamp","updatedtime","scrollIntoView","visible","messageDiv","createElement","msgidClass","String","padStart","userDiv","contentDiv","isMultiLine","includes","isLong","appendChild","messageScrollToBottom","_handleShortLongMessageCSS","_updateMessageStyles","Date","toISOString","push","shift","messageAddNew","retvalue","messageRemove","n","sucess","removeChild","error","console","log","splice","findIndex","item","messageGetDOMObject","msg","messageGetContent","messageGetContentDOMElement","contentElement","lastChild","messageAppendContent","success","lastElementChild","messageReplaceContent","messageRemoveLast","lastMsgId","messageSetVisibility","isVisible","message","find","messageGetVisibility","visibleMessages","forEach","index","messageElement","lastDiv","computedStyle","elementHeight","lineHeight","historyGet","m","slice","historyGetAllCopy","historyClear","historyGetLength","historyGetMessage","historyGetMessageContent","historyRestoreAll","messageList","_this2","changeTheme","newTheme","get","version","loremIpsum","numChars","startSpot","startWithCapitalLetter","loremText","Math","floor","random","test","l","substring","s","c","toUpperCase","tempMessageGenerator","domElement","interval","cb","max","count","defaultCB","el","element","currentMsg","intervalId","setInterval","clearInterval","createTempMessageDOMStr","initialContent","updateInterval","containerClass","uniqueId","now","toString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAMA,QAAQ,gBAAA,YAAA;AACV;AACJ;AACA;AACA;AACA;EACI,SAAAA,QAAAA,CAAYC,aAAa,EAAoC;AAAA,IAAA,IAAlCC,MAAM,GAAAC,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAG,CAAA,CAAA,GAAA,YAAM,EAAG,CAAA;AAAA,IAAA,IAAEG,OAAO,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAAI,IAAAA,eAAA,OAAAP,QAAA,CAAA,CAAA;AACvD,IAAA,IAAMQ,WAAW,GAAG;AAChBC,MAAAA,KAAK,EAAE,sBAAsB;AAC7BC,MAAAA,YAAY,EAAE,IAAI;AAClBC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,KAAK,EAAE,MAAM;AAAEC,QAAAA,IAAI,EAAE,KAAK;AAAEC,QAAAA,KAAK,EAAE,QAAA;OAAU;AAC1DC,MAAAA,YAAY,EAAE;AAAEC,QAAAA,WAAW,EAAE,IAAA;OAAM;AACnCC,MAAAA,SAAS,EAAE;AAAEJ,QAAAA,IAAI,EAAE,IAAA;OAAM;AACzBK,MAAAA,WAAW,EAAE,IAAI;AACjBC,MAAAA,gBAAgB,EAAE,KAAA;KACrB,CAAA;IACD,IAAMC,IAAI,GAAAC,cAAA,CAAAA,cAAA,CAAQb,EAAAA,EAAAA,WAAW,CAAKF,EAAAA,OAAO,CAAE,CAAC;;AAE5C,IAAA,IAAI,OAAOL,aAAa,KAAK,QAAQ,EAAE;AACnCA,MAAAA,aAAa,GAAGqB,QAAQ,CAACC,aAAa,CAACtB,aAAa,CAAC,CAAA;AACzD,KAAA;AACA;IACA,IAAI,CAACuB,cAAc,GAAGvB,aAAa,CAAA;AACnC,IAAA,IAAI,CAACwB,MAAM,GAAGL,IAAI,CAACX,KAAK,CAAA;IACxB,IAAI,CAACiB,OAAO,GAAGxB,MAAM,GAAGA,MAAM,GAAG,YAAM,EAAG,CAAC;IAC3C,IAAI,CAACyB,aAAa,EAAE,CAAA;AACpB;IACA,IAAIP,IAAI,CAACT,SAAS,EAAE;AAChB,MAAA,IAAI,CAACiB,oBAAoB,CAACR,IAAI,CAACT,SAAS,CAACC,KAAK,EAAEQ,IAAI,CAACT,SAAS,CAACG,KAAK,CAAC,CAAA;AACrE,MAAA,IAAIM,IAAI,CAACT,SAAS,CAACE,IAAI,KAAK,IAAI,EAAE;QAC9B,IAAI,CAACgB,aAAa,EAAE,CAAA;AACxB,OAAC,MAAM;QACH,IAAI,CAACC,aAAa,EAAE,CAAA;AACxB,OAAA;AACJ,KAAA;AACA;IACA,IAAIV,IAAI,CAACL,YAAY,EAAE;MACnB,IAAI,CAACgB,2BAA2B,CAACX,IAAI,CAACL,YAAY,CAACC,WAAW,CAAC,CAAA;AACnE,KAAA;;AAEA;IACA,IAAII,IAAI,CAACH,SAAS,EAAE;AAChB,MAAA,IAAIG,IAAI,CAACH,SAAS,CAACJ,IAAI,KAAK,IAAI,EAC5B,IAAI,CAACmB,aAAa,EAAE,CAAC,KAErB,IAAI,CAACC,aAAa,EAAE,CAAA;AAC5B,KAAA;AACA;IACA,IAAI,CAACC,qBAAqB,EAAE,CAAA;AAC5B,IAAA,IAAI,CAACxB,YAAY,GAAGU,IAAI,CAACV,YAAY,IAAI,IAAI,CAAA;IAC7C,IAAI,CAACyB,aAAa,GAAG,QAAQ,CAAA;IAC7B,IAAI,CAACC,QAAQ,GAAG,EAAE,CAAA;;AAElB;AACA,IAAA,IAAI,CAAClB,WAAW,GAAGE,IAAI,CAACF,WAAW,CAAA;AACnC,IAAA,IAAI,CAACC,gBAAgB,GAAGC,IAAI,CAACD,gBAAgB,CAAA;AACjD,GAAA;EAAC,OAAAkB,YAAA,CAAArC,QAAA,EAAA,CAAA;IAAAsC,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAED,SAAAZ,aAAaA,GAAG;AACZ,MAAA,IAAMa,UAAU,GAAAC,2CAAAA,CAAAA,MAAA,CAEgB,IAAI,CAAChC,KAAK,EAUrC,mfAAA,CAAA,CAAA;AAEL,MAAA,IAAI,CAACe,cAAc,CAACkB,SAAS,GAAGF,UAAU,CAAA;MAC1C,IAAI,CAACG,WAAW,GAAG,IAAI,CAACnB,cAAc,CAACD,aAAa,CAAC,gBAAgB,CAAC,CAAA;MACtE,IAAI,CAACqB,UAAU,GAAG,IAAI,CAACD,WAAW,CAACpB,aAAa,CAAC,sBAAsB,CAAC,CAAA;MACxE,IAAI,CAACsB,aAAa,GAAG,IAAI,CAACF,WAAW,CAACpB,aAAa,CAAC,yBAAyB,CAAC,CAAA;MAC9E,IAAI,CAACuB,UAAU,GAAG,IAAI,CAACH,WAAW,CAACpB,aAAa,CAAC,sBAAsB,CAAC,CAAA;MACxE,IAAI,CAACwB,UAAU,GAAG,IAAI,CAACD,UAAU,CAACvB,aAAa,CAAC,yBAAyB,CAAC,CAAA;MAC1E,IAAI,CAACyB,WAAW,GAAG,IAAI,CAACF,UAAU,CAACvB,aAAa,CAAC,0BAA0B,CAAC,CAAA;MAC5E,IAAI,CAAC0B,KAAK,GAAG,CAAC,CAAA;AAClB,KAAA;;AAEA;AACJ;AACA;AAFI,GAAA,EAAA;IAAAX,GAAA,EAAA,uBAAA;AAAAC,IAAAA,KAAA,EAGA,SAAAL,qBAAqBA,GAAG;AAAA,MAAA,IAAAgB,KAAA,GAAA,IAAA,CAAA;MACpB,IAAI,CAACF,WAAW,CAACG,gBAAgB,CAAC,OAAO,EAAE,UAACC,KAAK,EAAK;QAAEA,KAAK,CAACC,cAAc,EAAE,CAAA;AAAEH,QAAAA,KAAI,CAACxB,OAAO,CAACwB,KAAI,EAAEA,KAAI,CAACH,UAAU,CAACR,KAAK,CAACe,IAAI,EAAE,CAAC,CAAA;AAAC,OAAC,CAAC,CAAA;AACnIC,MAAAA,MAAM,CAACJ,gBAAgB,CAAC,QAAQ,EAAE,YAAA;AAAA,QAAA,OAAMD,KAAI,CAACM,sBAAsB,EAAE,CAAA;OAAC,CAAA,CAAA;AACtE,MAAA,IAAI,CAACb,WAAW,CAACQ,gBAAgB,CAAC,QAAQ,EAAE,YAAA;AAAA,QAAA,OAAMD,KAAI,CAACM,sBAAsB,EAAE,CAAA;OAAC,CAAA,CAAA;MAChF,IAAI,CAACT,UAAU,CAACI,gBAAgB,CAAC,SAAS,EAAE,UAACC,KAAK,EAAK;AAEnD;QACA,IAAIA,KAAK,CAACK,QAAQ,IAAIL,KAAK,CAACM,OAAO,KAAK,EAAE,EAAE;AACxC;UACA,IAAIR,KAAI,CAAC/B,gBAAgB,EAAE;YACvBiC,KAAK,CAACC,cAAc,EAAE,CAAA;AACtBH,YAAAA,KAAI,CAACxB,OAAO,CAACwB,KAAI,EAAEA,KAAI,CAACH,UAAU,CAACR,KAAK,CAACe,IAAI,EAAE,CAAC,CAAA;AACpD,WAAA;AACJ,SAAC,MAAM,IAAIF,KAAK,CAACM,OAAO,KAAK,EAAE,EAAE;AAAC;UAC9B,IAAIR,KAAI,CAAChC,WAAW,EAAE;YAClBkC,KAAK,CAACC,cAAc,EAAE,CAAA;AACtBH,YAAAA,KAAI,CAACxB,OAAO,CAACwB,KAAI,EAAEA,KAAI,CAACH,UAAU,CAACR,KAAK,CAACe,IAAI,EAAE,CAAC,CAAA;AACpD,WAAA;AACJ,SAAA;AACJ,OAAC,CAAC,CAAA;AAEF,MAAA,IAAI,CAACT,aAAa,CAACM,gBAAgB,CAAC,QAAQ,EAAE,YAAM;AAChD,QAAA,IAAAQ,mBAAA,GAAkDT,KAAI,CAACL,aAAa;UAA5De,SAAS,GAAAD,mBAAA,CAATC,SAAS;UAAEC,YAAY,GAAAF,mBAAA,CAAZE,YAAY;UAAEC,YAAY,GAAAH,mBAAA,CAAZG,YAAY,CAAA;AAC7CZ,QAAAA,KAAI,CAACa,cAAc,GAAGH,SAAS,GAAGE,YAAY,GAAGD,YAAY,CAAA;AACjE,OAAC,CAAC,CAAA;AACN,KAAA;;AAEA;AAAA,GAAA,EAAA;IAAAvB,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EACA,SAAAyB,iBAAiBA,CAACC,QAAQ,EAAE;MACxB,IAAI,CAACvC,OAAO,GAAGuC,QAAQ,CAAA;AAC3B,KAAA;AACA;AAAA,GAAA,EAAA;IAAA3B,GAAA,EAAA,2BAAA;AAAAC,IAAAA,KAAA,EACA,SAAA2B,yBAAyBA,CAACD,QAAQ,EAAE;MAChC,IAAI,CAACE,eAAe,GAAGF,QAAQ,CAAA;AACnC,KAAA;;AAEA;AAAA,GAAA,EAAA;IAAA3B,GAAA,EAAA,iBAAA;AAAAC,IAAAA,KAAA,EACA,SAAA6B,eAAeA,GAAG;AACd,MAAA,IAAI,CAACxB,UAAU,CAACyB,KAAK,CAACC,OAAO,KAAK,MAAM,GAAG,IAAI,CAACzC,aAAa,EAAE,GAAG,IAAI,CAACC,aAAa,EAAE,CAAA;AAC1F,KAAA;AAAC,GAAA,EAAA;IAAAQ,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAED,SAAAV,aAAaA,GAAG;AACZ,MAAA,IAAI,CAACe,UAAU,CAACyB,KAAK,CAACC,OAAO,GAAG,EAAE,CAAA;MAClC,IAAI,CAACC,yBAAyB,EAAE,CAAA;AACpC,KAAA;AAAC,GAAA,EAAA;IAAAjC,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAED,SAAAT,aAAaA,GAAG;AACZ,MAAA,IAAI,CAACc,UAAU,CAACyB,KAAK,CAACC,OAAO,GAAG,MAAM,CAAA;MACtC,IAAI,CAACC,yBAAyB,EAAE,CAAA;AACpC,KAAA;AAAC,GAAA,EAAA;IAAAjC,GAAA,EAAA,sBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAX,oBAAoBA,CAAChB,KAAK,EAAoB;AAAA,MAAA,IAAlBE,KAAK,GAAAX,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,QAAQ,CAAA;AACxC,MAAA,IAAI,CAACyC,UAAU,CAACF,SAAS,GAAG9B,KAAK,CAAA;AACjC,MAAA,IAAI,CAACgC,UAAU,CAACyB,KAAK,CAACG,SAAS,GAAG1D,KAAK,CAAA;AAC3C,KAAA;AAAC,GAAA,EAAA;IAAAwB,GAAA,EAAA,sBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAkC,oBAAoBA,GAAG;AACnB,MAAA,OAAO,IAAI,CAAC7B,UAAU,CAACF,SAAS,CAAA;AACpC,KAAA;AAAC,GAAA,EAAA;IAAAJ,GAAA,EAAA,iBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAmC,eAAeA,GAAG;MACd,IAAI,CAAC5B,UAAU,CAAC6B,SAAS,CAACC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAC1C,MAAA,IAAI,CAAC9B,UAAU,CAACuB,KAAK,CAACC,OAAO,KAAK,MAAM,GAAG,IAAI,CAACtC,aAAa,EAAE,GAAG,IAAI,CAACC,aAAa,EAAE,CAAA;AAC1F,KAAA;AAAC,GAAA,EAAA;IAAAK,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAED,SAAAP,aAAaA,GAAG;AACZ,MAAA,IAAI,CAACc,UAAU,CAACuB,KAAK,CAACC,OAAO,GAAG,EAAE,CAAA;MAClC,IAAI,CAACC,yBAAyB,EAAE,CAAA;AACpC,KAAA;AAAC,GAAA,EAAA;IAAAjC,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAED,SAAAN,aAAaA,GAAG;AACZ,MAAA,IAAI,CAACa,UAAU,CAACuB,KAAK,CAACC,OAAO,GAAG,MAAM,CAAA;MACtC,IAAI,CAACC,yBAAyB,EAAE,CAAA;AACpC,KAAA;AAAC,GAAA,EAAA;IAAAjC,GAAA,EAAA,2BAAA;AAAAC,IAAAA,KAAA,EAED,SAAAgC,yBAAyBA,GAAG;AACxB,MAAA,IAAMM,cAAc,GAAGC,kBAAA,CAAI,IAAI,CAACnC,WAAW,CAACoC,QAAQ,CAAA,CAAEC,MAAM,CAAC,UAAAC,KAAK,EAAA;AAAA,QAAA,OAAIA,KAAK,CAACN,SAAS,CAACO,QAAQ,CAAC,QAAQ,CAAC,CAAA;OAAC,CAAA,CAAA;MACzG,IAAMC,iBAAiB,GAAGN,cAAc,CAACO,MAAM,CAAC,UAACC,GAAG,EAAEJ,KAAK,EAAA;AAAA,QAAA,OAAKI,GAAG,GAAGJ,KAAK,CAACK,YAAY,CAAA;AAAA,OAAA,EAAE,CAAC,CAAC,CAAA;AAC5F,MAAA,IAAMC,eAAe,GAAG,IAAI,CAAC5C,WAAW,CAAC2C,YAAY,CAAA;AACrD,MAAA,IAAI,CAACzC,aAAa,CAACwB,KAAK,CAACmB,MAAM,GAAA/C,cAAAA,CAAAA,MAAA,CAAkB8C,eAAe,GAAGJ,iBAAiB,EAAK,KAAA,CAAA,CAAA;AAC7F,KAAA;AAAC,GAAA,EAAA;IAAA7C,GAAA,EAAA,wBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAiB,sBAAsBA,GAAG;MACrB,IAAI,CAACe,yBAAyB,EAAE,CAAA;MAChC,IAAI,CAACkB,sBAAsB,EAAE,CAAA;AAC7B,MAAA,OAAO,IAAI,CAAA;AACf,KAAA;AAAC,GAAA,EAAA;IAAAnD,GAAA,EAAA,wBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAkD,sBAAsBA,GAAG;MACrB,IAAMC,cAAc,GAAG,IAAI,CAAC1C,WAAW,CAAC2C,WAAW,CAACrC,IAAI,EAAE,CAAA;AAC1D,MAAA,IAAMsC,QAAQ,GAAGC,UAAU,CAACC,gBAAgB,CAAC,IAAI,CAAC9C,WAAW,CAAC,CAAC4C,QAAQ,CAAC,CAAA;MACxE,IAAMG,QAAQ,GAAGH,QAAQ,GAAGF,cAAc,CAACtF,MAAM,GAAG,EAAE,CAAA;MACtD,IAAI,CAAC4C,WAAW,CAACqB,KAAK,CAAC0B,QAAQ,GAAAtD,EAAAA,CAAAA,MAAA,CAAMsD,QAAQ,EAAI,IAAA,CAAA,CAAA;AACjD,MAAA,OAAO,IAAI,CAAA;AACf,KAAA;;AAEA;AAAA,GAAA,EAAA;IAAAzD,GAAA,EAAA,6BAAA;AAAAC,IAAAA,KAAA,EACA,SAAAR,2BAA2BA,GAAa;AAAA,MAAA,IAAZiE,GAAG,GAAA7F,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAClC,MAAA,IAAI6F,GAAG,EAAE;QACL,IAAI,CAACnD,aAAa,CAAC8B,SAAS,CAACsB,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAClE,OAAC,MACI;QACD,IAAI,CAACpD,aAAa,CAAC8B,SAAS,CAACuB,MAAM,CAAC,4BAA4B,CAAC,CAAA;AACrE,OAAA;MACA,OAAOF,GAAG,KAAK,IAAI,CAAA;AACvB,KAAA;AAAC,GAAA,EAAA;IAAA1D,GAAA,EAAA,mCAAA;AAAAC,IAAAA,KAAA,EACD,SAAA4D,iCAAiCA,GAAG;MAChC,IAAI,CAACtD,aAAa,CAAC8B,SAAS,CAACC,MAAM,CAAC,4BAA4B,CAAC,CAAA;AACrE,KAAA;AAAC,GAAA,EAAA;IAAAtC,GAAA,EAAA,gCAAA;AAAAC,IAAAA,KAAA,EACD,SAAA6D,8BAA8BA,GAAG;MAC7B,OAAO,IAAI,CAACvD,aAAa,CAAC8B,SAAS,CAACO,QAAQ,CAAC,4BAA4B,CAAC,CAAA;AAC9E,KAAA;AACA;AAAA,GAAA,EAAA;IAAA5C,GAAA,EAAA,gBAAA;AAAAC,IAAAA,KAAA,EACA,SAAA8D,cAAcA,GAAmK;MAAA,IAAlKC,KAAK,GAAAnG,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAG,CAAA,CAAA,GAAA;AAAEoG,QAAAA,OAAO,EAAE,EAAE;AAAEC,QAAAA,UAAU,EAAE,MAAM;AAAE1F,QAAAA,KAAK,EAAE,OAAO;AAAE2F,QAAAA,IAAI,EAAE,MAAM;QAAEC,MAAM,EAAE,CAAC,CAAC;AAAEC,QAAAA,SAAS,EAAE,KAAK;AAAEC,QAAAA,WAAW,EAAE,KAAK;AAAEC,QAAAA,cAAc,EAAE,IAAI;AAAEC,QAAAA,OAAO,EAAE,IAAA;OAAM,CAAA;AAC3K,MAAA,IAAM7D,KAAK,GAAG,IAAI,CAACA,KAAK,CAAA;AACxB,MAAA,IAAM8D,UAAU,GAAGzF,QAAQ,CAAC0F,aAAa,CAAC,KAAK,CAAC,CAAA;AAChD,MAAA,IAAMC,UAAU,GAAG,iBAAiB,GAAGC,MAAM,CAACjE,KAAK,CAAC,CAACkE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AACtE,MAAoB,kBAAkB,GAAGD,MAAM,CAACZ,KAAK,CAACE,UAAU,CAAC,CAACW,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;MACpFJ,UAAU,CAACpC,SAAS,CAACsB,GAAG,CAAC,kBAAkB,EAAEgB,UAAU,EAAE,oBAAoB,CAAC,CAAA;MAC9E,IAAI,CAAChE,KAAK,EAAE,CAAA;AAEZ,MAAA,IAAMmE,OAAO,GAAG9F,QAAQ,CAAC0F,aAAa,CAAC,KAAK,CAAC,CAAA;AAC7CI,MAAAA,OAAO,CAAC1E,SAAS,GAAG4D,KAAK,CAACE,UAAU,CAAA;AACpCY,MAAAA,OAAO,CAACzC,SAAS,CAACsB,GAAG,CAAC,qBAAqB,CAAC,CAAA;AAC5CmB,MAAAA,OAAO,CAAC/C,KAAK,CAACG,SAAS,GAAG8B,KAAK,CAACxF,KAAK,CAAA;AAErC,MAAA,IAAMuG,UAAU,GAAG/F,QAAQ,CAAC0F,aAAa,CAAC,KAAK,CAAC,CAAA;AAChDK,MAAAA,UAAU,CAAC1C,SAAS,CAACsB,GAAG,CAAC,0BAA0B,CAAC,CAAA;;AAEpD;AACA,MAAA,IAAIK,KAAK,CAACxF,KAAK,KAAK,OAAO,EAAE;QACzB,IAAMwG,WAAW,GAAGhB,KAAK,CAACC,OAAO,CAACgB,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChD,IAAMC,MAAM,GAAGlB,KAAK,CAACC,OAAO,CAACnG,MAAM,GAAG,EAAE,CAAC;;QAEzC,IAAIkH,WAAW,IAAIE,MAAM,EAAE;AACvBH,UAAAA,UAAU,CAAC1C,SAAS,CAACsB,GAAG,CAAC,0BAA0B,CAAC,CAAA;AACxD,SAAC,MAAM;AACHoB,UAAAA,UAAU,CAAC1C,SAAS,CAACsB,GAAG,CAAC,2BAA2B,CAAC,CAAA;AACzD,SAAA;AACJ,OAAA;AAEAoB,MAAAA,UAAU,CAAC3E,SAAS,GAAG4D,KAAK,CAACC,OAAO,CAAA;AAEpCQ,MAAAA,UAAU,CAACU,WAAW,CAACL,OAAO,CAAC,CAAA;AAC/BL,MAAAA,UAAU,CAACU,WAAW,CAACJ,UAAU,CAAC,CAAA;AAClC,MAAA,IAAI,CAACxE,aAAa,CAAC4E,WAAW,CAACV,UAAU,CAAC,CAAA;AAE1C,MAAA,IAAMD,OAAO,GAAGR,KAAK,CAACQ,OAAO,KAAKzG,SAAS,GAAG,IAAI,GAAGiG,KAAK,CAACQ,OAAO,CAAA;MAClE,IAAI,CAACA,OAAO,EAAE;AACVC,QAAAA,UAAU,CAAC1C,KAAK,CAACC,OAAO,GAAG,MAAM,CAAA;AACrC,OAAA;;AAEA;MACA,IAAK,CAAC,IAAI,CAACP,cAAc,IAAKuC,KAAK,CAACO,cAAc,EAAE;QAChD,IAAI,CAACa,qBAAqB,EAAE,CAAA;AAChC,OAAA;AAEA,MAAA,IAAI,CAAC3E,UAAU,CAACR,KAAK,GAAG,EAAE,CAAA;MAC1B,IAAI,CAACgC,yBAAyB,EAAE,CAAA;MAChC,IAAI,CAACoD,0BAA0B,CAACZ,UAAU,EAAET,KAAK,CAACxF,KAAK,CAAC,CAAC;MACzD,IAAI,CAAC8G,oBAAoB,EAAE,CAAA;;AAE3B;AACA,MAAA,IAAMjB,SAAS,GAAGL,KAAK,CAACK,SAAS,GAAGL,KAAK,CAACK,SAAS,GAAG,IAAIkB,IAAI,EAAE,CAACC,WAAW,EAAE,CAAA;MAC9E,IAAMlB,WAAW,GAAGN,KAAK,CAACM,WAAW,GAAGN,KAAK,CAACM,WAAW,GAAGD,SAAS,CAAA;MAErE,IAAI,IAAI,CAACjG,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC0B,QAAQ,CAAC2F,IAAI,CAAA1G,cAAA,CAAAA,cAAA,CAAA;AAAG4B,UAAAA,KAAK,EAALA,KAAAA;AAAK,SAAA,EAAKqD,KAAK,CAAA,EAAA,EAAA,EAAA;AAAEQ,UAAAA,OAAO,EAAPA,OAAO;AAAEH,UAAAA,SAAS,EAATA,SAAS;AAAEC,UAAAA,WAAW,EAAXA,WAAW;AAAEG,UAAAA,UAAU,EAAVA,UAAAA;AAAU,SAAA,CAAE,CAAC,CAAA;QACpF,IAAI,IAAI,CAAC3E,QAAQ,CAAChC,MAAM,GAAG,IAAI,CAAC+B,aAAa,EAAE;AAC3C,UAAA,IAAI,CAACC,QAAQ,CAAC4F,KAAK,EAAE,CAAA;AACzB,SAAA;AACJ,OAAA;MAEA,IAAI,IAAI,CAAC7D,eAAe,EAAE;AACtB,QAAA,IAAI,CAACA,eAAe,CAAC,IAAI,EAAElB,KAAK,CAAC,CAAA;AACrC,OAAA;AAEA,MAAA,OAAOA,KAAK,CAAA;AAChB,KAAA;AAAC,GAAA,EAAA;IAAAX,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAID,SAAA0F,aAAaA,GAA2G;AAAA,MAAA,IAA1G1B,OAAO,GAAApG,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,MAAA,IAAEqG,UAAU,GAAArG,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,MAAM,CAAA;AAAA,MAAA,IAAEW,KAAK,GAAAX,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,OAAO,CAAA;AAAA,MAAA,IAAEsG,IAAI,GAAAtG,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,MAAM,CAAA;AAAA,MAAA,IAAE0G,cAAc,GAAA1G,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAAA,MAAA,IAAE2G,OAAO,GAAA3G,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAClH,MAAA,IAAI+H,QAAQ,GAAG,IAAI,CAAC7B,cAAc,CAC9B;AAAEE,QAAAA,OAAO,EAAEA,OAAO;AAAEC,QAAAA,UAAU,EAAEA,UAAU;AAAE1F,QAAAA,KAAK,EAAEA,KAAK;AAAE2F,QAAAA,IAAI,EAAEA,IAAI;AAAEI,QAAAA,cAAc,EAAEA,cAAc;AAAEC,QAAAA,OAAO,EAAEA,OAAAA;AAAQ,OAC3H,CAAC,CAAA;AACD;AACA,MAAA,OAAOoB,QAAQ,CAAA;AACnB,KAAA;AAAC,GAAA,EAAA;IAAA5F,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAED,SAAA4F,aAAaA,CAACC,CAAC,EAAE;AACb;MACA,IAAIC,MAAM,GAAG,KAAK,CAAA;MAClB,IAAI;QACA,IAAI,CAACxF,aAAa,CAACyF,WAAW,CAAC,IAAI,CAACzF,aAAa,CAACtB,aAAa,CAAA,kBAAA,CAAAkB,MAAA,CAAoByE,MAAM,CAACkB,CAAC,CAAC,CAACjB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAE,CAAC,CAAC,CAAA;AAClHkB,QAAAA,MAAM,GAAG,IAAI,CAAA;OAChB,CACD,OAAOE,KAAK,EAAE;QACVC,OAAO,CAACC,GAAG,CAAA,oCAAqC,CAAC,CAAA;AACrD,OAAA;AACA,MAAA,IAAIJ,MAAM,EAAE;AACR;AACA;;AAEA;AACA,QAAA,IAAI,CAACjG,QAAQ,CAACsG,MAAM,CAAC,IAAI,CAACtG,QAAQ,CAACuG,SAAS,CAAC,UAACC,IAAI,EAAA;AAAA,UAAA,OAAKA,IAAI,CAAC3F,KAAK,KAAKmF,CAAC,CAAA;SAAC,CAAA,EAAE,CAAC,CAAC,CAAA;AAChF,OAAA;AACA,MAAA,OAAOC,MAAM,CAAA;AACjB,KAAA;AACA;AACJ;AADI,GAAA,EAAA;IAAA/F,GAAA,EAAA,qBAAA;AAAAC,IAAAA,KAAA,EAEA,SAAAsG,mBAAmBA,CAACT,CAAC,EAAE;MACnB,IAAIU,GAAG,GAAG,IAAI,CAAA;AACd;MACA,IAAI;QACAA,GAAG,GAAG,IAAI,CAACjG,aAAa,CAACtB,aAAa,CAAA,kBAAA,CAAAkB,MAAA,CAAoByE,MAAM,CAACkB,CAAC,CAAC,CAACjB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAE,CAAC,CAAA;OAC3F,CACD,OAAOoB,KAAK,EAAE;QACVC,OAAO,CAACC,GAAG,CAAA,oCAAqC,CAAC,CAAA;AACrD,OAAA;AACA,MAAA,OAAOK,GAAG,CAAA;AACd,KAAA;AACA;AACJ;AADI,GAAA,EAAA;IAAAxG,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EAEA,SAAAwG,iBAAiBA,CAACX,CAAC,EAAE;MACjB,IAAI7B,OAAO,GAAG,EAAE,CAAA;AAChB;MACA,IAAI;AACA;QACAA,OAAO,GAAG,IAAI,CAACnE,QAAQ,CAAC4C,MAAM,CAAC,UAAC4D,IAAI,EAAA;AAAA,UAAA,OAAKA,IAAI,CAAC3F,KAAK,KAAKmF,CAAC,CAAA;AAAA,SAAA,CAAC,CAAC,CAAC,CAAC,CAAC7B,OAAO,CAAA;AACrE;OACH,CACD,OAAOgC,KAAK,EAAE;QACVC,OAAO,CAACC,GAAG,CAAA,oCAAqC,CAAC,CAAA;AACrD,OAAA;AACA,MAAA,OAAOlC,OAAO,CAAA;AAClB,KAAA;;AAEA;AACJ;AADI,GAAA,EAAA;IAAAjE,GAAA,EAAA,6BAAA;AAAAC,IAAAA,KAAA,EAEA,SAAAyG,2BAA2BA,CAACZ,CAAC,EAAE;MAC3B,IAAIa,cAAc,GAAG,IAAI,CAAA;AACzB;MACA,IAAI;AACA;QACAA,cAAc,GAAG,IAAI,CAAC7G,QAAQ,CAAC4C,MAAM,CAAC,UAAC4D,IAAI,EAAA;AAAA,UAAA,OAAKA,IAAI,CAAC3F,KAAK,KAAKmF,CAAC,CAAA;AAAA,SAAA,CAAC,CAAC,CAAC,CAAC,CAACrB,UAAU,CAACmC,SAAS,CAAA;OAC5F,CACD,OAAOX,KAAK,EAAE;QACVC,OAAO,CAACC,GAAG,CAAA,oCAAqC,CAAC,CAAA;AACrD,OAAA;AACA,MAAA,OAAOQ,cAAc,CAAA;AACzB,KAAA;;AAEA;AACJ;AADI,GAAA,EAAA;IAAA3G,GAAA,EAAA,sBAAA;AAAAC,IAAAA,KAAA,EAGA,SAAA4G,oBAAoBA,CAACf,CAAC,EAAE7B,OAAO,EAAE;MAC7B,IAAI6C,OAAO,GAAG,KAAK,CAAA;MACnB,IAAI;QACA,IAAI,CAACvG,aAAa,CAACtB,aAAa,CAAA,kBAAA,CAAAkB,MAAA,CAAoByE,MAAM,CAACkB,CAAC,CAAC,CAACjB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAE,CAAC,CAAC+B,SAAS,CAACxG,SAAS,IAAI6D,OAAO,CAAA;AACjH;QACA,IAAIqC,IAAI,GAAG,IAAI,CAACxG,QAAQ,CAAC4C,MAAM,CAAC,UAAC4D,IAAI,EAAA;AAAA,UAAA,OAAKA,IAAI,CAAC3F,KAAK,KAAKmF,CAAC,CAAA;SAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QAC9DQ,IAAI,CAACrC,OAAO,IAAIA,OAAO,CAAA;QACvBqC,IAAI,CAAChC,WAAW,GAAG,IAAIiB,IAAI,EAAE,CAACC,WAAW,EAAE,CAAA;AAC3CsB,QAAAA,OAAO,GAAG,IAAI,CAAA;;AAEd;AACA,QAAA,IAAI,CAAC,IAAI,CAACrF,cAAc,EAAE;AACtB,UAAA,IAAI,CAAClB,aAAa,CAACwG,gBAAgB,CAACxC,cAAc,EAAE,CAAA;AACxD,SAAA;OACH,CAAC,OAAO0B,KAAK,EAAE;QACZC,OAAO,CAACC,GAAG,CAAA,EAAA,CAAAhG,MAAA,CAAIyE,MAAM,CAACkB,CAAC,CAAC,EAAA,yBAAA,CAAyB,CAAC,CAAA;AACtD,OAAA;AACA,MAAA,OAAOgB,OAAO,CAAA;AAClB,KAAA;;AAEA;AACJ;AADI,GAAA,EAAA;IAAA9G,GAAA,EAAA,uBAAA;AAAAC,IAAAA,KAAA,EAEA,SAAA+G,qBAAqBA,CAAClB,CAAC,EAAE7B,OAAO,EAAE;MAC9B,IAAI6C,OAAO,GAAG,KAAK,CAAA;MACnB,IAAI;QACA,IAAI,CAACvG,aAAa,CAACtB,aAAa,CAAA,kBAAA,CAAAkB,MAAA,CAAoByE,MAAM,CAACkB,CAAC,CAAC,CAACjB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAE,CAAC,CAAC+B,SAAS,CAACxG,SAAS,GAAG6D,OAAO,CAAA;AAChH;QACA,IAAIqC,IAAI,GAAG,IAAI,CAACxG,QAAQ,CAAC4C,MAAM,CAAC,UAAC4D,IAAI,EAAA;AAAA,UAAA,OAAKA,IAAI,CAAC3F,KAAK,KAAKmF,CAAC,CAAA;SAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QAC9DQ,IAAI,CAACrC,OAAO,GAAGA,OAAO,CAAA;QACtBqC,IAAI,CAAChC,WAAW,GAAG,IAAIiB,IAAI,EAAE,CAACC,WAAW,EAAE,CAAA;AAC3CsB,QAAAA,OAAO,GAAG,IAAI,CAAA;;AAEd;AACA,QAAA,IAAI,CAAC,IAAI,CAACrF,cAAc,EAAE;AACtB,UAAA,IAAI,CAAClB,aAAa,CAACwG,gBAAgB,CAACxC,cAAc,EAAE,CAAA;AACxD,SAAA;OACH,CAAC,OAAO0B,KAAK,EAAE;QACZC,OAAO,CAACC,GAAG,CAAA,EAAA,CAAAhG,MAAA,CAAIyE,MAAM,CAACkB,CAAC,CAAC,EAAA,yBAAA,CAAyB,CAAC,CAAA;AACtD,OAAA;AACA,MAAA,OAAOgB,OAAO,CAAA;AAClB,KAAA;;AAEA;AACJ;AACA;AAFI,GAAA,EAAA;IAAA9G,GAAA,EAAA,uBAAA;AAAAC,IAAAA,KAAA,EAGA,SAAAmF,qBAAqBA,GAAG;AACpB,MAAA,IAAI,IAAI,CAAC7E,aAAa,CAACwG,gBAAgB,EAAE;AACrC,QAAA,IAAI,CAACxG,aAAa,CAACwG,gBAAgB,CAACxC,cAAc,EAAE,CAAA;AACxD,OAAA;AACJ,KAAA;;AAEA;AACJ;AACA;AAFI,GAAA,EAAA;IAAAvE,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EAGA,SAAAgH,iBAAiBA,GAAG;AAChB;AACA,MAAA,IAAI,IAAI,CAACnH,QAAQ,CAAChC,MAAM,IAAI,CAAC,EAAE;AAC3B,QAAA,IAAIoJ,SAAS,GAAG,IAAI,CAACpH,QAAQ,CAAC,IAAI,CAACA,QAAQ,CAAChC,MAAM,GAAG,CAAC,CAAC,CAAC6C,KAAK,CAAA;AAC7D,QAAA,OAAO,IAAI,CAACkF,aAAa,CAACqB,SAAS,CAAC,CAAA;AACxC,OAAA;AACA,MAAA,OAAO,KAAK,CAAA;AAChB,KAAA;AAAC,GAAA,EAAA;IAAAlH,GAAA,EAAA,sBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAkH,oBAAoBA,CAACxG,KAAK,EAAEyG,SAAS,EAAE;MACnC,IAAMC,OAAO,GAAG,IAAI,CAACvH,QAAQ,CAACwH,IAAI,CAAC,UAAAhB,IAAI,EAAA;AAAA,QAAA,OAAIA,IAAI,CAAC3F,KAAK,KAAKA,KAAK,CAAA;OAAC,CAAA,CAAA;AAChE,MAAA,IAAI0G,OAAO,IAAIA,OAAO,CAAC5C,UAAU,EAAE;QAC/B4C,OAAO,CAAC5C,UAAU,CAAC1C,KAAK,CAACC,OAAO,GAAGoF,SAAS,GAAG,EAAE,GAAG,MAAM,CAAA;QAC1DC,OAAO,CAAC7C,OAAO,GAAG4C,SAAS,CAAA;QAC3B,IAAI,CAAC9B,oBAAoB,EAAE,CAAA;AAC3B,QAAA,OAAO,IAAI,CAAA;AACf,OAAA;AACA,MAAA,OAAO,KAAK,CAAA;AAChB,KAAA;AAAC,GAAA,EAAA;IAAAtF,GAAA,EAAA,sBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAsH,oBAAoBA,CAAC5G,KAAK,EAAE;MACxB,IAAM0G,OAAO,GAAG,IAAI,CAACvH,QAAQ,CAACwH,IAAI,CAAC,UAAAhB,IAAI,EAAA;AAAA,QAAA,OAAIA,IAAI,CAAC3F,KAAK,KAAKA,KAAK,CAAA;OAAC,CAAA,CAAA;AAChE,MAAA,IAAI0G,OAAO,IAAIA,OAAO,CAAC5C,UAAU,EAAE;QAC/B,OAAO4C,OAAO,CAAC5C,UAAU,CAAC1C,KAAK,CAACC,OAAO,KAAK,MAAM,CAAA;AACtD,OAAA;MACA,OAAO,KAAK,CAAC;AACjB,KAAA;AAAC,GAAA,EAAA;IAAAhC,GAAA,EAAA,sBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAqF,oBAAoBA,GAAG;AACnB,MAAA,IAAMkC,eAAe,GAAGhF,kBAAA,CAAI,IAAI,CAACjC,aAAa,CAACkC,QAAQ,CAAA,CAAEC,MAAM,CAC3D,UAAAC,KAAK,EAAA;AAAA,QAAA,OAAIA,KAAK,CAACZ,KAAK,CAACC,OAAO,KAAK,MAAM,CAAA;AAAA,OAC3C,CAAC,CAAA;AAEDwF,MAAAA,eAAe,CAACC,OAAO,CAAC,UAAChD,UAAU,EAAEiD,KAAK,EAAK;QAC3CjD,UAAU,CAACpC,SAAS,CAACuB,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAA;AACvEa,QAAAA,UAAU,CAACpC,SAAS,CAACsB,GAAG,CAAC+D,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,oBAAoB,GAAG,oBAAoB,CAAC,CAAA;AAC3F,OAAC,CAAC,CAAA;AACN,KAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AAPI,GAAA,EAAA;IAAA1H,GAAA,EAAA,4BAAA;AAAAC,IAAAA,KAAA,EAQA,SAAAoF,0BAA0BA,CAACsC,cAAc,EAAEnJ,KAAK,EAAE;AAC9C;AACA;AACAmJ,MAAAA,cAAc,CAACtF,SAAS,CAACuB,MAAM,CAC3B,iBAAiB,EAAE,gBAAgB,EACnC,mBAAmB,EAAE,kBAAkB,EACvC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;AAC1C,MAAA,IAAImB,UAAU,GAAG4C,cAAc,CAACf,SAAS,CAAA;AACzC3F,MAAAA,MAAM,CAAC2G,OAAO,GAAG7C,UAAU,CAAC;AAC5B;;AAEA,MAAA,IAAM8C,aAAa,GAAG5G,MAAM,CAACuC,gBAAgB,CAACuB,UAAU,CAAC,CAAA;;AAEzD;AACA,MAAA,IAAM+C,aAAa,GAAG/C,UAAU,CAAC/B,YAAY,CAAA;;AAE7C;AACA,MAAA,IAAI+E,UAAU,CAAA;AACd,MAAA,IAAIF,aAAa,CAACE,UAAU,KAAK,QAAQ,EAAE;AACvC,QAAA,IAAMzE,QAAQ,GAAGC,UAAU,CAACsE,aAAa,CAACvE,QAAQ,CAAC,CAAA;AACnDyE,QAAAA,UAAU,GAAGzE,QAAQ,GAAG,GAAG,CAAC;AAChC,OAAC,MAAM;AACHyE,QAAAA,UAAU,GAAGxE,UAAU,CAACsE,aAAa,CAACE,UAAU,CAAC,CAAA;AACrD,OAAA;;AAEA;AACA,MAAA,IAAM/C,WAAW,GAAG8C,aAAa,GAAGC,UAAU,CAAA;;AAE9C;AACA,MAAA,QAAQvJ,KAAK;AACT,QAAA,KAAK,QAAQ;AACT,UAAA,IAAIwG,WAAW,EAAE;AACb2C,YAAAA,cAAc,CAACtF,SAAS,CAACsB,GAAG,CAAC,kBAAkB,CAAC,CAAA;AACpD,WAAC,MACI;AACDgE,YAAAA,cAAc,CAACtF,SAAS,CAACsB,GAAG,CAAC,mBAAmB,CAAC,CAAA;AACrD,WAAA;AACA,UAAA,MAAA;AACJ,QAAA,KAAK,OAAO;AACR,UAAA,IAAIqB,WAAW,EAAE;AACb2C,YAAAA,cAAc,CAACtF,SAAS,CAACsB,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACnD,WAAC,MACI;AACDgE,YAAAA,cAAc,CAACtF,SAAS,CAACsB,GAAG,CAAC,kBAAkB,CAAC,CAAA;AACpD,WAAA;AACA,UAAA,MAAA;AACJ,QAAA,KAAK,MAAM,CAAA;AACX,QAAA;AACI,UAAA,IAAIqB,WAAW,EAAE;AACb2C,YAAAA,cAAc,CAACtF,SAAS,CAACsB,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAClD,WAAC,MACI;AACDgE,YAAAA,cAAc,CAACtF,SAAS,CAACsB,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACnD,WAAA;AACA,UAAA,MAAA;AACR,OAAA;AAEJ,KAAA;AACA;AACA;AACJ;AACA;AACA;AACA;AACA;AALI,GAAA,EAAA;IAAA3D,GAAA,EAAA,YAAA;AAAAC,IAAAA,KAAA,EAMA,SAAA+H,UAAUA,CAAClC,CAAC,EAAEmC,CAAC,EAAE;MAEb,IAAInC,CAAC,IAAI/H,SAAS,EAAE;AAChB+H,QAAAA,CAAC,GAAG,CAAC,CAAA;AACLmC,QAAAA,CAAC,GAAG,IAAI,CAACnI,QAAQ,CAAChC,MAAM,CAAA;AAC5B,OAAA;MACA,IAAImK,CAAC,KAAKlK,SAAS,EAAE;QACjBkK,CAAC,GAAGnC,CAAC,GAAG,CAAC,GAAGmC,CAAC,GAAGnC,CAAC,GAAG,CAAC,CAAA;AACzB,OAAA;AACA;AACA;;MAEA,OAAO,IAAI,CAAChG,QAAQ,CAACoI,KAAK,CAACpC,CAAC,EAAEmC,CAAC,CAAC,CAAA;AACpC,KAAA;AAAC,GAAA,EAAA;IAAAjI,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAkI,iBAAiBA,GAAG;AAChB,MAAA,OAAO,IAAI,CAACrI,QAAQ,CAACoI,KAAK,EAAE,CAAA;AAChC,KAAA;AAAC,GAAA,EAAA;IAAAlI,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EAED,SAAAmI,YAAYA,GAAG;MACX,IAAI,CAACzH,KAAK,GAAG,CAAC,CAAA;AACd,MAAA,IAAI,CAACJ,aAAa,CAACH,SAAS,GAAG,EAAE,CAAA;MACjC,IAAI,CAACN,QAAQ,GAAG,EAAE,CAAA;AACtB,KAAA;AAAC,GAAA,EAAA;IAAAE,GAAA,EAAA,kBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAoI,gBAAgBA,GAAG;AACf,MAAA,OAAO,IAAI,CAACvI,QAAQ,CAAChC,MAAM,CAAA;AAC/B,KAAA;AAAC,GAAA,EAAA;IAAAkC,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EAED,SAAAqI,iBAAiBA,CAACxC,CAAC,EAAE;MACjB,IAAIA,CAAC,IAAI,CAAC,IAAIA,CAAC,GAAG,IAAI,CAAChG,QAAQ,CAAChC,MAAM,EAAE;AACpC,QAAA,OAAO,IAAI,CAACgC,QAAQ,CAACgG,CAAC,CAAC,CAAA;AAC3B,OAAA;AACA,MAAA,OAAO,EAAE,CAAA;AAEb,KAAA;AAAC,GAAA,EAAA;IAAA9F,GAAA,EAAA,0BAAA;AAAAC,IAAAA,KAAA,EAED,SAAAsI,wBAAwBA,CAACzC,CAAC,EAAE;MACxB,IAAIA,CAAC,IAAI,CAAC,IAAIA,CAAC,GAAG,IAAI,CAAChG,QAAQ,CAAChC,MAAM,EAClC,OAAO,IAAI,CAACgC,QAAQ,CAACgG,CAAC,CAAC,CAAC7B,OAAO,CAAC,KAEhC,OAAO,EAAE,CAAA;AACjB,KAAA;;AAEA;AAAA,GAAA,EAAA;IAAAjE,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EACA,SAAAuI,iBAAiBA,CAACC,WAAW,EAAE;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;AAC3B;MACA,IAAI,CAACN,YAAY,EAAE,CAAA;;AAEnB;AACA,MAAA,IAAI,CAAC7H,aAAa,CAACH,SAAS,GAAG,EAAE,CAAA;;AAEjC;AACAqI,MAAAA,WAAW,CAAChB,OAAO,CAAC,UAACJ,OAAO,EAAK;AAC7BqB,QAAAA,MAAI,CAAC3E,cAAc,CAACsD,OAAO,CAAC,CAAA;AAChC,OAAC,CAAC,CAAA;AACN,KAAA;AACA;AACJ;AACA;AACA;AAHI,GAAA,EAAA;IAAArH,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EAIA,SAAA0I,WAAWA,CAACC,QAAQ,EAAE;MAClB,IAAI,CAACvI,WAAW,CAACgC,SAAS,CAACuB,MAAM,CAAC,IAAI,CAACzE,MAAM,CAAC,CAAA;MAC9C,IAAI,CAACkB,WAAW,CAACgC,SAAS,CAACsB,GAAG,CAACiF,QAAQ,CAAC,CAAA;MACxC,IAAI,CAACzJ,MAAM,GAAGyJ,QAAQ,CAAA;AAC1B,KAAA;;AAEA;AACJ;AACA;AACA;AAHI,GAAA,EAAA;IAAA5I,GAAA,EAAA,OAAA;IAAA6I,GAAA,EAIA,SAAAA,GAAAA,GAAY;MACR,OAAO,IAAI,CAAC1J,MAAM,CAAA;AACtB,KAAA;;AAEA;AACJ;AACA;AACA;AAHI,GAAA,CAAA,EAAA,CAAA;IAAAa,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAIA,SAAO6I,OAAOA,GAAG;MACb,OAAO;AAAE,QAAA,SAAS,EAAE,QAAQ;AAAE,QAAA,SAAS,EAAE,OAAO;AAAE,QAAA,KAAK,EAAE,gCAAgC;AAAE,QAAA,KAAK,EAAE,IAAA;OAAM,CAAA;AAC5G,KAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBI,GAAA,EAAA;IAAA9I,GAAA,EAAA,YAAA;AAAAC,IAAAA,KAAA,EAkBA,SAAO8I,UAAUA,CAACC,QAAQ,EAAwD;AAAA,MAAA,IAAtDC,SAAS,GAAApL,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAGE,SAAS,CAAA;AAAA,MAAA,IAAEmL,sBAAsB,GAAArL,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;MAC5E,IAAMsL,SAAS,GAAG,gcAAgc,CAAA;AAEld,MAAA,IAAI,OAAOH,QAAQ,KAAK,QAAQ,EAAE;AAC9BA,QAAAA,QAAQ,GAAGI,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAI,GAAI,CAAC,GAAG,EAAE,CAAA;AACrD,OAAA;MAEA,IAAIL,SAAS,KAAKlL,SAAS,EAAE;AACzBkL,QAAAA,SAAS,GAAGG,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAGH,SAAS,CAACrL,MAAM,CAAC,CAAA;AAC5D,OAAA;AAEAmL,MAAAA,SAAS,GAAGA,SAAS,GAAGE,SAAS,CAACrL,MAAM,CAAA;;AAExC;AACA,MAAA,OAAOqL,SAAS,CAACF,SAAS,CAAC,KAAK,GAAG,IAAI,UAAU,CAACM,IAAI,CAACJ,SAAS,CAACF,SAAS,CAAC,CAAC,EAAE;QAC1EA,SAAS,GAAG,CAACA,SAAS,GAAG,CAAC,IAAIE,SAAS,CAACrL,MAAM,CAAA;AAClD,OAAA;AAEA,MAAA,IAAI0L,CAAC,GAAGL,SAAS,CAACM,SAAS,CAACR,SAAS,CAAC,GAAGE,SAAS,CAACM,SAAS,CAAC,CAAC,EAAER,SAAS,CAAC,CAAA;AAE1E,MAAA,IAAI,OAAOD,QAAQ,KAAK,QAAQ,EAAE;QAC9BA,QAAQ,GAAGQ,CAAC,CAAC1L,MAAM,CAAA;AACvB,OAAA;MAEA,IAAI4L,CAAC,GAAG,EAAE,CAAA;MACV,OAAOV,QAAQ,GAAG,CAAC,EAAE;AACjBU,QAAAA,CAAC,IAAIV,QAAQ,GAAGQ,CAAC,CAAC1L,MAAM,GAAG0L,CAAC,CAACC,SAAS,CAAC,CAAC,EAAET,QAAQ,CAAC,GAAGQ,CAAC,CAAA;QACvDR,QAAQ,IAAIQ,CAAC,CAAC1L,MAAM,CAAA;AACxB,OAAA;MAEA,IAAI4L,CAAC,CAACA,CAAC,CAAC5L,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AACzB4L,QAAAA,CAAC,GAAGA,CAAC,CAACD,SAAS,CAAC,CAAC,EAAEC,CAAC,CAAC5L,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3C,OAAA;AAEA,MAAA,IAAIoL,sBAAsB,EAAE;QACxB,IAAIS,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,CAACE,WAAW,EAAE,CAAA;QAC1BD,CAAC,GAAG,OAAO,CAACJ,IAAI,CAACI,CAAC,CAAC,GAAGA,CAAC,GAAG,GAAG,CAAA;QAC7BD,CAAC,GAAGC,CAAC,GAAGD,CAAC,CAACD,SAAS,CAAC,CAAC,CAAC,CAAA;AAC1B,OAAA;AAEA,MAAA,OAAOC,CAAC,CAAA;AACZ,KAAA;AAAC,GAAA,EAAA;IAAA1J,GAAA,EAAA,sBAAA;IAAAC,KAAA,EAED,SAAO4J,oBAAoBA,CAAEC,UAAU,EAAE7F,OAAO,EAAE8F,QAAQ,EAAa;AAAA,MAAA,IAAXC,EAAE,GAAAnM,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;MACjEkM,QAAQ,GAAGX,IAAI,CAACa,GAAG,CAACF,QAAQ,EAAE,GAAG,CAAC,CAAC;;MAEnC,IAAIG,KAAK,GAAG,CAAC,CAAA;MAEb,IAAIC,SAAS,GAAG,SAAZA,SAASA,CAAI3D,GAAG,EAAE0D,KAAK,EAAK;AAAC1D,QAAAA,GAAG,IAAI,GAAG,CAAA;AAAE,QAAA,OAAOA,GAAG,CAAA;OAAG,CAAA;AAE1D,MAAA,IAAIwD,EAAE,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;AAChCA,QAAAA,EAAE,GAAG,IAAI,CAAA;AACb,OAAA;MAEAA,EAAE,GAAGA,EAAE,IAAIG,SAAS,CAAA;;AAEpB;MACA,IAAIC,EAAE,GAAIN,UAAU,CAAA;AACpB,MAAA,IAAI,OAAOM,EAAE,KAAK,QAAQ,EAAE;AACxBA,QAAAA,EAAE,GAAGpL,QAAQ,CAACC,aAAa,CAACmL,EAAE,CAAC,CAAA;AACnC,OAAA;MAEA,IAAMC,OAAO,GAAGD,EAAE,CAAA;;AAGlB;MACA,IAAI,CAACC,OAAO,EAAE,OAAA;MAEdA,OAAO,CAACjK,SAAS,GAAG6D,OAAO,CAAA;MAC3B,IAAIqG,UAAU,GAAGrG,OAAO,CAAA;AAExB,MAAA,IAAMsG,UAAU,GAAGC,WAAW,CAAC,YAAM;AACjC,QAAA,IAAIH,OAAO,CAACjK,SAAS,KAAKkK,UAAU,EAAE;AAClCG,UAAAA,aAAa,CAACF,UAAU,CAAC,CAAC;AAC1B,UAAA,OAAA;AACJ,SAAA;QAEAD,UAAU,GAAG1F,MAAM,CAAEoF,EAAE,CAACM,UAAU,EAAEJ,KAAK,CAAC,CAAC,CAAE;;AAE7CA,QAAAA,KAAK,EAAE,CAAA;QACPG,OAAO,CAACjK,SAAS,GAAGkK,UAAU,CAAA;OACjC,EAAEP,QAAQ,CAAC,CAAA;AAChB,KAAA;AAAC,GAAA,EAAA;IAAA/J,GAAA,EAAA,yBAAA;AAAAC,IAAAA,KAAA,EAED,SAAOyK,uBAAuBA,CAACC,cAAc,EAAwD;AAAA,MAAA,IAAtDC,cAAc,GAAA/M,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAAA,MAAA,IAAE8D,QAAQ,GAAA9D,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAAA,MAAA,IAAEG,OAAO,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAC/F;MACA+M,cAAc,GAAGxB,IAAI,CAACa,GAAG,CAACW,cAAc,EAAE,GAAG,CAAC,CAAA;;AAE9C;AACA,MAAA,IAAIjJ,QAAQ,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;AAC9CA,QAAAA,QAAQ,GAAG,IAAI,CAAA;AACjB,OAAA;AACA;AACAA,MAAAA,QAAQ,GAAGA,QAAQ,IAAI,UAAS6E,GAAG,EAAE0D,KAAK,EAAE;QAC1C,OAAO1D,GAAG,GAAG,GAAG,CAAA;OACjB,CAAA;;AAED;MACA,IAAMqE,cAAc,GAAG7M,OAAO,CAAC6M,cAAc,GAAG7M,OAAO,CAAC6M,cAAc,GAAG,EAAE,CAAA;;AAE3E;MACA,IAAMC,QAAQ,GAAG,UAAU,GAAGvF,IAAI,CAACwF,GAAG,EAAE,GAAG,GAAG,GAAG3B,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA;;AAEpF;AACA;AACA,MAAA,OAAA,yBAAA,CAAAnJ,MAAA,CACc2K,QAAQ,EAAA,KAAA,CAAA,CAAA3K,MAAA,CAAK0K,cAAc,GAAA1K,UAAAA,CAAAA,MAAA,CAAa0K,cAAc,EAAM,IAAA,CAAA,GAAA,EAAE,qBAAA1K,MAAA,CACtEwK,cAAc,EAAA,2LAAA,CAAA,CAAAxK,MAAA,CAK6B2K,QAAQ,EAAA,+JAAA,CAAA,CAAA3K,MAAA,CAIlCyK,cAAc,EAAAzK,4GAAAA,CAAAA,CAAAA,MAAA,CAEpBwB,QAAQ,CAACqJ,QAAQ,EAAE,EAAA,gjBAAA,CAAA,CAAA;AAetC,KAAA;AAAC,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA;;;;"}
1
+ {"version":3,"file":"quikchat.cjs.js","sources":["../src/quikchat.js"],"sourcesContent":["class quikchat {\n /**\n * \n * @param string or DOM element parentElement \n * @param {*} meta \n */\n constructor(parentElement, onSend = () => { }, options = {}) {\n const defaultOpts = {\n theme: 'quikchat-theme-light',\n trackHistory: true,\n titleArea: { title: \"Chat\", show: false, align: \"center\" },\n messagesArea: { alternating: true },\n inputArea: { show: true },\n sendOnEnter: true,\n sendOnShiftEnter: false,\n instanceClass: ''\n };\n const meta = { ...defaultOpts, ...options }; // merge options with defaults\n\n if (typeof parentElement === 'string') {\n parentElement = document.querySelector(parentElement);\n }\n //console.log(parentElement, meta);\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = onSend ? onSend : () => { }; // call back function for onSend\n this._createWidget();\n\n if (meta.instanceClass) {\n this._chatWidget.classList.add(meta.instanceClass);\n }\n\n // title area\n if (meta.titleArea) {\n this.titleAreaSetContents(meta.titleArea.title, meta.titleArea.align);\n if (meta.titleArea.show === true) {\n this.titleAreaShow();\n } else {\n this.titleAreaHide();\n }\n }\n // messages area\n if (meta.messagesArea) {\n this.messagesAreaAlternateColors(meta.messagesArea.alternating);\n }\n\n // input area\n if (meta.inputArea) {\n if (meta.inputArea.show === true)\n this.inputAreaShow();\n else\n this.inputAreaHide();\n }\n // plumbing\n this._attachEventListeners();\n this.trackHistory = meta.trackHistory || true;\n this._historyLimit = 10000000;\n this._history = [];\n this._activeTags = new Set();\n\n // send on enter / shift enter\n this.sendOnEnter = meta.sendOnEnter;\n this.sendOnShiftEnter = meta.sendOnShiftEnter;\n }\n\n _createWidget() {\n const widgetHTML =\n `\n <div class=\"quikchat-base ${this.theme}\">\n <div class=\"quikchat-title-area\">\n <span style=\"font-size: 1.5em; font-weight: 600;\">Title Area</span>\n </div>\n <div class=\"quikchat-messages-area\"></div>\n <div class=\"quikchat-input-area\">\n <textarea class=\"quikchat-input-textbox\"></textarea>\n <button class=\"quikchat-input-send-btn\">Send</button>\n </div>\n </div>\n `;\n\n this._parentElement.innerHTML = widgetHTML;\n this._chatWidget = this._parentElement.querySelector('.quikchat-base');\n this._titleArea = this._chatWidget.querySelector('.quikchat-title-area');\n this._messagesArea = this._chatWidget.querySelector('.quikchat-messages-area');\n this._inputArea = this._chatWidget.querySelector('.quikchat-input-area');\n this._textEntry = this._inputArea.querySelector('.quikchat-input-textbox');\n this._sendButton = this._inputArea.querySelector('.quikchat-input-send-btn');\n this.msgid = 0;\n }\n\n /**\n * Attach event listeners to the widget\n */\n _attachEventListeners() {\n this._sendButton.addEventListener('click', (event) => { event.preventDefault(); this._onSend(this, this._textEntry.value.trim()) });\n window.addEventListener('resize', () => this._handleContainerResize());\n this._chatWidget.addEventListener('resize', () => this._handleContainerResize());\n this._textEntry.addEventListener('keydown', (event) => {\n\n // Check if Shift + Enter is pressed then we just do carraige\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n if (this.sendOnShiftEnter) {\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim());\n }\n } else if (event.keyCode === 13) {// Enter but not Shift + Enter\n if (this.sendOnEnter) {\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim());\n }\n }\n });\n\n this._messagesArea.addEventListener('scroll', () => {\n const { scrollTop, scrollHeight, clientHeight } = this._messagesArea;\n this.userScrolledUp = scrollTop + clientHeight < scrollHeight;\n });\n }\n\n // set the onSend function callback.\n setCallbackOnSend(callback) {\n this._onSend = callback;\n }\n // set a callback for everytime a message is added (listener)\n setCallbackonMessageAdded(callback) {\n this._onMessageAdded = callback;\n }\n\n // Public methods\n titleAreaToggle() {\n this._titleArea.style.display === 'none' ? this.titleAreaShow() : this.titleAreaHide();\n }\n\n titleAreaShow() {\n this._titleArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaHide() {\n this._titleArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n titleAreaSetContents(title, align = 'center') {\n this._titleArea.innerHTML = title;\n this._titleArea.style.textAlign = align;\n }\n\n titleAreaGetContents() {\n return this._titleArea.innerHTML;\n }\n\n inputAreaToggle() {\n this._inputArea.classList.toggle('hidden');\n this._inputArea.style.display === 'none' ? this.inputAreaShow() : this.inputAreaHide();\n }\n\n inputAreaShow() {\n this._inputArea.style.display = '';\n this._adjustMessagesAreaHeight();\n }\n\n inputAreaHide() {\n this._inputArea.style.display = 'none';\n this._adjustMessagesAreaHeight();\n }\n\n _adjustMessagesAreaHeight() {\n const hiddenElements = [...this._chatWidget.children].filter(child => child.classList.contains('hidden'));\n const totalHiddenHeight = hiddenElements.reduce((sum, child) => sum + child.offsetHeight, 0);\n const containerHeight = this._chatWidget.offsetHeight;\n this._messagesArea.style.height = `calc(100% - ${containerHeight - totalHiddenHeight}px)`;\n }\n\n _handleContainerResize() {\n this._adjustMessagesAreaHeight();\n this._adjustSendButtonWidth();\n return true;\n }\n\n _adjustSendButtonWidth() {\n const sendButtonText = this._sendButton.textContent.trim();\n const fontSize = parseFloat(getComputedStyle(this._sendButton).fontSize);\n const minWidth = fontSize * sendButtonText.length + 16;\n this._sendButton.style.minWidth = `${minWidth}px`;\n return true;\n }\n\n //messagesArea functions\n messagesAreaAlternateColors(alt = true) {\n if (alt) {\n this._messagesArea.classList.add('quikchat-messages-area-alt');\n }\n else {\n this._messagesArea.classList.remove('quikchat-messages-area-alt');\n }\n return alt === true;\n }\n messagesAreaAlternateColorsToggle() {\n this._messagesArea.classList.toggle('quikchat-messages-area-alt');\n }\n messagesAreaAlternateColorsGet() {\n return this._messagesArea.classList.contains('quikchat-messages-area-alt');\n }\n // message functions\n messageAddFull(input = { content: \"\", userString: \"user\", align: \"right\", role: \"user\", userID: -1, timestamp: false, updatedtime: false, scrollIntoView: true, visible: true, tags: [] }) {\n const msgid = this.msgid;\n const messageDiv = document.createElement('div');\n const msgidClass = 'quikchat-msgid-' + String(msgid).padStart(10, '0');\n const userIdClass = 'quikchat-userid-' + String(input.userString).padStart(10, '0'); // hash this..\n messageDiv.classList.add('quikchat-message', msgidClass, 'quikchat-structure');\n\n if (Array.isArray(input.tags)) {\n input.tags.forEach(tag => {\n if (typeof tag === 'string' && /^[a-zA-Z0-9-]+$/.test(tag)) {\n messageDiv.classList.add(`quikchat-tag-${tag}`);\n this._activeTags.add(tag);\n }\n });\n }\n\n this.msgid++;\n\n const userDiv = document.createElement('div');\n userDiv.innerHTML = input.userString;\n userDiv.classList.add('quikchat-user-label');\n userDiv.style.textAlign = input.align;\n \n const contentDiv = document.createElement('div');\n contentDiv.classList.add('quikchat-message-content');\n \n // Determine text alignment for right-aligned messages\n if (input.align === \"right\") {\n const isMultiLine = input.content.includes(\"\\n\");\n const isLong = input.content.length > 50; // Adjust length threshold\n \n if (isMultiLine || isLong) {\n contentDiv.classList.add(\"quikchat-right-multiline\");\n } else {\n contentDiv.classList.add(\"quikchat-right-singleline\");\n }\n }\n \n contentDiv.innerHTML = input.content;\n \n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n \n const visible = input.visible === undefined ? true : input.visible;\n if (!visible) {\n messageDiv.style.display = 'none';\n }\n \n // Scroll to the last message only if the user is not actively scrolling up\n if ((!this.userScrolledUp) || input.scrollIntoView) {\n this.messageScrollToBottom();\n }\n \n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n this._handleShortLongMessageCSS(messageDiv, input.align); // Handle CSS for short/long messages\n this._updateMessageStyles();\n \n // Add timestamp now, unless it is passed in \n const timestamp = input.timestamp ? input.timestamp : new Date().toISOString();\n const updatedtime = input.updatedtime ? input.updatedtime : timestamp;\n \n if (this.trackHistory) {\n this._history.push({ msgid, ...input, visible, timestamp, updatedtime, messageDiv });\n if (this._history.length > this._historyLimit) {\n this._history.shift();\n }\n }\n \n if (this._onMessageAdded) {\n this._onMessageAdded(this, msgid);\n }\n \n return msgid;\n }\n \n\n\n messageAddNew(content = \"\", userString = \"user\", align = \"right\", role = \"user\", scrollIntoView = true, visible = true, tags = []) {\n let retvalue = this.messageAddFull(\n { content: content, userString: userString, align: align, role: role, scrollIntoView: scrollIntoView, visible: visible, tags: tags }\n );\n // this.messageScrollToBottom();\n return retvalue;\n }\n\n messageRemove(n) {\n // use css selector to remove the message\n let sucess = false;\n try {\n this._messagesArea.removeChild(this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`));\n sucess = true;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n if (sucess) {\n // slow way to remove from history\n //this._history = this._history.filter((item) => item.msgid !== n); // todo make this more efficient\n\n // better way to delete this from history\n this._history.splice(this._history.findIndex((item) => item.msgid === n), 1);\n }\n return sucess;\n }\n /* returns the message html object from the DOM\n */\n messageGetDOMObject(n) {\n let msg = null;\n // now use css selector to get the message \n try {\n msg = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`);\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n return msg;\n }\n /* returns the message content only\n */\n messageGetContent(n) {\n let content = \"\"\n // now use css selector to get the message \n try {\n // get from history..\n content = this._history.filter((item) => item.msgid === n)[0].content;\n //content = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.textContent;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content;\n }\n\n /* returns the DOM Content element of a given message\n */\n messageGetContentDOMElement(n) {\n let contentElement = null;\n // now use css selector to get the message\n try {\n //contentElement = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild;\n contentElement = this._history.filter((item) => item.msgid === n)[0].messageDiv.lastChild;\n }\n catch (error) {\n console.log(`{String(n)} : Message ID not found`);\n }\n return contentElement;\n }\n\n /* append message to the message content\n */\n\n messageAppendContent(n, content) {\n let success = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML += content;\n // update history\n let item = this._history.filter((item) => item.msgid === n)[0];\n item.content += content;\n item.updatedtime = new Date().toISOString();\n success = true;\n\n // Scroll to the last message only if the user is not actively scrolling up\n if (!this.userScrolledUp) {\n this._messagesArea.lastElementChild.scrollIntoView();\n }\n } catch (error) {\n console.log(`${String(n)} : Message ID not found`);\n }\n return success;\n }\n\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let success = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n // update history\n let item = this._history.filter((item) => item.msgid === n)[0];\n item.content = content;\n item.updatedtime = new Date().toISOString();\n success = true;\n\n // Scroll to the last message only if the user is not actively scrolling up\n if (!this.userScrolledUp) {\n this._messagesArea.lastElementChild.scrollIntoView();\n }\n } catch (error) {\n console.log(`${String(n)} : Message ID not found`);\n }\n return success;\n }\n\n /**\n * Scrolls the messages area to the bottom.\n */\n messageScrollToBottom() {\n if (this._messagesArea.lastElementChild) {\n this._messagesArea.lastElementChild.scrollIntoView();\n }\n }\n\n /**\n * Removes the last message from the messages area.\n */\n messageRemoveLast() {\n // find the last message by id:\n if (this._history.length >= 0) {\n let lastMsgId = this._history[this._history.length - 1].msgid;\n return this.messageRemove(lastMsgId);\n }\n return false;\n }\n\n messageSetVisibility(msgid, isVisible) {\n const message = this._history.find(item => item.msgid === msgid);\n if (message && message.messageDiv) {\n message.messageDiv.style.display = isVisible ? '' : 'none';\n message.visible = isVisible;\n this._updateMessageStyles();\n return true;\n }\n return false;\n }\n\n messageGetVisibility(msgid) {\n const message = this._history.find(item => item.msgid === msgid);\n if (message && message.messageDiv) {\n return message.messageDiv.style.display !== 'none';\n }\n return false; // Return false if not found or no messageDiv\n }\n\n _updateMessageStyles() {\n const visibleMessages = [...this._messagesArea.children].filter(\n child => child.style.display !== 'none'\n );\n\n visibleMessages.forEach((messageDiv, index) => {\n messageDiv.classList.remove('quikchat-message-1', 'quikchat-message-2');\n messageDiv.classList.add(index % 2 === 0 ? 'quikchat-message-1' : 'quikchat-message-2');\n });\n }\n\n /**\n * For right sided or centered messages, we need to handle the CSS for short and long messages.\n * for short messages we use simple justifying, for long messages we need to wrap and perform multiline\n * formatting. \n * \n * @param {*} messageElement \n * @returns nothing\n */\n _handleShortLongMessageCSS(messageElement, align) {\n // console.log(messageElement);\n // Reset classes\n messageElement.classList.remove(\n 'left-singleline', 'left-multiline',\n 'center-singleline', 'center-multiline',\n 'right-singleline', 'right-multiline');\n let contentDiv = messageElement.lastChild;\n window.lastDiv = contentDiv; // for debugging \n // Determine if the message is short or long\n\n const computedStyle = window.getComputedStyle(contentDiv);\n\n // Get the element's height\n const elementHeight = contentDiv.offsetHeight;\n\n // Calculate or estimate line height\n let lineHeight;\n if (computedStyle.lineHeight === \"normal\") {\n const fontSize = parseFloat(computedStyle.fontSize);\n lineHeight = fontSize * 1.2; // approximate \"normal\" as 1.2 times font-size\n } else {\n lineHeight = parseFloat(computedStyle.lineHeight);\n }\n\n // Check if the element height is more than one line-height\n const isMultiLine = elementHeight > lineHeight;\n\n // Using scrollHeight and clientHeight to check for overflow (multi-line)\n switch (align) {\n case 'center':\n if (isMultiLine) {\n messageElement.classList.add('center-multiline');\n }\n else {\n messageElement.classList.add('center-singleline');\n }\n break;\n case 'right':\n if (isMultiLine) {\n messageElement.classList.add('right-multiline');\n }\n else {\n messageElement.classList.add('right-singleline');\n }\n break;\n case 'left':\n default:\n if (isMultiLine) {\n messageElement.classList.add('left-multiline');\n }\n else {\n messageElement.classList.add('left-singleline');\n }\n break;\n }\n\n }\n // history functions\n /**\n * \n * @param {*} n \n * @param {*} m \n * @returns array of history messages\n */\n historyGet(n, m) {\n\n if (n == undefined) {\n n = 0;\n m = this._history.length;\n }\n if (m === undefined) {\n m = n < 0 ? m : n + 1;\n }\n // remember that entries could be deleted. TODO: So we need to return the actual history entries\n // so now we need to find the array index that correspondes to messageIds n (start) and m (end)\n\n return this._history.slice(n, m);\n }\n\n historyGetAllCopy() {\n return this._history.slice();\n }\n\n historyClear() {\n this.msgid = 0;\n this._messagesArea.innerHTML = \"\";\n this._history = [];\n this._activeTags.clear();\n }\n\n historyGetLength() {\n return this._history.length;\n }\n\n historyGetMessage(n) {\n if (n >= 0 && n < this._history.length) {\n return this._history[n];\n }\n return {};\n\n }\n\n historyGetMessageContent(n) {\n if (n >= 0 && n < this._history.length)\n return this._history[n].content;\n else\n return \"\";\n }\n\n // expects an array of messages to be in the format of the history object\n historyRestoreAll(messageList) {\n // clear all messages and history\n this.historyClear();\n\n // clear the messages div \n this._messagesArea.innerHTML = \"\";\n\n // add all messages\n messageList.forEach((message) => {\n this.messageAddFull(message);\n });\n }\n /**\n * \n * @param {string} newTheme \n */\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n\n /**\n * Get the current theme\n * @returns {string} - The current theme\n */\n get theme() {\n return this._theme;\n }\n\n /**\n * \n * @returns {object} - Returns the version and license information for the library.\n */\n static version() {\n return { \"version\": \"1.1.14\", \"license\": \"BSD-2\", \"url\": \"https://github/deftio/quikchat\", \"fun\": true };\n }\n\n /**\n * quikchat.loremIpsum() - Generate a simple string of Lorem Ipsum text (sample typographer's text) of numChars in length.\n * borrowed from github.com/deftio/bitwrench.js\n * @param {number} numChars - The number of characters to generate (random btw 25 and 150 if undefined). \n * @param {number} [startSpot=0] - The starting index in the Lorem Ipsum text. If undefined, a random startSpot will be generated.\n * @param {boolean} [startWithCapitalLetter=true] - If true, capitalize the first character or inject a capital letter if the first character isn't a capital letter.\n * \n * @returns {string} A string of Lorem Ipsum text.\n * \n * @example \n * // Returns 200 characters of Lorem Ipsum starting from index 50\n * loremIpsum(200, 50);\n * \n * @example \n * //Returns a 200 Lorem Ipsum characters starting from a random index\n * loremIpsum(200);\n */\n\n static loremIpsum(numChars, startSpot = undefined, startWithCapitalLetter = true) {\n const loremText = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \";\n\n if (typeof numChars !== \"number\") {\n numChars = Math.floor(Math.random() * (150)) + 25;\n }\n\n if (startSpot === undefined) {\n startSpot = Math.floor(Math.random() * loremText.length);\n }\n\n startSpot = startSpot % loremText.length;\n\n // Move startSpot to the next non-whitespace and non-punctuation character\n while (loremText[startSpot] === ' ' || /[.,:;!?]/.test(loremText[startSpot])) {\n startSpot = (startSpot + 1) % loremText.length;\n }\n\n let l = loremText.substring(startSpot) + loremText.substring(0, startSpot);\n\n if (typeof numChars !== \"number\") {\n numChars = l.length;\n }\n\n let s = \"\";\n while (numChars > 0) {\n s += numChars < l.length ? l.substring(0, numChars) : l;\n numChars -= l.length;\n }\n\n if (s[s.length - 1] === \" \") {\n s = s.substring(0, s.length - 1) + \".\"; // always end on non-whitespace. \".\" was chosen arbitrarily.\n }\n\n if (startWithCapitalLetter) {\n let c = s[0].toUpperCase();\n c = /[A-Z]/.test(c) ? c : \"M\";\n s = c + s.substring(1);\n }\n\n return s;\n };\n\n static tempMessageGenerator (domElement, content, interval, cb = null) {\n interval = Math.max(interval, 100); // Ensure at least 100ms interval\n \n let count = 0;\n\n let defaultCB = (msg, count) => {msg += \".\"; return msg; };\n\n if (cb && typeof cb !== 'function') {\n cb = null;\n }\n\n cb = cb || defaultCB;\n \n // if its a string, then get the element (css sel) or its an DOM element already \n let el = domElement;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n } \n\n const element = el;\n\n \n // Ensure the element exists\n if (!element) return;\n \n element.innerHTML = content;\n let currentMsg = content;\n \n const intervalId = setInterval(() => {\n if (element.innerHTML !== currentMsg) {\n clearInterval(intervalId); // Stop updating if content is changed externally\n return;\n }\n \n currentMsg = String( cb(currentMsg, count)) ;// Use callback return value if provided\n \n count++;\n element.innerHTML = currentMsg;\n }, interval);\n }\n\n static createTempMessageDOMStr(initialContent, updateInterval = 1000, callback = null, options = {}) {\n // Make sure the interval is at least 100ms\n updateInterval = Math.max(updateInterval, 100);\n \n // Validate callback; if not a function, ignore it.\n if (callback && typeof callback !== 'function') {\n callback = null;\n }\n // Default callback simply appends a dot.\n callback = callback || function(msg, count) {\n return msg + \".\";\n };\n \n // Allow an optional CSS class for the container element\n const containerClass = options.containerClass ? options.containerClass : '';\n \n // Generate a unique id so that the inline script can reliably find the container.\n const uniqueId = \"tempMsg_\" + Date.now() + \"_\" + Math.floor(Math.random() * 1000000);\n \n // Build and return the HTML string.\n // Note the use of <\\/script> (with a backslash) so that the inline script is not terminated early.\n return `\n <span id=\"${uniqueId}\" ${containerClass ? `class=\"${containerClass}\"` : ''}>\n ${initialContent}\n </span>\n <script>\n (function(){\n // Get our container element by its unique id.\n var container = document.getElementById(\"${uniqueId}\");\n if (!container) return;\n var count = 0;\n var currentMsg = container.innerHTML;\n var interval = ${updateInterval};\n // Convert the callback function into its string representation.\n var cb = ${callback.toString()};\n var intervalId = setInterval(function(){\n // If the content has been replaced, stop updating.\n if(container.innerHTML !== currentMsg){\n clearInterval(intervalId);\n return;\n }\n // Use the callback to generate the new message.\n currentMsg = String(cb(currentMsg, count));\n count++;\n container.innerHTML = currentMsg;\n }, interval);\n })();\n <\\/script>\n `;\n }\n \n setTagVisibility(tagName, isVisible) {\n if (typeof tagName !== 'string' || !/^[a-zA-Z0-9-]+$/.test(tagName)) {\n return false;\n }\n const className = `quikchat-show-tag-${tagName}`;\n if (isVisible) {\n this._chatWidget.classList.add(className);\n } else {\n this._chatWidget.classList.remove(className);\n }\n this._updateMessageStyles();\n return true;\n }\n\n getTagVisibility(tagName) {\n if (typeof tagName !== 'string' || !/^[a-zA-Z0-9-]+$/.test(tagName)) {\n return false;\n }\n return this._chatWidget.classList.contains(`quikchat-show-tag-${tagName}`);\n }\n\n getActiveTags() {\n return Array.from(this._activeTags);\n }\n}\n\nexport default quikchat;\n"],"names":["quikchat","parentElement","onSend","arguments","length","undefined","options","_classCallCheck","defaultOpts","theme","trackHistory","titleArea","title","show","align","messagesArea","alternating","inputArea","sendOnEnter","sendOnShiftEnter","instanceClass","meta","_objectSpread","document","querySelector","_parentElement","_theme","_onSend","_createWidget","_chatWidget","classList","add","titleAreaSetContents","titleAreaShow","titleAreaHide","messagesAreaAlternateColors","inputAreaShow","inputAreaHide","_attachEventListeners","_historyLimit","_history","_activeTags","Set","_createClass","key","value","widgetHTML","concat","innerHTML","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","_this","addEventListener","event","preventDefault","trim","window","_handleContainerResize","shiftKey","keyCode","_this$_messagesArea","scrollTop","scrollHeight","clientHeight","userScrolledUp","setCallbackOnSend","callback","setCallbackonMessageAdded","_onMessageAdded","titleAreaToggle","style","display","_adjustMessagesAreaHeight","textAlign","titleAreaGetContents","inputAreaToggle","toggle","hiddenElements","_toConsumableArray","children","filter","child","contains","totalHiddenHeight","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","fontSize","parseFloat","getComputedStyle","minWidth","alt","remove","messagesAreaAlternateColorsToggle","messagesAreaAlternateColorsGet","messageAddFull","_this2","input","content","userString","role","userID","timestamp","updatedtime","scrollIntoView","visible","tags","messageDiv","createElement","msgidClass","String","padStart","Array","isArray","forEach","tag","test","userDiv","contentDiv","isMultiLine","includes","isLong","appendChild","messageScrollToBottom","_handleShortLongMessageCSS","_updateMessageStyles","Date","toISOString","push","shift","messageAddNew","retvalue","messageRemove","n","sucess","removeChild","error","console","log","splice","findIndex","item","messageGetDOMObject","msg","messageGetContent","messageGetContentDOMElement","contentElement","lastChild","messageAppendContent","success","lastElementChild","messageReplaceContent","messageRemoveLast","lastMsgId","messageSetVisibility","isVisible","message","find","messageGetVisibility","visibleMessages","index","messageElement","lastDiv","computedStyle","elementHeight","lineHeight","historyGet","m","slice","historyGetAllCopy","historyClear","clear","historyGetLength","historyGetMessage","historyGetMessageContent","historyRestoreAll","messageList","_this3","changeTheme","newTheme","get","setTagVisibility","tagName","className","getTagVisibility","getActiveTags","from","version","loremIpsum","numChars","startSpot","startWithCapitalLetter","loremText","Math","floor","random","l","substring","s","c","toUpperCase","tempMessageGenerator","domElement","interval","cb","max","count","defaultCB","el","element","currentMsg","intervalId","setInterval","clearInterval","createTempMessageDOMStr","initialContent","updateInterval","containerClass","uniqueId","now","toString"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n<t;n++)i[n]=e[n];return i}function t(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,a(i.key),i)}}function n(e,t,n){return(t=a(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function s(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?i(Object(s),!0).forEach((function(t){n(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):i(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function r(t){return function(t){if(Array.isArray(t))return e(t)}(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(t,n){if(t){if("string"==typeof t)return e(t,n);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?e(t,n):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t);if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}var o=function(){return e=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var r=s(s({},{theme:"quikchat-theme-light",trackHistory:!0,titleArea:{title:"Chat",show:!1,align:"center"},messagesArea:{alternating:!0},inputArea:{show:!0},sendOnEnter:!0,sendOnShiftEnter:!1}),i);"string"==typeof t&&(t=document.querySelector(t)),this._parentElement=t,this._theme=r.theme,this._onSend=n||function(){},this._createWidget(),r.titleArea&&(this.titleAreaSetContents(r.titleArea.title,r.titleArea.align),!0===r.titleArea.show?this.titleAreaShow():this.titleAreaHide()),r.messagesArea&&this.messagesAreaAlternateColors(r.messagesArea.alternating),r.inputArea&&(!0===r.inputArea.show?this.inputAreaShow():this.inputAreaHide()),this._attachEventListeners(),this.trackHistory=r.trackHistory||!0,this._historyLimit=1e7,this._history=[],this.sendOnEnter=r.sendOnEnter,this.sendOnShiftEnter=r.sendOnShiftEnter},n=[{key:"_createWidget",value:function(){var e='\n <div class="quikchat-base '.concat(this.theme,'">\n <div class="quikchat-title-area">\n <span style="font-size: 1.5em; font-weight: 600;">Title Area</span>\n </div>\n <div class="quikchat-messages-area"></div>\n <div class="quikchat-input-area">\n <textarea class="quikchat-input-textbox"></textarea>\n <button class="quikchat-input-send-btn">Send</button>\n </div>\n </div>\n ');this._parentElement.innerHTML=e,this._chatWidget=this._parentElement.querySelector(".quikchat-base"),this._titleArea=this._chatWidget.querySelector(".quikchat-title-area"),this._messagesArea=this._chatWidget.querySelector(".quikchat-messages-area"),this._inputArea=this._chatWidget.querySelector(".quikchat-input-area"),this._textEntry=this._inputArea.querySelector(".quikchat-input-textbox"),this._sendButton=this._inputArea.querySelector(".quikchat-input-send-btn"),this.msgid=0}},{key:"_attachEventListeners",value:function(){var e=this;this._sendButton.addEventListener("click",(function(t){t.preventDefault(),e._onSend(e,e._textEntry.value.trim())})),window.addEventListener("resize",(function(){return e._handleContainerResize()})),this._chatWidget.addEventListener("resize",(function(){return e._handleContainerResize()})),this._textEntry.addEventListener("keydown",(function(t){t.shiftKey&&13===t.keyCode?e.sendOnShiftEnter&&(t.preventDefault(),e._onSend(e,e._textEntry.value.trim())):13===t.keyCode&&e.sendOnEnter&&(t.preventDefault(),e._onSend(e,e._textEntry.value.trim()))})),this._messagesArea.addEventListener("scroll",(function(){var t=e._messagesArea,n=t.scrollTop,i=t.scrollHeight,s=t.clientHeight;e.userScrolledUp=n+s<i}))}},{key:"setCallbackOnSend",value:function(e){this._onSend=e}},{key:"setCallbackonMessageAdded",value:function(e){this._onMessageAdded=e}},{key:"titleAreaToggle",value:function(){"none"===this._titleArea.style.display?this.titleAreaShow():this.titleAreaHide()}},{key:"titleAreaShow",value:function(){this._titleArea.style.display="",this._adjustMessagesAreaHeight()}},{key:"titleAreaHide",value:function(){this._titleArea.style.display="none",this._adjustMessagesAreaHeight()}},{key:"titleAreaSetContents",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"center";this._titleArea.innerHTML=e,this._titleArea.style.textAlign=t}},{key:"titleAreaGetContents",value:function(){return this._titleArea.innerHTML}},{key:"inputAreaToggle",value:function(){this._inputArea.classList.toggle("hidden"),"none"===this._inputArea.style.display?this.inputAreaShow():this.inputAreaHide()}},{key:"inputAreaShow",value:function(){this._inputArea.style.display="",this._adjustMessagesAreaHeight()}},{key:"inputAreaHide",value:function(){this._inputArea.style.display="none",this._adjustMessagesAreaHeight()}},{key:"_adjustMessagesAreaHeight",value:function(){var e=r(this._chatWidget.children).filter((function(e){return e.classList.contains("hidden")})).reduce((function(e,t){return e+t.offsetHeight}),0),t=this._chatWidget.offsetHeight;this._messagesArea.style.height="calc(100% - ".concat(t-e,"px)")}},{key:"_handleContainerResize",value:function(){return this._adjustMessagesAreaHeight(),this._adjustSendButtonWidth(),!0}},{key:"_adjustSendButtonWidth",value:function(){var e=this._sendButton.textContent.trim(),t=parseFloat(getComputedStyle(this._sendButton).fontSize)*e.length+16;return this._sendButton.style.minWidth="".concat(t,"px"),!0}},{key:"messagesAreaAlternateColors",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return e?this._messagesArea.classList.add("quikchat-messages-area-alt"):this._messagesArea.classList.remove("quikchat-messages-area-alt"),!0===e}},{key:"messagesAreaAlternateColorsToggle",value:function(){this._messagesArea.classList.toggle("quikchat-messages-area-alt")}},{key:"messagesAreaAlternateColorsGet",value:function(){return this._messagesArea.classList.contains("quikchat-messages-area-alt")}},{key:"messageAddFull",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{content:"",userString:"user",align:"right",role:"user",userID:-1,timestamp:!1,updatedtime:!1,scrollIntoView:!0,visible:!0},t=this.msgid,n=document.createElement("div"),i="quikchat-msgid-"+String(t).padStart(10,"0");String(e.userString).padStart(10,"0"),n.classList.add("quikchat-message",i,"quikchat-structure"),this.msgid++;var r=document.createElement("div");r.innerHTML=e.userString,r.classList.add("quikchat-user-label"),r.style.textAlign=e.align;var a=document.createElement("div");if(a.classList.add("quikchat-message-content"),"right"===e.align){var o=e.content.includes("\n"),l=e.content.length>50;o||l?a.classList.add("quikchat-right-multiline"):a.classList.add("quikchat-right-singleline")}a.innerHTML=e.content,n.appendChild(r),n.appendChild(a),this._messagesArea.appendChild(n);var u=void 0===e.visible||e.visible;u||(n.style.display="none"),this.userScrolledUp&&!e.scrollIntoView||this.messageScrollToBottom(),this._textEntry.value="",this._adjustMessagesAreaHeight(),this._handleShortLongMessageCSS(n,e.align),this._updateMessageStyles();var c=e.timestamp?e.timestamp:(new Date).toISOString(),h=e.updatedtime?e.updatedtime:c;return this.trackHistory&&(this._history.push(s(s({msgid:t},e),{},{visible:u,timestamp:c,updatedtime:h,messageDiv:n})),this._history.length>this._historyLimit&&this._history.shift()),this._onMessageAdded&&this._onMessageAdded(this,t),t}},{key:"messageAddNew",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"user",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"right",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"user",s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];return this.messageAddFull({content:e,userString:t,align:n,role:i,scrollIntoView:s,visible:r})}},{key:"messageRemove",value:function(e){var t=!1;try{this._messagesArea.removeChild(this._messagesArea.querySelector(".quikchat-msgid-".concat(String(e).padStart(10,"0")))),t=!0}catch(e){console.log("{String(n)} : Message ID not found")}return t&&this._history.splice(this._history.findIndex((function(t){return t.msgid===e})),1),t}},{key:"messageGetDOMObject",value:function(e){var t=null;try{t=this._messagesArea.querySelector(".quikchat-msgid-".concat(String(e).padStart(10,"0")))}catch(e){console.log("{String(n)} : Message ID not found")}return t}},{key:"messageGetContent",value:function(e){var t="";try{t=this._history.filter((function(t){return t.msgid===e}))[0].content}catch(e){console.log("{String(n)} : Message ID not found")}return t}},{key:"messageGetContentDOMElement",value:function(e){var t=null;try{t=this._history.filter((function(t){return t.msgid===e}))[0].messageDiv.lastChild}catch(e){console.log("{String(n)} : Message ID not found")}return t}},{key:"messageAppendContent",value:function(e,t){var n=!1;try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(e).padStart(10,"0"))).lastChild.innerHTML+=t;var i=this._history.filter((function(t){return t.msgid===e}))[0];i.content+=t,i.updatedtime=(new Date).toISOString(),n=!0,this.userScrolledUp||this._messagesArea.lastElementChild.scrollIntoView()}catch(t){console.log("".concat(String(e)," : Message ID not found"))}return n}},{key:"messageReplaceContent",value:function(e,t){var n=!1;try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(e).padStart(10,"0"))).lastChild.innerHTML=t;var i=this._history.filter((function(t){return t.msgid===e}))[0];i.content=t,i.updatedtime=(new Date).toISOString(),n=!0,this.userScrolledUp||this._messagesArea.lastElementChild.scrollIntoView()}catch(t){console.log("".concat(String(e)," : Message ID not found"))}return n}},{key:"messageScrollToBottom",value:function(){this._messagesArea.lastElementChild&&this._messagesArea.lastElementChild.scrollIntoView()}},{key:"messageRemoveLast",value:function(){if(this._history.length>=0){var e=this._history[this._history.length-1].msgid;return this.messageRemove(e)}return!1}},{key:"messageSetVisibility",value:function(e,t){var n=this._history.find((function(t){return t.msgid===e}));return!(!n||!n.messageDiv||(n.messageDiv.style.display=t?"":"none",n.visible=t,this._updateMessageStyles(),0))}},{key:"messageGetVisibility",value:function(e){var t=this._history.find((function(t){return t.msgid===e}));return!(!t||!t.messageDiv)&&"none"!==t.messageDiv.style.display}},{key:"_updateMessageStyles",value:function(){r(this._messagesArea.children).filter((function(e){return"none"!==e.style.display})).forEach((function(e,t){e.classList.remove("quikchat-message-1","quikchat-message-2"),e.classList.add(t%2==0?"quikchat-message-1":"quikchat-message-2")}))}},{key:"_handleShortLongMessageCSS",value:function(e,t){e.classList.remove("left-singleline","left-multiline","center-singleline","center-multiline","right-singleline","right-multiline");var n=e.lastChild;window.lastDiv=n;var i,s=window.getComputedStyle(n),r=n.offsetHeight;i="normal"===s.lineHeight?1.2*parseFloat(s.fontSize):parseFloat(s.lineHeight);var a=r>i;switch(t){case"center":a?e.classList.add("center-multiline"):e.classList.add("center-singleline");break;case"right":a?e.classList.add("right-multiline"):e.classList.add("right-singleline");break;default:a?e.classList.add("left-multiline"):e.classList.add("left-singleline")}}},{key:"historyGet",value:function(e,t){return null==e&&(e=0,t=this._history.length),void 0===t&&(t=e<0?t:e+1),this._history.slice(e,t)}},{key:"historyGetAllCopy",value:function(){return this._history.slice()}},{key:"historyClear",value:function(){this.msgid=0,this._messagesArea.innerHTML="",this._history=[]}},{key:"historyGetLength",value:function(){return this._history.length}},{key:"historyGetMessage",value:function(e){return e>=0&&e<this._history.length?this._history[e]:{}}},{key:"historyGetMessageContent",value:function(e){return e>=0&&e<this._history.length?this._history[e].content:""}},{key:"historyRestoreAll",value:function(e){var t=this;this.historyClear(),this._messagesArea.innerHTML="",e.forEach((function(e){t.messageAddFull(e)}))}},{key:"changeTheme",value:function(e){this._chatWidget.classList.remove(this._theme),this._chatWidget.classList.add(e),this._theme=e}},{key:"theme",get:function(){return this._theme}}],i=[{key:"version",value:function(){return{version:"1.1.13",license:"BSD-2",url:"https://github/deftio/quikchat",fun:!0}}},{key:"loremIpsum",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ";for("number"!=typeof e&&(e=Math.floor(150*Math.random())+25),void 0===t&&(t=Math.floor(446*Math.random())),t%=446;" "===i[t]||/[.,:;!?]/.test(i[t]);)t=(t+1)%446;var s=i.substring(t)+i.substring(0,t);"number"!=typeof e&&(e=s.length);for(var r="";e>0;)r+=e<s.length?s.substring(0,e):s,e-=s.length;if(" "===r[r.length-1]&&(r=r.substring(0,r.length-1)+"."),n){var a=r[0].toUpperCase();r=(a=/[A-Z]/.test(a)?a:"M")+r.substring(1)}return r}},{key:"tempMessageGenerator",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;n=Math.max(n,100);var s=0;i&&"function"!=typeof i&&(i=null),i=i||function(e,t){return e+="."};var r=e;"string"==typeof r&&(r=document.querySelector(r));var a=r;if(a){a.innerHTML=t;var o=t,l=setInterval((function(){a.innerHTML===o?(o=String(i(o,s)),s++,a.innerHTML=o):clearInterval(l)}),n)}}},{key:"createTempMessageDOMStr",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t=Math.max(t,100),n&&"function"!=typeof n&&(n=null),n=n||function(e,t){return e+"."};var s=i.containerClass?i.containerClass:"",r="tempMsg_"+Date.now()+"_"+Math.floor(1e6*Math.random());return'\n <span id="'.concat(r,'" ').concat(s?'class="'.concat(s,'"'):"",">\n ").concat(e,'\n </span>\n <script>\n (function(){\n // Get our container element by its unique id.\n var container = document.getElementById("').concat(r,'");\n if (!container) return;\n var count = 0;\n var currentMsg = container.innerHTML;\n var interval = ').concat(t,";\n // Convert the callback function into its string representation.\n var cb = ").concat(n.toString(),";\n var intervalId = setInterval(function(){\n // If the content has been replaced, stop updating.\n if(container.innerHTML !== currentMsg){\n clearInterval(intervalId);\n return;\n }\n // Use the callback to generate the new message.\n currentMsg = String(cb(currentMsg, count));\n count++;\n container.innerHTML = currentMsg;\n }, interval);\n })();\n <\/script>\n ")}}],n&&t(e.prototype,n),i&&t(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n,i}();module.exports=o;
1
+ "use strict";function e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n<t;n++)i[n]=e[n];return i}function t(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,r(i.key),i)}}function n(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function s(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?i(Object(s),!0).forEach((function(t){n(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):i(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function a(t){return function(t){if(Array.isArray(t))return e(t)}(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(t,n){if(t){if("string"==typeof t)return e(t,n);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?e(t,n):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t);if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}var o=function(){return e=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var a=s(s({},{theme:"quikchat-theme-light",trackHistory:!0,titleArea:{title:"Chat",show:!1,align:"center"},messagesArea:{alternating:!0},inputArea:{show:!0},sendOnEnter:!0,sendOnShiftEnter:!1,instanceClass:""}),i);"string"==typeof t&&(t=document.querySelector(t)),this._parentElement=t,this._theme=a.theme,this._onSend=n||function(){},this._createWidget(),a.instanceClass&&this._chatWidget.classList.add(a.instanceClass),a.titleArea&&(this.titleAreaSetContents(a.titleArea.title,a.titleArea.align),!0===a.titleArea.show?this.titleAreaShow():this.titleAreaHide()),a.messagesArea&&this.messagesAreaAlternateColors(a.messagesArea.alternating),a.inputArea&&(!0===a.inputArea.show?this.inputAreaShow():this.inputAreaHide()),this._attachEventListeners(),this.trackHistory=a.trackHistory||!0,this._historyLimit=1e7,this._history=[],this._activeTags=new Set,this.sendOnEnter=a.sendOnEnter,this.sendOnShiftEnter=a.sendOnShiftEnter},n=[{key:"_createWidget",value:function(){var e='\n <div class="quikchat-base '.concat(this.theme,'">\n <div class="quikchat-title-area">\n <span style="font-size: 1.5em; font-weight: 600;">Title Area</span>\n </div>\n <div class="quikchat-messages-area"></div>\n <div class="quikchat-input-area">\n <textarea class="quikchat-input-textbox"></textarea>\n <button class="quikchat-input-send-btn">Send</button>\n </div>\n </div>\n ');this._parentElement.innerHTML=e,this._chatWidget=this._parentElement.querySelector(".quikchat-base"),this._titleArea=this._chatWidget.querySelector(".quikchat-title-area"),this._messagesArea=this._chatWidget.querySelector(".quikchat-messages-area"),this._inputArea=this._chatWidget.querySelector(".quikchat-input-area"),this._textEntry=this._inputArea.querySelector(".quikchat-input-textbox"),this._sendButton=this._inputArea.querySelector(".quikchat-input-send-btn"),this.msgid=0}},{key:"_attachEventListeners",value:function(){var e=this;this._sendButton.addEventListener("click",(function(t){t.preventDefault(),e._onSend(e,e._textEntry.value.trim())})),window.addEventListener("resize",(function(){return e._handleContainerResize()})),this._chatWidget.addEventListener("resize",(function(){return e._handleContainerResize()})),this._textEntry.addEventListener("keydown",(function(t){t.shiftKey&&13===t.keyCode?e.sendOnShiftEnter&&(t.preventDefault(),e._onSend(e,e._textEntry.value.trim())):13===t.keyCode&&e.sendOnEnter&&(t.preventDefault(),e._onSend(e,e._textEntry.value.trim()))})),this._messagesArea.addEventListener("scroll",(function(){var t=e._messagesArea,n=t.scrollTop,i=t.scrollHeight,s=t.clientHeight;e.userScrolledUp=n+s<i}))}},{key:"setCallbackOnSend",value:function(e){this._onSend=e}},{key:"setCallbackonMessageAdded",value:function(e){this._onMessageAdded=e}},{key:"titleAreaToggle",value:function(){"none"===this._titleArea.style.display?this.titleAreaShow():this.titleAreaHide()}},{key:"titleAreaShow",value:function(){this._titleArea.style.display="",this._adjustMessagesAreaHeight()}},{key:"titleAreaHide",value:function(){this._titleArea.style.display="none",this._adjustMessagesAreaHeight()}},{key:"titleAreaSetContents",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"center";this._titleArea.innerHTML=e,this._titleArea.style.textAlign=t}},{key:"titleAreaGetContents",value:function(){return this._titleArea.innerHTML}},{key:"inputAreaToggle",value:function(){this._inputArea.classList.toggle("hidden"),"none"===this._inputArea.style.display?this.inputAreaShow():this.inputAreaHide()}},{key:"inputAreaShow",value:function(){this._inputArea.style.display="",this._adjustMessagesAreaHeight()}},{key:"inputAreaHide",value:function(){this._inputArea.style.display="none",this._adjustMessagesAreaHeight()}},{key:"_adjustMessagesAreaHeight",value:function(){var e=a(this._chatWidget.children).filter((function(e){return e.classList.contains("hidden")})).reduce((function(e,t){return e+t.offsetHeight}),0),t=this._chatWidget.offsetHeight;this._messagesArea.style.height="calc(100% - ".concat(t-e,"px)")}},{key:"_handleContainerResize",value:function(){return this._adjustMessagesAreaHeight(),this._adjustSendButtonWidth(),!0}},{key:"_adjustSendButtonWidth",value:function(){var e=this._sendButton.textContent.trim(),t=parseFloat(getComputedStyle(this._sendButton).fontSize)*e.length+16;return this._sendButton.style.minWidth="".concat(t,"px"),!0}},{key:"messagesAreaAlternateColors",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return e?this._messagesArea.classList.add("quikchat-messages-area-alt"):this._messagesArea.classList.remove("quikchat-messages-area-alt"),!0===e}},{key:"messagesAreaAlternateColorsToggle",value:function(){this._messagesArea.classList.toggle("quikchat-messages-area-alt")}},{key:"messagesAreaAlternateColorsGet",value:function(){return this._messagesArea.classList.contains("quikchat-messages-area-alt")}},{key:"messageAddFull",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{content:"",userString:"user",align:"right",role:"user",userID:-1,timestamp:!1,updatedtime:!1,scrollIntoView:!0,visible:!0,tags:[]},n=this.msgid,i=document.createElement("div"),a="quikchat-msgid-"+String(n).padStart(10,"0");String(t.userString).padStart(10,"0"),i.classList.add("quikchat-message",a,"quikchat-structure"),Array.isArray(t.tags)&&t.tags.forEach((function(t){"string"==typeof t&&/^[a-zA-Z0-9-]+$/.test(t)&&(i.classList.add("quikchat-tag-".concat(t)),e._activeTags.add(t))})),this.msgid++;var r=document.createElement("div");r.innerHTML=t.userString,r.classList.add("quikchat-user-label"),r.style.textAlign=t.align;var o=document.createElement("div");if(o.classList.add("quikchat-message-content"),"right"===t.align){var l=t.content.includes("\n"),u=t.content.length>50;l||u?o.classList.add("quikchat-right-multiline"):o.classList.add("quikchat-right-singleline")}o.innerHTML=t.content,i.appendChild(r),i.appendChild(o),this._messagesArea.appendChild(i);var c=void 0===t.visible||t.visible;c||(i.style.display="none"),this.userScrolledUp&&!t.scrollIntoView||this.messageScrollToBottom(),this._textEntry.value="",this._adjustMessagesAreaHeight(),this._handleShortLongMessageCSS(i,t.align),this._updateMessageStyles();var h=t.timestamp?t.timestamp:(new Date).toISOString(),d=t.updatedtime?t.updatedtime:h;return this.trackHistory&&(this._history.push(s(s({msgid:n},t),{},{visible:c,timestamp:h,updatedtime:d,messageDiv:i})),this._history.length>this._historyLimit&&this._history.shift()),this._onMessageAdded&&this._onMessageAdded(this,n),n}},{key:"messageAddNew",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"user",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"right",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"user",s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:[];return this.messageAddFull({content:e,userString:t,align:n,role:i,scrollIntoView:s,visible:a,tags:r})}},{key:"messageRemove",value:function(e){var t=!1;try{this._messagesArea.removeChild(this._messagesArea.querySelector(".quikchat-msgid-".concat(String(e).padStart(10,"0")))),t=!0}catch(e){console.log("{String(n)} : Message ID not found")}return t&&this._history.splice(this._history.findIndex((function(t){return t.msgid===e})),1),t}},{key:"messageGetDOMObject",value:function(e){var t=null;try{t=this._messagesArea.querySelector(".quikchat-msgid-".concat(String(e).padStart(10,"0")))}catch(e){console.log("{String(n)} : Message ID not found")}return t}},{key:"messageGetContent",value:function(e){var t="";try{t=this._history.filter((function(t){return t.msgid===e}))[0].content}catch(e){console.log("{String(n)} : Message ID not found")}return t}},{key:"messageGetContentDOMElement",value:function(e){var t=null;try{t=this._history.filter((function(t){return t.msgid===e}))[0].messageDiv.lastChild}catch(e){console.log("{String(n)} : Message ID not found")}return t}},{key:"messageAppendContent",value:function(e,t){var n=!1;try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(e).padStart(10,"0"))).lastChild.innerHTML+=t;var i=this._history.filter((function(t){return t.msgid===e}))[0];i.content+=t,i.updatedtime=(new Date).toISOString(),n=!0,this.userScrolledUp||this._messagesArea.lastElementChild.scrollIntoView()}catch(t){console.log("".concat(String(e)," : Message ID not found"))}return n}},{key:"messageReplaceContent",value:function(e,t){var n=!1;try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(e).padStart(10,"0"))).lastChild.innerHTML=t;var i=this._history.filter((function(t){return t.msgid===e}))[0];i.content=t,i.updatedtime=(new Date).toISOString(),n=!0,this.userScrolledUp||this._messagesArea.lastElementChild.scrollIntoView()}catch(t){console.log("".concat(String(e)," : Message ID not found"))}return n}},{key:"messageScrollToBottom",value:function(){this._messagesArea.lastElementChild&&this._messagesArea.lastElementChild.scrollIntoView()}},{key:"messageRemoveLast",value:function(){if(this._history.length>=0){var e=this._history[this._history.length-1].msgid;return this.messageRemove(e)}return!1}},{key:"messageSetVisibility",value:function(e,t){var n=this._history.find((function(t){return t.msgid===e}));return!(!n||!n.messageDiv||(n.messageDiv.style.display=t?"":"none",n.visible=t,this._updateMessageStyles(),0))}},{key:"messageGetVisibility",value:function(e){var t=this._history.find((function(t){return t.msgid===e}));return!(!t||!t.messageDiv)&&"none"!==t.messageDiv.style.display}},{key:"_updateMessageStyles",value:function(){a(this._messagesArea.children).filter((function(e){return"none"!==e.style.display})).forEach((function(e,t){e.classList.remove("quikchat-message-1","quikchat-message-2"),e.classList.add(t%2==0?"quikchat-message-1":"quikchat-message-2")}))}},{key:"_handleShortLongMessageCSS",value:function(e,t){e.classList.remove("left-singleline","left-multiline","center-singleline","center-multiline","right-singleline","right-multiline");var n=e.lastChild;window.lastDiv=n;var i,s=window.getComputedStyle(n),a=n.offsetHeight;i="normal"===s.lineHeight?1.2*parseFloat(s.fontSize):parseFloat(s.lineHeight);var r=a>i;switch(t){case"center":r?e.classList.add("center-multiline"):e.classList.add("center-singleline");break;case"right":r?e.classList.add("right-multiline"):e.classList.add("right-singleline");break;default:r?e.classList.add("left-multiline"):e.classList.add("left-singleline")}}},{key:"historyGet",value:function(e,t){return null==e&&(e=0,t=this._history.length),void 0===t&&(t=e<0?t:e+1),this._history.slice(e,t)}},{key:"historyGetAllCopy",value:function(){return this._history.slice()}},{key:"historyClear",value:function(){this.msgid=0,this._messagesArea.innerHTML="",this._history=[],this._activeTags.clear()}},{key:"historyGetLength",value:function(){return this._history.length}},{key:"historyGetMessage",value:function(e){return e>=0&&e<this._history.length?this._history[e]:{}}},{key:"historyGetMessageContent",value:function(e){return e>=0&&e<this._history.length?this._history[e].content:""}},{key:"historyRestoreAll",value:function(e){var t=this;this.historyClear(),this._messagesArea.innerHTML="",e.forEach((function(e){t.messageAddFull(e)}))}},{key:"changeTheme",value:function(e){this._chatWidget.classList.remove(this._theme),this._chatWidget.classList.add(e),this._theme=e}},{key:"theme",get:function(){return this._theme}},{key:"setTagVisibility",value:function(e,t){if("string"!=typeof e||!/^[a-zA-Z0-9-]+$/.test(e))return!1;var n="quikchat-show-tag-".concat(e);return t?this._chatWidget.classList.add(n):this._chatWidget.classList.remove(n),this._updateMessageStyles(),!0}},{key:"getTagVisibility",value:function(e){return!("string"!=typeof e||!/^[a-zA-Z0-9-]+$/.test(e))&&this._chatWidget.classList.contains("quikchat-show-tag-".concat(e))}},{key:"getActiveTags",value:function(){return Array.from(this._activeTags)}}],i=[{key:"version",value:function(){return{version:"1.1.14",license:"BSD-2",url:"https://github/deftio/quikchat",fun:!0}}},{key:"loremIpsum",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ";for("number"!=typeof e&&(e=Math.floor(150*Math.random())+25),void 0===t&&(t=Math.floor(446*Math.random())),t%=446;" "===i[t]||/[.,:;!?]/.test(i[t]);)t=(t+1)%446;var s=i.substring(t)+i.substring(0,t);"number"!=typeof e&&(e=s.length);for(var a="";e>0;)a+=e<s.length?s.substring(0,e):s,e-=s.length;if(" "===a[a.length-1]&&(a=a.substring(0,a.length-1)+"."),n){var r=a[0].toUpperCase();a=(r=/[A-Z]/.test(r)?r:"M")+a.substring(1)}return a}},{key:"tempMessageGenerator",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;n=Math.max(n,100);var s=0;i&&"function"!=typeof i&&(i=null),i=i||function(e,t){return e+="."};var a=e;"string"==typeof a&&(a=document.querySelector(a));var r=a;if(r){r.innerHTML=t;var o=t,l=setInterval((function(){r.innerHTML===o?(o=String(i(o,s)),s++,r.innerHTML=o):clearInterval(l)}),n)}}},{key:"createTempMessageDOMStr",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t=Math.max(t,100),n&&"function"!=typeof n&&(n=null),n=n||function(e,t){return e+"."};var s=i.containerClass?i.containerClass:"",a="tempMsg_"+Date.now()+"_"+Math.floor(1e6*Math.random());return'\n <span id="'.concat(a,'" ').concat(s?'class="'.concat(s,'"'):"",">\n ").concat(e,'\n </span>\n <script>\n (function(){\n // Get our container element by its unique id.\n var container = document.getElementById("').concat(a,'");\n if (!container) return;\n var count = 0;\n var currentMsg = container.innerHTML;\n var interval = ').concat(t,";\n // Convert the callback function into its string representation.\n var cb = ").concat(n.toString(),";\n var intervalId = setInterval(function(){\n // If the content has been replaced, stop updating.\n if(container.innerHTML !== currentMsg){\n clearInterval(intervalId);\n return;\n }\n // Use the callback to generate the new message.\n currentMsg = String(cb(currentMsg, count));\n count++;\n container.innerHTML = currentMsg;\n }, interval);\n })();\n <\/script>\n ")}}],n&&t(e.prototype,n),i&&t(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n,i}();module.exports=o;
2
2
  //# sourceMappingURL=quikchat.cjs.min.js.map