quikchat 1.0.2 → 1.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"quikchat.umd.js","sources":["../src/quikchat.js"],"sourcesContent":["\nclass quikchat {\n /**\n * \n * @param string or DOM element parentElement \n * @param {*} meta \n */\n constructor(parentElement, \n meta = { \n theme: 'quikchat-theme-light', \n onSend: () => { },\n trackHistory: true,\n }) {\n if (typeof parentElement === 'string') {\n parentElement = document.querySelector(parentElement);\n }\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = meta.onSend ? meta.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) {\n this.titleAreaShow();\n } else {\n this.titleAreaHide();\n }\n }\n this._attachEventListeners();\n this.trackHistory = meta.trackHistory || true;\n this._history = [];\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 _attachEventListeners() {\n this._sendButton.addEventListener('click', () => 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 // Check if Shift + Enter is pressed\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim())\n }\n });\n }\n\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 //console.log('Container resized');\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 }\n\n messageAddNew(message, userObject = \"test\", align = 'left') {\n const messageDiv = document.createElement('div');\n const msgid = this.msgid;\n const msgidClass = 'quikchat-msgid-' + String(msgid).padStart(10, '0');\n messageDiv.classList.add('quikchat-message', msgidClass);\n this.msgid++;\n messageDiv.classList.add(this._messagesArea.children.length % 2 === 1 ? 'quikchat-message-1' : 'quikchat-message-2');\n let user = {name: \"not-set\",role : \"user\"};\n if (typeof userObject === 'object') {\n for (const key in userObject) {\n user[key] = userObject[key];\n }\n }\n else { // if userObject is a string\n user[\"name\"] = userObject ;\n }\n const userDiv = document.createElement('div');\n userDiv.innerHTML = user.name;\n userDiv.style = `width: 100%; text-align: ${align}; font-size: 1em; font-weight:700; color: #444;`;\n\n const contentDiv = document.createElement('div');\n contentDiv.style = `width: 100%; text-align: ${align};`;\n contentDiv.innerHTML = message;\n\n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n this._messagesArea.lastChild.scrollIntoView();\n\n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n const timestamp = new Date().toISOString();\n const updatedtime = timestamp;\n if (this.trackHistory) {\n this._history.push({ msgid, user, message, align, timestamp, updatedtime, messageDiv});\n if (this._history.length > 10000000) {\n this._history.shift();\n }\n }\n return {msgid};\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 // remove from history\n this._history = this._history.filter((item) => item.msgid !== n);\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 {\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 content = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.textContent;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content; \n }\n\n /* append message to the message content\n */\n messageAppendContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML += content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n } \n }\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\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 return this._history.slice(n,m);\n }\n\n historyClear() {\n this.msgid = 0;\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 this._history[n];\n }\n return {};\n\n } \n\n historyGetMessageContent(n) {\n return this._history[n].message;\n }\n\n\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n\n get theme() {\n return this._theme;\n }\n\n static getVersion() {\n return {\"version\" : \"1.0.2\"}\n }\n}\n\nexport default quikchat;\n"],"names":["quikchat","parentElement","meta","arguments","length","undefined","theme","onSend","trackHistory","_classCallCheck","document","querySelector","_parentElement","_theme","_onSend","_createWidget","titleArea","titleAreaSetContents","title","align","show","titleAreaShow","titleAreaHide","_attachEventListeners","_history","_createClass","key","value","widgetHTML","concat","innerHTML","_chatWidget","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","$","_this","addEventListener","trim","window","_handleContainerResize","event","shiftKey","keyCode","preventDefault","titleAreaToggle","style","display","_adjustMessagesAreaHeight","textAlign","titleAreaGetContents","inputAreaToggle","classList","toggle","inputAreaShow","inputAreaHide","hiddenElements","_toConsumableArray","children","filter","child","contains","totalHiddenHeight","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","fontSize","parseFloat","getComputedStyle","minWidth","messageAddNew","message","userObject","messageDiv","createElement","msgidClass","String","padStart","add","user","name","role","_typeof","userDiv","contentDiv","appendChild","lastChild","scrollIntoView","timestamp","Date","toISOString","updatedtime","push","shift","messageRemove","n","sucess","removeChild","error","console","log","item","messageGetDOMObject","msg","messageGetContent","content","messageAppendContent","messageReplaceContent","historyGet","m","slice","historyClear","historyGetLength","historyGetMessage","historyGetMessageContent","changeTheme","newTheme","remove","get","getVersion"],"mappings":"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"}
1
+ {"version":3,"file":"quikchat.umd.js","sources":["../src/quikchat.js"],"sourcesContent":["\nclass quikchat {\n /**\n * \n * @param string or DOM element parentElement \n * @param {*} meta \n */\n constructor(parentElement, \n meta = { \n theme: 'quikchat-theme-light', \n onSend: () => { }, \n trackHistory: true,\n titleArea: {title: \"Title Area\", show: false, align: \"center\"}\n }) \n {\n if (typeof parentElement === 'string') {\n parentElement = document.querySelector(parentElement);\n }\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = meta.onSend ? meta.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 this._attachEventListeners();\n this.trackHistory = meta.trackHistory || true;\n this._historyLimit = 10000000;\n this._history = [];\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 _attachEventListeners() {\n this._sendButton.addEventListener('click', () => 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 // Check if Shift + Enter is pressed\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim())\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 //console.log('Container resized');\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 }\n \n messageAddFull(input = {content: \"\", userString: \"user\", align : \"right\", role : \"user\", userID : -1}) {\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);\n this.msgid++;\n messageDiv.classList.add(this._messagesArea.children.length % 2 === 1 ? 'quikchat-message-1' : 'quikchat-message-2');\n \n const userDiv = document.createElement('div');\n userDiv.innerHTML = input.userString;\n userDiv.style = `width: 100%; text-align: ${input.align}; font-size: 1em; font-weight:700;`;\n\n const contentDiv = document.createElement('div');\n contentDiv.style = `width: 100%; text-align: ${input.align};`;\n contentDiv.innerHTML = input.content;\n\n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n //this._messagesArea.lastChild.scrollIntoView();\n this._messagesArea.lastElementChild.scrollIntoView()\n\n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n const timestamp = new Date().toISOString();\n const updatedtime = timestamp;\n if (this.trackHistory) {\n this._history.push({ msgid, ...input, timestamp, updatedtime, messageDiv});\n if (this._history.length > this._historyLimit) {\n this._history.shift();\n }\n }\n if (this._onMessageAdded) {\n this._onMessageAdded(this, msgid);\n };\n return msgid;\n }\n messageAddNew(content=\"\", userString=\"user\", align = \"right\", role = \"user\") {\n return this.messageAddFull( \n {content: content, userString: userString, align: align, role: role}\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 {\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 {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content; \n }\n\n /* append message to the message content\n */\n messageAppendContent(n, content) {\n let sucess = 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 sucess = true;\n //this._messagesArea.lastChild.scrollIntoView();\n this._messagesArea.lastElementChild.scrollIntoView()\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n } \n }\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n // update history\n this._history.filter((item) => item.msgid === n)[0].content = content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\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 historyClear() {\n this.msgid = 0;\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 this._history[n];\n }\n return {};\n\n } \n\n historyGetMessageContent(n) {\n return this._history[n].message;\n }\n\n\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n\n get theme() {\n return this._theme;\n }\n\n static version() {\n return {\"version\" : \"1.0.4\", \"license\" : \"BSD-2\", \"url\" :\"https://github/deftio/quikchat\"};\n }\n}\n\nexport default quikchat;\n"],"names":["quikchat","parentElement","meta","arguments","length","undefined","theme","onSend","trackHistory","titleArea","title","show","align","_classCallCheck","document","querySelector","_parentElement","_theme","_onSend","_createWidget","titleAreaSetContents","titleAreaShow","titleAreaHide","_attachEventListeners","_historyLimit","_history","_createClass","key","value","widgetHTML","concat","innerHTML","_chatWidget","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","_this","addEventListener","trim","window","_handleContainerResize","event","shiftKey","keyCode","preventDefault","setCallbackOnSend","callback","setCallbackonMessageAdded","_onMessageAdded","titleAreaToggle","style","display","_adjustMessagesAreaHeight","textAlign","titleAreaGetContents","inputAreaToggle","classList","toggle","inputAreaShow","inputAreaHide","hiddenElements","_toConsumableArray","children","filter","child","contains","totalHiddenHeight","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","fontSize","parseFloat","getComputedStyle","minWidth","messageAddFull","input","content","userString","role","userID","messageDiv","createElement","msgidClass","String","padStart","add","userDiv","contentDiv","appendChild","lastElementChild","scrollIntoView","timestamp","Date","toISOString","updatedtime","push","_objectSpread","shift","messageAddNew","messageRemove","n","sucess","removeChild","error","console","log","splice","findIndex","item","messageGetDOMObject","msg","messageGetContent","messageAppendContent","lastChild","messageReplaceContent","historyGet","m","slice","historyClear","historyGetLength","historyGetMessage","historyGetMessageContent","message","changeTheme","newTheme","remove","get","version"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MACMA,QAAQ,gBAAA,YAAA;EACV;EACJ;EACA;EACA;EACA;IACI,SAAAA,QAAAA,CAAYC,aAAa,EAOrB;MAAA,IANIC,IAAI,GAAAC,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAG,CAAA,CAAA,GAAA;EACHG,MAAAA,KAAK,EAAE,sBAAsB;EAC7BC,MAAAA,MAAM,EAAE,SAAAA,MAAA,GAAM,EAAG;EACjBC,MAAAA,YAAY,EAAE,IAAI;EAClBC,MAAAA,SAAS,EAAE;EAACC,QAAAA,KAAK,EAAE,YAAY;EAAEC,QAAAA,IAAI,EAAE,KAAK;EAAEC,QAAAA,KAAK,EAAE,QAAA;EAAQ,OAAA;OAChE,CAAA;EAAAC,IAAAA,eAAA,OAAAb,QAAA,CAAA,CAAA;EAEL,IAAA,IAAI,OAAOC,aAAa,KAAK,QAAQ,EAAE;EACnCA,MAAAA,aAAa,GAAGa,QAAQ,CAACC,aAAa,CAACd,aAAa,CAAC,CAAA;EACzD,KAAA;MACA,IAAI,CAACe,cAAc,GAAGf,aAAa,CAAA;EACnC,IAAA,IAAI,CAACgB,MAAM,GAAGf,IAAI,CAACI,KAAK,CAAA;EACxB,IAAA,IAAI,CAACY,OAAO,GAAGhB,IAAI,CAACK,MAAM,GAAGL,IAAI,CAACK,MAAM,GAAG,YAAM,EAAG,CAAA;MACpD,IAAI,CAACY,aAAa,EAAE,CAAA;EACpB;MACA,IAAIjB,IAAI,CAACO,SAAS,EAAE;EAChB,MAAA,IAAI,CAACW,oBAAoB,CAAClB,IAAI,CAACO,SAAS,CAACC,KAAK,EAAER,IAAI,CAACO,SAAS,CAACG,KAAK,CAAC,CAAA;EACrE,MAAA,IAAIV,IAAI,CAACO,SAAS,CAACE,IAAI,IAAI,IAAI,EAAE;UAC7B,IAAI,CAACU,aAAa,EAAE,CAAA;EACxB,OAAC,MAAM;UACH,IAAI,CAACC,aAAa,EAAE,CAAA;EACxB,OAAA;EACJ,KAAA;MACA,IAAI,CAACC,qBAAqB,EAAE,CAAA;EAC5B,IAAA,IAAI,CAACf,YAAY,GAAGN,IAAI,CAACM,YAAY,IAAI,IAAI,CAAA;MAC7C,IAAI,CAACgB,aAAa,GAAG,QAAQ,CAAA;MAC7B,IAAI,CAACC,QAAQ,GAAG,EAAE,CAAA;EACtB,GAAA;IAAC,OAAAC,YAAA,CAAA1B,QAAA,EAAA,CAAA;MAAA2B,GAAA,EAAA,eAAA;MAAAC,KAAA,EAED,SAAAT,aAAAA,GAAgB;EACZ,MAAA,IAAMU,UAAU,GAAAC,2CAAAA,CAAAA,MAAA,CAEgB,IAAI,CAACxB,KAAK,EAUrC,mfAAA,CAAA,CAAA;EAEL,MAAA,IAAI,CAACU,cAAc,CAACe,SAAS,GAAGF,UAAU,CAAA;QAC1C,IAAI,CAACG,WAAW,GAAG,IAAI,CAAChB,cAAc,CAACD,aAAa,CAAC,gBAAgB,CAAC,CAAA;QACtE,IAAI,CAACkB,UAAU,GAAG,IAAI,CAACD,WAAW,CAACjB,aAAa,CAAC,sBAAsB,CAAC,CAAA;QACxE,IAAI,CAACmB,aAAa,GAAG,IAAI,CAACF,WAAW,CAACjB,aAAa,CAAC,yBAAyB,CAAC,CAAA;QAC9E,IAAI,CAACoB,UAAU,GAAG,IAAI,CAACH,WAAW,CAACjB,aAAa,CAAC,sBAAsB,CAAC,CAAA;QACxE,IAAI,CAACqB,UAAU,GAAG,IAAI,CAACD,UAAU,CAACpB,aAAa,CAAC,yBAAyB,CAAC,CAAA;QAC1E,IAAI,CAACsB,WAAW,GAAG,IAAI,CAACF,UAAU,CAACpB,aAAa,CAAC,0BAA0B,CAAC,CAAA;QAC5E,IAAI,CAACuB,KAAK,GAAG,CAAC,CAAA;EAClB,KAAA;EAAC,GAAA,EAAA;MAAAX,GAAA,EAAA,uBAAA;MAAAC,KAAA,EAED,SAAAL,qBAAAA,GAAwB;EAAA,MAAA,IAAAgB,KAAA,GAAA,IAAA,CAAA;EACpB,MAAA,IAAI,CAACF,WAAW,CAACG,gBAAgB,CAAC,OAAO,EAAE,YAAA;EAAA,QAAA,OAAMD,KAAI,CAACrB,OAAO,CAACqB,KAAI,EAAEA,KAAI,CAACH,UAAU,CAACR,KAAK,CAACa,IAAI,EAAE,CAAC,CAAA;SAAC,CAAA,CAAA;EAClGC,MAAAA,MAAM,CAACF,gBAAgB,CAAC,QAAQ,EAAE,YAAA;EAAA,QAAA,OAAMD,KAAI,CAACI,sBAAsB,EAAE,CAAA;SAAC,CAAA,CAAA;EACtE,MAAA,IAAI,CAACX,WAAW,CAACQ,gBAAgB,CAAC,QAAQ,EAAE,YAAA;EAAA,QAAA,OAAMD,KAAI,CAACI,sBAAsB,EAAE,CAAA;SAAC,CAAA,CAAA;QAChF,IAAI,CAACP,UAAU,CAACI,gBAAgB,CAAC,SAAS,EAAE,UAACI,KAAK,EAAK;EACnD;UACA,IAAIA,KAAK,CAACC,QAAQ,IAAID,KAAK,CAACE,OAAO,KAAK,EAAE,EAAE;EACxC;YACAF,KAAK,CAACG,cAAc,EAAE,CAAA;EACtBR,UAAAA,KAAI,CAACrB,OAAO,CAACqB,KAAI,EAAEA,KAAI,CAACH,UAAU,CAACR,KAAK,CAACa,IAAI,EAAE,CAAC,CAAA;EACpD,SAAA;EACJ,OAAC,CAAC,CAAA;EACN,KAAA;EACA;EAAA,GAAA,EAAA;MAAAd,GAAA,EAAA,mBAAA;EAAAC,IAAAA,KAAA,EACA,SAAAoB,iBAAkBC,CAAAA,QAAQ,EAAE;QACxB,IAAI,CAAC/B,OAAO,GAAG+B,QAAQ,CAAA;EAC3B,KAAA;EACA;EAAA,GAAA,EAAA;MAAAtB,GAAA,EAAA,2BAAA;EAAAC,IAAAA,KAAA,EACA,SAAAsB,yBAA0BD,CAAAA,QAAQ,EAAE;QAChC,IAAI,CAACE,eAAe,GAAGF,QAAQ,CAAA;EACnC,KAAA;;EAEA;EAAA,GAAA,EAAA;MAAAtB,GAAA,EAAA,iBAAA;MAAAC,KAAA,EACA,SAAAwB,eAAAA,GAAkB;EACd,MAAA,IAAI,CAACnB,UAAU,CAACoB,KAAK,CAACC,OAAO,KAAK,MAAM,GAAG,IAAI,CAACjC,aAAa,EAAE,GAAG,IAAI,CAACC,aAAa,EAAE,CAAA;EAC1F,KAAA;EAAC,GAAA,EAAA;MAAAK,GAAA,EAAA,eAAA;MAAAC,KAAA,EAED,SAAAP,aAAAA,GAAgB;EACZ,MAAA,IAAI,CAACY,UAAU,CAACoB,KAAK,CAACC,OAAO,GAAG,EAAE,CAAA;QAClC,IAAI,CAACC,yBAAyB,EAAE,CAAA;EACpC,KAAA;EAAC,GAAA,EAAA;MAAA5B,GAAA,EAAA,eAAA;MAAAC,KAAA,EAED,SAAAN,aAAAA,GAAgB;EACZ,MAAA,IAAI,CAACW,UAAU,CAACoB,KAAK,CAACC,OAAO,GAAG,MAAM,CAAA;QACtC,IAAI,CAACC,yBAAyB,EAAE,CAAA;EACpC,KAAA;EAAC,GAAA,EAAA;MAAA5B,GAAA,EAAA,sBAAA;EAAAC,IAAAA,KAAA,EAED,SAAAR,oBAAqBV,CAAAA,KAAK,EAAoB;EAAA,MAAA,IAAlBE,KAAK,GAAAT,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,QAAQ,CAAA;EACxC,MAAA,IAAI,CAAC8B,UAAU,CAACF,SAAS,GAAGrB,KAAK,CAAA;EACjC,MAAA,IAAI,CAACuB,UAAU,CAACoB,KAAK,CAACG,SAAS,GAAG5C,KAAK,CAAA;EAC3C,KAAA;EAAC,GAAA,EAAA;MAAAe,GAAA,EAAA,sBAAA;MAAAC,KAAA,EAED,SAAA6B,oBAAAA,GAAuB;EACnB,MAAA,OAAO,IAAI,CAACxB,UAAU,CAACF,SAAS,CAAA;EACpC,KAAA;EAAC,GAAA,EAAA;MAAAJ,GAAA,EAAA,iBAAA;MAAAC,KAAA,EAED,SAAA8B,eAAAA,GAAkB;QACd,IAAI,CAACvB,UAAU,CAACwB,SAAS,CAACC,MAAM,CAAC,QAAQ,CAAC,CAAA;EAC1C,MAAA,IAAI,CAACzB,UAAU,CAACkB,KAAK,CAACC,OAAO,KAAK,MAAM,GAAG,IAAI,CAACO,aAAa,EAAE,GAAG,IAAI,CAACC,aAAa,EAAE,CAAA;EAC1F,KAAA;EAAC,GAAA,EAAA;MAAAnC,GAAA,EAAA,eAAA;MAAAC,KAAA,EAED,SAAAiC,aAAAA,GAAgB;EACZ,MAAA,IAAI,CAAC1B,UAAU,CAACkB,KAAK,CAACC,OAAO,GAAG,EAAE,CAAA;QAClC,IAAI,CAACC,yBAAyB,EAAE,CAAA;EACpC,KAAA;EAAC,GAAA,EAAA;MAAA5B,GAAA,EAAA,eAAA;MAAAC,KAAA,EAED,SAAAkC,aAAAA,GAAgB;EACZ,MAAA,IAAI,CAAC3B,UAAU,CAACkB,KAAK,CAACC,OAAO,GAAG,MAAM,CAAA;QACtC,IAAI,CAACC,yBAAyB,EAAE,CAAA;EACpC,KAAA;EAAC,GAAA,EAAA;MAAA5B,GAAA,EAAA,2BAAA;MAAAC,KAAA,EAED,SAAA2B,yBAAAA,GAA4B;EACxB,MAAA,IAAMQ,cAAc,GAAGC,kBAAA,CAAI,IAAI,CAAChC,WAAW,CAACiC,QAAQ,CAAA,CAAEC,MAAM,CAAC,UAAAC,KAAK,EAAA;EAAA,QAAA,OAAIA,KAAK,CAACR,SAAS,CAACS,QAAQ,CAAC,QAAQ,CAAC,CAAA;SAAC,CAAA,CAAA;QACzG,IAAMC,iBAAiB,GAAGN,cAAc,CAACO,MAAM,CAAC,UAACC,GAAG,EAAEJ,KAAK,EAAA;EAAA,QAAA,OAAKI,GAAG,GAAGJ,KAAK,CAACK,YAAY,CAAA;EAAA,OAAA,EAAE,CAAC,CAAC,CAAA;EAC5F,MAAA,IAAMC,eAAe,GAAG,IAAI,CAACzC,WAAW,CAACwC,YAAY,CAAA;EACrD,MAAA,IAAI,CAACtC,aAAa,CAACmB,KAAK,CAACqB,MAAM,GAAA5C,cAAAA,CAAAA,MAAA,CAAkB2C,eAAe,GAAGJ,iBAAiB,EAAK,KAAA,CAAA,CAAA;EAC7F,KAAA;EAAC,GAAA,EAAA;MAAA1C,GAAA,EAAA,wBAAA;MAAAC,KAAA,EAED,SAAAe,sBAAAA,GAAyB;QACrB,IAAI,CAACY,yBAAyB,EAAE,CAAA;QAChC,IAAI,CAACoB,sBAAsB,EAAE,CAAA;EAC7B;EACJ,KAAA;EAAC,GAAA,EAAA;MAAAhD,GAAA,EAAA,wBAAA;MAAAC,KAAA,EAED,SAAA+C,sBAAAA,GAAyB;QACrB,IAAMC,cAAc,GAAG,IAAI,CAACvC,WAAW,CAACwC,WAAW,CAACpC,IAAI,EAAE,CAAA;EAC1D,MAAA,IAAMqC,QAAQ,GAAGC,UAAU,CAACC,gBAAgB,CAAC,IAAI,CAAC3C,WAAW,CAAC,CAACyC,QAAQ,CAAC,CAAA;QACxE,IAAMG,QAAQ,GAAGH,QAAQ,GAAGF,cAAc,CAACxE,MAAM,GAAG,EAAE,CAAA;QACtD,IAAI,CAACiC,WAAW,CAACgB,KAAK,CAAC4B,QAAQ,GAAAnD,EAAAA,CAAAA,MAAA,CAAMmD,QAAQ,EAAI,IAAA,CAAA,CAAA;EACrD,KAAA;EAAC,GAAA,EAAA;MAAAtD,GAAA,EAAA,gBAAA;MAAAC,KAAA,EAED,SAAAsD,cAAAA,GAAuG;QAAA,IAAxFC,KAAK,GAAAhF,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAG,CAAA,CAAA,GAAA;EAACiF,QAAAA,OAAO,EAAE,EAAE;EAAEC,QAAAA,UAAU,EAAE,MAAM;EAAEzE,QAAAA,KAAK,EAAG,OAAO;EAAE0E,QAAAA,IAAI,EAAG,MAAM;EAAEC,QAAAA,MAAM,EAAG,CAAC,CAAA;SAAE,CAAA;EACjG,MAAA,IAAMjD,KAAK,GAAG,IAAI,CAACA,KAAK,CAAA;EACxB,MAAA,IAAMkD,UAAU,GAAG1E,QAAQ,CAAC2E,aAAa,CAAC,KAAK,CAAC,CAAA;EAChD,MAAA,IAAMC,UAAU,GAAG,iBAAiB,GAAGC,MAAM,CAACrD,KAAK,CAAC,CAACsD,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;EACtE,MAAoB,kBAAkB,GAAGD,MAAM,CAACR,KAAK,CAACE,UAAU,CAAC,CAACO,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;QACpFJ,UAAU,CAAC7B,SAAS,CAACkC,GAAG,CAAC,kBAAkB,EAAEH,UAAU,CAAC,CAAA;QACxD,IAAI,CAACpD,KAAK,EAAE,CAAA;QACZkD,UAAU,CAAC7B,SAAS,CAACkC,GAAG,CAAC,IAAI,CAAC3D,aAAa,CAAC+B,QAAQ,CAAC7D,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,oBAAoB,GAAG,oBAAoB,CAAC,CAAA;EAEpH,MAAA,IAAM0F,OAAO,GAAGhF,QAAQ,CAAC2E,aAAa,CAAC,KAAK,CAAC,CAAA;EAC7CK,MAAAA,OAAO,CAAC/D,SAAS,GAAGoD,KAAK,CAACE,UAAU,CAAA;QACpCS,OAAO,CAACzC,KAAK,GAAAvB,2BAAAA,CAAAA,MAAA,CAA+BqD,KAAK,CAACvE,KAAK,EAAoC,oCAAA,CAAA,CAAA;EAE3F,MAAA,IAAMmF,UAAU,GAAGjF,QAAQ,CAAC2E,aAAa,CAAC,KAAK,CAAC,CAAA;QAChDM,UAAU,CAAC1C,KAAK,GAAAvB,2BAAAA,CAAAA,MAAA,CAA+BqD,KAAK,CAACvE,KAAK,EAAG,GAAA,CAAA,CAAA;EAC7DmF,MAAAA,UAAU,CAAChE,SAAS,GAAGoD,KAAK,CAACC,OAAO,CAAA;EAEpCI,MAAAA,UAAU,CAACQ,WAAW,CAACF,OAAO,CAAC,CAAA;EAC/BN,MAAAA,UAAU,CAACQ,WAAW,CAACD,UAAU,CAAC,CAAA;EAClC,MAAA,IAAI,CAAC7D,aAAa,CAAC8D,WAAW,CAACR,UAAU,CAAC,CAAA;EAC1C;EACA,MAAA,IAAI,CAACtD,aAAa,CAAC+D,gBAAgB,CAACC,cAAc,EAAE,CAAA;EAEpD,MAAA,IAAI,CAAC9D,UAAU,CAACR,KAAK,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC2B,yBAAyB,EAAE,CAAA;QAChC,IAAM4C,SAAS,GAAG,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAE,CAAA;QAC1C,IAAMC,WAAW,GAAGH,SAAS,CAAA;QAC7B,IAAI,IAAI,CAAC3F,YAAY,EAAE;EACnB,QAAA,IAAI,CAACiB,QAAQ,CAAC8E,IAAI,CAAAC,cAAA,CAAAA,cAAA,CAAA;EAAGlE,UAAAA,KAAK,EAALA,KAAAA;EAAK,SAAA,EAAK6C,KAAK,CAAA,EAAA,EAAA,EAAA;EAAEgB,UAAAA,SAAS,EAATA,SAAS;EAAEG,UAAAA,WAAW,EAAXA,WAAW;EAAEd,UAAAA,UAAU,EAAVA,UAAAA;EAAU,SAAA,CAAC,CAAC,CAAA;UAC1E,IAAI,IAAI,CAAC/D,QAAQ,CAACrB,MAAM,GAAG,IAAI,CAACoB,aAAa,EAAE;EAC3C,UAAA,IAAI,CAACC,QAAQ,CAACgF,KAAK,EAAE,CAAA;EACzB,SAAA;EACJ,OAAA;QACA,IAAI,IAAI,CAACtD,eAAe,EAAE;EACtB,QAAA,IAAI,CAACA,eAAe,CAAC,IAAI,EAAEb,KAAK,CAAC,CAAA;EACrC,OAAA;EACA,MAAA,OAAOA,KAAK,CAAA;EAChB,KAAA;EAAC,GAAA,EAAA;MAAAX,GAAA,EAAA,eAAA;MAAAC,KAAA,EACD,SAAA8E,aAAAA,GAA6E;EAAA,MAAA,IAA/DtB,OAAO,GAAAjF,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAC,EAAE,CAAA;EAAA,MAAA,IAAEkF,UAAU,GAAAlF,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAC,MAAM,CAAA;EAAA,MAAA,IAAES,KAAK,GAAAT,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,OAAO,CAAA;EAAA,MAAA,IAAEmF,IAAI,GAAAnF,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,MAAM,CAAA;QACvE,OAAO,IAAI,CAAC+E,cAAc,CACtB;EAACE,QAAAA,OAAO,EAAEA,OAAO;EAAEC,QAAAA,UAAU,EAAEA,UAAU;EAAEzE,QAAAA,KAAK,EAAEA,KAAK;EAAE0E,QAAAA,IAAI,EAAEA,IAAAA;EAAI,OACvE,CAAC,CAAA;EACL,KAAA;EAAC,GAAA,EAAA;MAAA3D,GAAA,EAAA,eAAA;EAAAC,IAAAA,KAAA,EACD,SAAA+E,aAAcC,CAAAA,CAAC,EAAE;EACb;QACA,IAAIC,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI;UACA,IAAI,CAAC3E,aAAa,CAAC4E,WAAW,CAAC,IAAI,CAAC5E,aAAa,CAACnB,aAAa,CAAA,kBAAA,CAAAe,MAAA,CAAoB6D,MAAM,CAACiB,CAAC,CAAC,CAAChB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAE,CAAC,CAAC,CAAA;EAClHiB,QAAAA,MAAM,GAAG,IAAI,CAAA;SAChB,CACD,OAAOE,KAAK,EAAE;UACVC,OAAO,CAACC,GAAG,CAAA,oCAAqC,CAAC,CAAA;EACrD,OAAA;EACA,MAAA,IAAIJ,MAAM,EAAE;EACR;EACA;;EAEA;EACA,QAAA,IAAI,CAACpF,QAAQ,CAACyF,MAAM,CAAC,IAAI,CAACzF,QAAQ,CAAC0F,SAAS,CAAC,UAACC,IAAI,EAAA;EAAA,UAAA,OAAKA,IAAI,CAAC9E,KAAK,KAAKsE,CAAC,CAAA;WAAC,CAAA,EAAE,CAAC,CAAC,CAAA;EAChF,OAAA;EACA,MAAA,OAAOC,MAAM,CAAA;EACjB,KAAA;EACA;EACJ;EADI,GAAA,EAAA;MAAAlF,GAAA,EAAA,qBAAA;EAAAC,IAAAA,KAAA,EAEA,SAAAyF,mBAAoBT,CAAAA,CAAC,EAAE;QACnB,IAAIU,GAAG,GAAG,IAAI,CAAA;EACd;QACA,IAAI;UACAA,GAAG,GAAI,IAAI,CAACpF,aAAa,CAACnB,aAAa,CAAA,kBAAA,CAAAe,MAAA,CAAoB6D,MAAM,CAACiB,CAAC,CAAC,CAAChB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAE,CAAC,CAAA;SAC5F,CACD,OAAOmB,KAAK,EACZ;UACIC,OAAO,CAACC,GAAG,CAAA,oCAAqC,CAAC,CAAA;EACrD,OAAA;EACA,MAAA,OAAOK,GAAG,CAAA;EACd,KAAA;EACA;EACJ;EADI,GAAA,EAAA;MAAA3F,GAAA,EAAA,mBAAA;EAAAC,IAAAA,KAAA,EAEA,SAAA2F,iBAAkBX,CAAAA,CAAC,EAAE;QACjB,IAAIxB,OAAO,GAAG,EAAE,CAAA;EAChB;QACA,IAAI;EACA;UACAA,OAAO,GAAG,IAAI,CAAC3D,QAAQ,CAACyC,MAAM,CAAC,UAACkD,IAAI,EAAA;EAAA,UAAA,OAAKA,IAAI,CAAC9E,KAAK,KAAKsE,CAAC,CAAA;EAAA,SAAA,CAAC,CAAC,CAAC,CAAC,CAACxB,OAAO,CAAA;EACrE;SACH,CACD,OAAO2B,KAAK,EACZ;UACIC,OAAO,CAACC,GAAG,CAAA,oCAAqC,CAAC,CAAA;EACrD,OAAA;EACA,MAAA,OAAO7B,OAAO,CAAA;EAClB,KAAA;;EAEA;EACJ;EADI,GAAA,EAAA;MAAAzD,GAAA,EAAA,sBAAA;EAAAC,IAAAA,KAAA,EAEA,SAAA4F,oBAAAA,CAAqBZ,CAAC,EAAExB,OAAO,EAAE;QAC7B,IAAIyB,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI;UACA,IAAI,CAAC3E,aAAa,CAACnB,aAAa,CAAA,kBAAA,CAAAe,MAAA,CAAoB6D,MAAM,CAACiB,CAAC,CAAC,CAAChB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAE,CAAC,CAAC6B,SAAS,CAAC1F,SAAS,IAAIqD,OAAO,CAAA;EACjH;UACA,IAAIgC,IAAI,GAAG,IAAI,CAAC3F,QAAQ,CAACyC,MAAM,CAAC,UAACkD,IAAI,EAAA;EAAA,UAAA,OAAKA,IAAI,CAAC9E,KAAK,KAAKsE,CAAC,CAAA;WAAC,CAAA,CAAC,CAAC,CAAC,CAAA;UAC9DQ,IAAI,CAAChC,OAAO,IAAIA,OAAO,CAAA;UACvBgC,IAAI,CAACd,WAAW,GAAG,IAAIF,IAAI,EAAE,CAACC,WAAW,EAAE,CAAA;EAC3CQ,QAAAA,MAAM,GAAG,IAAI,CAAA;EACb;EACA,QAAA,IAAI,CAAC3E,aAAa,CAAC+D,gBAAgB,CAACC,cAAc,EAAE,CAAA;SACvD,CACD,OAAOa,KAAK,EACZ;UACIC,OAAO,CAACC,GAAG,CAAA,oCAAqC,CAAC,CAAA;EACrD,OAAA;EACJ,KAAA;EACA;EACJ;EADI,GAAA,EAAA;MAAAtF,GAAA,EAAA,uBAAA;EAAAC,IAAAA,KAAA,EAEA,SAAA8F,qBAAAA,CAAsBd,CAAC,EAAExB,OAAO,EAAE;QAC9B,IAAIyB,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI;UACA,IAAI,CAAC3E,aAAa,CAACnB,aAAa,CAAA,kBAAA,CAAAe,MAAA,CAAoB6D,MAAM,CAACiB,CAAC,CAAC,CAAChB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAE,CAAC,CAAC6B,SAAS,CAAC1F,SAAS,GAAGqD,OAAO,CAAA;EAChH;EACA,QAAA,IAAI,CAAC3D,QAAQ,CAACyC,MAAM,CAAC,UAACkD,IAAI,EAAA;EAAA,UAAA,OAAKA,IAAI,CAAC9E,KAAK,KAAKsE,CAAC,CAAA;EAAA,SAAA,CAAC,CAAC,CAAC,CAAC,CAACxB,OAAO,GAAGA,OAAO,CAAA;EACrEyB,QAAAA,MAAM,GAAG,IAAI,CAAA;SAChB,CACD,OAAOE,KAAK,EACZ;UACIC,OAAO,CAACC,GAAG,CAAA,oCAAqC,CAAC,CAAA;EACrD,OAAA;EACA,MAAA,OAAOJ,MAAM,CAAA;EACjB,KAAA;EACA;EACA;EACJ;EACA;EACA;EACA;EACA;EALI,GAAA,EAAA;MAAAlF,GAAA,EAAA,YAAA;EAAAC,IAAAA,KAAA,EAMA,SAAA+F,UAAAA,CAAWf,CAAC,EAACgB,CAAC,EAAE;QAEZ,IAAIhB,CAAC,IAAIvG,SAAS,EAAE;EAChBuG,QAAAA,CAAC,GAAG,CAAC,CAAA;EACLgB,QAAAA,CAAC,GAAE,IAAI,CAACnG,QAAQ,CAACrB,MAAM,CAAA;EAC3B,OAAA;QACA,IAAIwH,CAAC,KAAKvH,SAAS,EAAE;UACjBuH,CAAC,GAAGhB,CAAC,GAAG,CAAC,GAAGgB,CAAC,GAAEhB,CAAC,GAAG,CAAC,CAAA;EACxB,OAAA;EACA;EACA;;QAEA,OAAO,IAAI,CAACnF,QAAQ,CAACoG,KAAK,CAACjB,CAAC,EAACgB,CAAC,CAAC,CAAA;EACnC,KAAA;EAAC,GAAA,EAAA;MAAAjG,GAAA,EAAA,cAAA;MAAAC,KAAA,EAED,SAAAkG,YAAAA,GAAe;QACX,IAAI,CAACxF,KAAK,GAAG,CAAC,CAAA;QACd,IAAI,CAACb,QAAQ,GAAG,EAAE,CAAA;EACtB,KAAA;EAAC,GAAA,EAAA;MAAAE,GAAA,EAAA,kBAAA;MAAAC,KAAA,EAED,SAAAmG,gBAAAA,GAAmB;EACf,MAAA,OAAO,IAAI,CAACtG,QAAQ,CAACrB,MAAM,CAAA;EAC/B,KAAA;EAAC,GAAA,EAAA;MAAAuB,GAAA,EAAA,mBAAA;EAAAC,IAAAA,KAAA,EAED,SAAAoG,iBAAkBpB,CAAAA,CAAC,EAAE;QACjB,IAAKA,CAAC,IAAE,CAAC,IAAIA,CAAC,GAAG,IAAI,CAACnF,QAAQ,CAACrB,MAAM,EAAE;EACnC,QAAA,IAAI,CAACqB,QAAQ,CAACmF,CAAC,CAAC,CAAA;EACpB,OAAA;EACA,MAAA,OAAO,EAAE,CAAA;EAEb,KAAA;EAAC,GAAA,EAAA;MAAAjF,GAAA,EAAA,0BAAA;EAAAC,IAAAA,KAAA,EAED,SAAAqG,wBAAyBrB,CAAAA,CAAC,EAAE;EACxB,MAAA,OAAO,IAAI,CAACnF,QAAQ,CAACmF,CAAC,CAAC,CAACsB,OAAO,CAAA;EACnC,KAAA;EAAC,GAAA,EAAA;MAAAvG,GAAA,EAAA,aAAA;EAAAC,IAAAA,KAAA,EAGD,SAAAuG,WAAYC,CAAAA,QAAQ,EAAE;QAClB,IAAI,CAACpG,WAAW,CAAC2B,SAAS,CAAC0E,MAAM,CAAC,IAAI,CAACpH,MAAM,CAAC,CAAA;QAC9C,IAAI,CAACe,WAAW,CAAC2B,SAAS,CAACkC,GAAG,CAACuC,QAAQ,CAAC,CAAA;QACxC,IAAI,CAACnH,MAAM,GAAGmH,QAAQ,CAAA;EAC1B,KAAA;EAAC,GAAA,EAAA;MAAAzG,GAAA,EAAA,OAAA;MAAA2G,GAAA,EAED,SAAAA,GAAAA,GAAY;QACR,OAAO,IAAI,CAACrH,MAAM,CAAA;EACtB,KAAA;EAAC,GAAA,CAAA,EAAA,CAAA;MAAAU,GAAA,EAAA,SAAA;MAAAC,KAAA,EAED,SAAA2G,OAAAA,GAAiB;QACb,OAAO;EAAC,QAAA,SAAS,EAAG,OAAO;EAAE,QAAA,SAAS,EAAG,OAAO;EAAE,QAAA,KAAK,EAAE,gCAAA;SAAiC,CAAA;EAC9F,KAAA;EAAC,GAAA,CAAA,CAAA,CAAA;EAAA,CAAA;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).quikchat=e()}(this,(function(){"use strict";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=Array(e);i<e;i++)n[i]=t[i];return n}function e(t,e){for(var i=0;i<e.length;i++){var s=e[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,n(s.key),s)}}function i(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(e)||function(e,i){if(e){if("string"==typeof e)return t(e,i);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,i):void 0}}(e)||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 n(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"==typeof e?e:e+""}function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}var r=function(){return t=function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{theme:"quikchat-theme-light",onSend:function(){},trackHistory:!0};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),"string"==typeof e&&(e=document.querySelector(e)),this._parentElement=e,this._theme=i.theme,this._onSend=i.onSend?i.onSend:function(){},this._createWidget(),i.titleArea&&(this.titleAreaSetContents(i.titleArea.title,i.titleArea.align),i.titleArea.show?this.titleAreaShow():this.titleAreaHide()),this._attachEventListeners(),this.trackHistory=i.trackHistory||!0,this._history=[]},n=[{key:"_createWidget",value:function(){var t='\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=t,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:"$",value:function(){}},{key:"_attachEventListeners",value:function(){var t=this;this._sendButton.addEventListener("click",(function(){return t._onSend(t,t._textEntry.value.trim())})),window.addEventListener("resize",(function(){return t._handleContainerResize()})),this._chatWidget.addEventListener("resize",(function(){return t._handleContainerResize()})),this._textEntry.addEventListener("keydown",(function(e){e.shiftKey&&13===e.keyCode&&(e.preventDefault(),t._onSend(t,t._textEntry.value.trim()))}))}},{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(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"center";this._titleArea.innerHTML=t,this._titleArea.style.textAlign=e}},{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 t=i(this._chatWidget.children).filter((function(t){return t.classList.contains("hidden")})).reduce((function(t,e){return t+e.offsetHeight}),0),e=this._chatWidget.offsetHeight;this._messagesArea.style.height="calc(100% - ".concat(e-t,"px)")}},{key:"_handleContainerResize",value:function(){this._adjustMessagesAreaHeight(),this._adjustSendButtonWidth()}},{key:"_adjustSendButtonWidth",value:function(){var t=this._sendButton.textContent.trim(),e=parseFloat(getComputedStyle(this._sendButton).fontSize)*t.length+16;this._sendButton.style.minWidth="".concat(e,"px")}},{key:"messageAddNew",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"test",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"left",n=document.createElement("div"),r=this.msgid,a="quikchat-msgid-"+String(r).padStart(10,"0");n.classList.add("quikchat-message",a),this.msgid++,n.classList.add(this._messagesArea.children.length%2==1?"quikchat-message-1":"quikchat-message-2");var o={name:"not-set",role:"user"};if("object"===s(e))for(var u in e)o[u]=e[u];else o.name=e;var h=document.createElement("div");h.innerHTML=o.name,h.style="width: 100%; text-align: ".concat(i,"; font-size: 1em; font-weight:700; color: #444;");var l=document.createElement("div");l.style="width: 100%; text-align: ".concat(i,";"),l.innerHTML=t,n.appendChild(h),n.appendChild(l),this._messagesArea.appendChild(n),this._messagesArea.lastChild.scrollIntoView(),this._textEntry.value="",this._adjustMessagesAreaHeight();var c=(new Date).toISOString(),d=c;return this.trackHistory&&(this._history.push({msgid:r,user:o,message:t,align:i,timestamp:c,updatedtime:d,messageDiv:n}),this._history.length>1e7&&this._history.shift()),{msgid:r}}},{key:"messageRemove",value:function(t){var e=!1;try{this._messagesArea.removeChild(this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0")))),e=!0}catch(t){console.log("{String(n)} : Message ID not found")}return e&&(this._history=this._history.filter((function(e){return e.msgid!==t}))),e}},{key:"messageGetDOMObject",value:function(t){var e=null;try{e=this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0")))}catch(t){console.log("{String(n)} : Message ID not found")}return e}},{key:"messageGetContent",value:function(t){var e="";try{e=this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.textContent}catch(t){console.log("{String(n)} : Message ID not found")}return e}},{key:"messageAppendContent",value:function(t,e){try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.innerHTML+=e}catch(t){console.log("{String(n)} : Message ID not found")}}},{key:"messageReplaceContent",value:function(t,e){var i=!1;try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.innerHTML=e,i=!0}catch(t){console.log("{String(n)} : Message ID not found")}return i}},{key:"historyGet",value:function(t,e){return null==t&&(t=0,e=this._history.length),void 0===e&&(e=t<0?e:t+1),this._history.slice(t,e)}},{key:"historyClear",value:function(){this.msgid=0,this._history=[]}},{key:"historyGetLength",value:function(){return this._history.length}},{key:"historyGetMessage",value:function(t){return t>=0&&t<this._history.length&&this._history[t],{}}},{key:"historyGetMessageContent",value:function(t){return this._history[t].message}},{key:"changeTheme",value:function(t){this._chatWidget.classList.remove(this._theme),this._chatWidget.classList.add(t),this._theme=t}},{key:"theme",get:function(){return this._theme}}],r=[{key:"getVersion",value:function(){return{version:"1.0.2"}}}],n&&e(t.prototype,n),r&&e(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n,r}();return r}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).quikchat=e()}(this,(function(){"use strict";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=Array(e);i<e;i++)n[i]=t[i];return n}function e(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,a(n.key),n)}}function i(t,e,i){return(e=a(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function n(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function r(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){i(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function s(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(e)||function(e,i){if(e){if("string"==typeof e)return t(e,i);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,i):void 0}}(e)||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(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"==typeof e?e:e+""}var o=function(){return t=function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{theme:"quikchat-theme-light",onSend:function(){},trackHistory:!0,titleArea:{title:"Title Area",show:!1,align:"center"}};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),"string"==typeof e&&(e=document.querySelector(e)),this._parentElement=e,this._theme=i.theme,this._onSend=i.onSend?i.onSend:function(){},this._createWidget(),i.titleArea&&(this.titleAreaSetContents(i.titleArea.title,i.titleArea.align),1==i.titleArea.show?this.titleAreaShow():this.titleAreaHide()),this._attachEventListeners(),this.trackHistory=i.trackHistory||!0,this._historyLimit=1e7,this._history=[]},i=[{key:"_createWidget",value:function(){var t='\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=t,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 t=this;this._sendButton.addEventListener("click",(function(){return t._onSend(t,t._textEntry.value.trim())})),window.addEventListener("resize",(function(){return t._handleContainerResize()})),this._chatWidget.addEventListener("resize",(function(){return t._handleContainerResize()})),this._textEntry.addEventListener("keydown",(function(e){e.shiftKey&&13===e.keyCode&&(e.preventDefault(),t._onSend(t,t._textEntry.value.trim()))}))}},{key:"setCallbackOnSend",value:function(t){this._onSend=t}},{key:"setCallbackonMessageAdded",value:function(t){this._onMessageAdded=t}},{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(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"center";this._titleArea.innerHTML=t,this._titleArea.style.textAlign=e}},{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 t=s(this._chatWidget.children).filter((function(t){return t.classList.contains("hidden")})).reduce((function(t,e){return t+e.offsetHeight}),0),e=this._chatWidget.offsetHeight;this._messagesArea.style.height="calc(100% - ".concat(e-t,"px)")}},{key:"_handleContainerResize",value:function(){this._adjustMessagesAreaHeight(),this._adjustSendButtonWidth()}},{key:"_adjustSendButtonWidth",value:function(){var t=this._sendButton.textContent.trim(),e=parseFloat(getComputedStyle(this._sendButton).fontSize)*t.length+16;this._sendButton.style.minWidth="".concat(e,"px")}},{key:"messageAddFull",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{content:"",userString:"user",align:"right",role:"user",userID:-1},e=this.msgid,i=document.createElement("div"),n="quikchat-msgid-"+String(e).padStart(10,"0");String(t.userString).padStart(10,"0"),i.classList.add("quikchat-message",n),this.msgid++,i.classList.add(this._messagesArea.children.length%2==1?"quikchat-message-1":"quikchat-message-2");var s=document.createElement("div");s.innerHTML=t.userString,s.style="width: 100%; text-align: ".concat(t.align,"; font-size: 1em; font-weight:700;");var a=document.createElement("div");a.style="width: 100%; text-align: ".concat(t.align,";"),a.innerHTML=t.content,i.appendChild(s),i.appendChild(a),this._messagesArea.appendChild(i),this._messagesArea.lastElementChild.scrollIntoView(),this._textEntry.value="",this._adjustMessagesAreaHeight();var o=(new Date).toISOString(),u=o;return this.trackHistory&&(this._history.push(r(r({msgid:e},t),{},{timestamp:o,updatedtime:u,messageDiv:i})),this._history.length>this._historyLimit&&this._history.shift()),this._onMessageAdded&&this._onMessageAdded(this,e),e}},{key:"messageAddNew",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"user",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"right",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"user";return this.messageAddFull({content:t,userString:e,align:i,role:n})}},{key:"messageRemove",value:function(t){var e=!1;try{this._messagesArea.removeChild(this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0")))),e=!0}catch(t){console.log("{String(n)} : Message ID not found")}return e&&this._history.splice(this._history.findIndex((function(e){return e.msgid===t})),1),e}},{key:"messageGetDOMObject",value:function(t){var e=null;try{e=this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0")))}catch(t){console.log("{String(n)} : Message ID not found")}return e}},{key:"messageGetContent",value:function(t){var e="";try{e=this._history.filter((function(e){return e.msgid===t}))[0].content}catch(t){console.log("{String(n)} : Message ID not found")}return e}},{key:"messageAppendContent",value:function(t,e){try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.innerHTML+=e;var i=this._history.filter((function(e){return e.msgid===t}))[0];i.content+=e,i.updatedtime=(new Date).toISOString(),this._messagesArea.lastElementChild.scrollIntoView()}catch(t){console.log("{String(n)} : Message ID not found")}}},{key:"messageReplaceContent",value:function(t,e){var i=!1;try{this._messagesArea.querySelector(".quikchat-msgid-".concat(String(t).padStart(10,"0"))).lastChild.innerHTML=e,this._history.filter((function(e){return e.msgid===t}))[0].content=e,i=!0}catch(t){console.log("{String(n)} : Message ID not found")}return i}},{key:"historyGet",value:function(t,e){return null==t&&(t=0,e=this._history.length),void 0===e&&(e=t<0?e:t+1),this._history.slice(t,e)}},{key:"historyClear",value:function(){this.msgid=0,this._history=[]}},{key:"historyGetLength",value:function(){return this._history.length}},{key:"historyGetMessage",value:function(t){return t>=0&&t<this._history.length&&this._history[t],{}}},{key:"historyGetMessageContent",value:function(t){return this._history[t].message}},{key:"changeTheme",value:function(t){this._chatWidget.classList.remove(this._theme),this._chatWidget.classList.add(t),this._theme=t}},{key:"theme",get:function(){return this._theme}}],n=[{key:"version",value:function(){return{version:"1.0.4",license:"BSD-2",url:"https://github/deftio/quikchat"}}}],i&&e(t.prototype,i),n&&e(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,i,n}();return o}));
2
2
  //# sourceMappingURL=quikchat.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quikchat.umd.min.js","sources":["../src/quikchat.js"],"sourcesContent":["\nclass quikchat {\n /**\n * \n * @param string or DOM element parentElement \n * @param {*} meta \n */\n constructor(parentElement, \n meta = { \n theme: 'quikchat-theme-light', \n onSend: () => { },\n trackHistory: true,\n }) {\n if (typeof parentElement === 'string') {\n parentElement = document.querySelector(parentElement);\n }\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = meta.onSend ? meta.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) {\n this.titleAreaShow();\n } else {\n this.titleAreaHide();\n }\n }\n this._attachEventListeners();\n this.trackHistory = meta.trackHistory || true;\n this._history = [];\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 _attachEventListeners() {\n this._sendButton.addEventListener('click', () => 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 // Check if Shift + Enter is pressed\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim())\n }\n });\n }\n\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 //console.log('Container resized');\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 }\n\n messageAddNew(message, userObject = \"test\", align = 'left') {\n const messageDiv = document.createElement('div');\n const msgid = this.msgid;\n const msgidClass = 'quikchat-msgid-' + String(msgid).padStart(10, '0');\n messageDiv.classList.add('quikchat-message', msgidClass);\n this.msgid++;\n messageDiv.classList.add(this._messagesArea.children.length % 2 === 1 ? 'quikchat-message-1' : 'quikchat-message-2');\n let user = {name: \"not-set\",role : \"user\"};\n if (typeof userObject === 'object') {\n for (const key in userObject) {\n user[key] = userObject[key];\n }\n }\n else { // if userObject is a string\n user[\"name\"] = userObject ;\n }\n const userDiv = document.createElement('div');\n userDiv.innerHTML = user.name;\n userDiv.style = `width: 100%; text-align: ${align}; font-size: 1em; font-weight:700; color: #444;`;\n\n const contentDiv = document.createElement('div');\n contentDiv.style = `width: 100%; text-align: ${align};`;\n contentDiv.innerHTML = message;\n\n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n this._messagesArea.lastChild.scrollIntoView();\n\n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n const timestamp = new Date().toISOString();\n const updatedtime = timestamp;\n if (this.trackHistory) {\n this._history.push({ msgid, user, message, align, timestamp, updatedtime, messageDiv});\n if (this._history.length > 10000000) {\n this._history.shift();\n }\n }\n return {msgid};\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 // remove from history\n this._history = this._history.filter((item) => item.msgid !== n);\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 {\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 content = this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.textContent;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content; \n }\n\n /* append message to the message content\n */\n messageAppendContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML += content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n } \n }\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\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 return this._history.slice(n,m);\n }\n\n historyClear() {\n this.msgid = 0;\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 this._history[n];\n }\n return {};\n\n } \n\n historyGetMessageContent(n) {\n return this._history[n].message;\n }\n\n\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n\n get theme() {\n return this._theme;\n }\n\n static getVersion() {\n return {\"version\" : \"1.0.2\"}\n }\n}\n\nexport default quikchat;\n"],"names":["quikchat","parentElement","meta","arguments","length","undefined","theme","onSend","trackHistory","_classCallCheck","document","querySelector","this","_parentElement","_theme","_onSend","_createWidget","titleArea","titleAreaSetContents","title","align","show","titleAreaShow","titleAreaHide","_attachEventListeners","_history","key","value","widgetHTML","concat","innerHTML","_chatWidget","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","_this","addEventListener","trim","window","_handleContainerResize","event","shiftKey","keyCode","preventDefault","style","display","_adjustMessagesAreaHeight","textAlign","classList","toggle","inputAreaShow","inputAreaHide","totalHiddenHeight","_toConsumableArray","children","filter","child","contains","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","minWidth","parseFloat","getComputedStyle","fontSize","message","userObject","messageDiv","createElement","msgidClass","String","padStart","add","user","name","role","_typeof","userDiv","contentDiv","appendChild","lastChild","scrollIntoView","timestamp","Date","toISOString","updatedtime","push","shift","n","sucess","removeChild","error","console","log","item","msg","content","m","slice","newTheme","remove","get","version"],"mappings":"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"}
1
+ {"version":3,"file":"quikchat.umd.min.js","sources":["../src/quikchat.js"],"sourcesContent":["\nclass quikchat {\n /**\n * \n * @param string or DOM element parentElement \n * @param {*} meta \n */\n constructor(parentElement, \n meta = { \n theme: 'quikchat-theme-light', \n onSend: () => { }, \n trackHistory: true,\n titleArea: {title: \"Title Area\", show: false, align: \"center\"}\n }) \n {\n if (typeof parentElement === 'string') {\n parentElement = document.querySelector(parentElement);\n }\n this._parentElement = parentElement;\n this._theme = meta.theme;\n this._onSend = meta.onSend ? meta.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 this._attachEventListeners();\n this.trackHistory = meta.trackHistory || true;\n this._historyLimit = 10000000;\n this._history = [];\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 _attachEventListeners() {\n this._sendButton.addEventListener('click', () => 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 // Check if Shift + Enter is pressed\n if (event.shiftKey && event.keyCode === 13) {\n // Prevent default behavior (adding new line)\n event.preventDefault();\n this._onSend(this, this._textEntry.value.trim())\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 //console.log('Container resized');\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 }\n \n messageAddFull(input = {content: \"\", userString: \"user\", align : \"right\", role : \"user\", userID : -1}) {\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);\n this.msgid++;\n messageDiv.classList.add(this._messagesArea.children.length % 2 === 1 ? 'quikchat-message-1' : 'quikchat-message-2');\n \n const userDiv = document.createElement('div');\n userDiv.innerHTML = input.userString;\n userDiv.style = `width: 100%; text-align: ${input.align}; font-size: 1em; font-weight:700;`;\n\n const contentDiv = document.createElement('div');\n contentDiv.style = `width: 100%; text-align: ${input.align};`;\n contentDiv.innerHTML = input.content;\n\n messageDiv.appendChild(userDiv);\n messageDiv.appendChild(contentDiv);\n this._messagesArea.appendChild(messageDiv);\n //this._messagesArea.lastChild.scrollIntoView();\n this._messagesArea.lastElementChild.scrollIntoView()\n\n this._textEntry.value = '';\n this._adjustMessagesAreaHeight();\n const timestamp = new Date().toISOString();\n const updatedtime = timestamp;\n if (this.trackHistory) {\n this._history.push({ msgid, ...input, timestamp, updatedtime, messageDiv});\n if (this._history.length > this._historyLimit) {\n this._history.shift();\n }\n }\n if (this._onMessageAdded) {\n this._onMessageAdded(this, msgid);\n };\n return msgid;\n }\n messageAddNew(content=\"\", userString=\"user\", align = \"right\", role = \"user\") {\n return this.messageAddFull( \n {content: content, userString: userString, align: align, role: role}\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 {\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 {\n console.log(`{String(n)} : Message ID not found`);\n }\n return content; \n }\n\n /* append message to the message content\n */\n messageAppendContent(n, content) {\n let sucess = 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 sucess = true;\n //this._messagesArea.lastChild.scrollIntoView();\n this._messagesArea.lastElementChild.scrollIntoView()\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n } \n }\n /* replace message content\n */\n messageReplaceContent(n, content) {\n let sucess = false;\n try {\n this._messagesArea.querySelector(`.quikchat-msgid-${String(n).padStart(10, '0')}`).lastChild.innerHTML = content;\n // update history\n this._history.filter((item) => item.msgid === n)[0].content = content;\n sucess = true;\n } \n catch (error) \n {\n console.log(`{String(n)} : Message ID not found`);\n }\n return sucess;\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 historyClear() {\n this.msgid = 0;\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 this._history[n];\n }\n return {};\n\n } \n\n historyGetMessageContent(n) {\n return this._history[n].message;\n }\n\n\n changeTheme(newTheme) {\n this._chatWidget.classList.remove(this._theme);\n this._chatWidget.classList.add(newTheme);\n this._theme = newTheme;\n }\n\n get theme() {\n return this._theme;\n }\n\n static version() {\n return {\"version\" : \"1.0.4\", \"license\" : \"BSD-2\", \"url\" :\"https://github/deftio/quikchat\"};\n }\n}\n\nexport default quikchat;\n"],"names":["quikchat","parentElement","meta","arguments","length","undefined","theme","onSend","trackHistory","titleArea","title","show","align","_classCallCheck","document","querySelector","this","_parentElement","_theme","_onSend","_createWidget","titleAreaSetContents","titleAreaShow","titleAreaHide","_attachEventListeners","_historyLimit","_history","key","value","widgetHTML","concat","innerHTML","_chatWidget","_titleArea","_messagesArea","_inputArea","_textEntry","_sendButton","msgid","_this","addEventListener","trim","window","_handleContainerResize","event","shiftKey","keyCode","preventDefault","callback","_onMessageAdded","style","display","_adjustMessagesAreaHeight","textAlign","classList","toggle","inputAreaShow","inputAreaHide","totalHiddenHeight","_toConsumableArray","children","filter","child","contains","reduce","sum","offsetHeight","containerHeight","height","_adjustSendButtonWidth","sendButtonText","textContent","minWidth","parseFloat","getComputedStyle","fontSize","input","content","userString","role","userID","messageDiv","createElement","msgidClass","String","padStart","add","userDiv","contentDiv","appendChild","lastElementChild","scrollIntoView","timestamp","Date","toISOString","updatedtime","push","_objectSpread","shift","messageAddFull","n","sucess","removeChild","error","console","log","splice","findIndex","item","msg","lastChild","m","slice","message","newTheme","remove","get","version","license","url"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quikchat",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "quikchat is a simple vanilla (no dependancies) JavaScript chat control for browsers ",
5
5
  "main": "dist/quikchat.umd.min.js",
6
6
  "module": "dist/quikchat.min.js",
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "scripts": {
18
18
  "test": "echo \"Error: no test specified\" && exit 1",
19
- "build": "node ./tools/updateVersion && rollup -c"
19
+ "build": "node ./tools/updateVersion && npx docbat -i README.md -o index.html && rollup -c"
20
20
  },
21
21
  "keywords": [],
22
22
  "license": "BSD-2-Clause",
@@ -25,6 +25,7 @@
25
25
  "@rollup/plugin-commonjs": "^26.0.1",
26
26
  "@rollup/plugin-node-resolve": "^15.2.3",
27
27
  "@rollup/plugin-terser": "^0.4.4",
28
+ "clean-css-cli": "^5.6.3",
28
29
  "cssnano": "^7.0.4",
29
30
  "rollup": "^4.18.1",
30
31
  "rollup-plugin-css-only": "^4.5.2",